PHP Error Terror ...

Sunshine_10

Banned
Registriert
Aug. 2007
Beiträge
10.345
[Erledigt] Error Terror ...

Nabend ...
Blick langsam nicht mehr durch zumal ich eh kaum Ahnung von PHP hab, Kumpel hatte mir auch schon geholfen aber der weiß auch nicht weiter.

PHP:
				<?php
					if (isset($_GET['section'], $section[$_GET['section']])) {

					if (file_exists($_GET['section'])) {
						include $section[$_GET['section']];
					} else {
						include $section['404'];
					}

					} else {

						include $section['news'];
					}
				?>

Der Sinn dahinter sollte denke klar sein oder? Bekomme aber leider ständig nen "Parse error: syntax error, unexpected" bei der Zeile wo die news includet werden soll.
 
Zuletzt bearbeitet:
Müsstest du bei der Datei-existiert Überprüfung nicht if (file_exists($section[$_GET['section']])) schreiben?

Wie ist das sections Array aufgebaut? Kann es an einer falschen Pfadangabe für die include liegen - wobei fehlerhafte includes idr auf ein warning laufen und nicht auf nen pharse error. Existiert überhaupt in dem Array sections der Index 'news' ?

Ein paar mehr eckdaten wären hilfreich ...
 
Warum benutzt du ein Array? Du verwendest es komplett falsch ($section['news'] ist nirgends definiert).



edit:

Das ist falsch :

PHP:
if (isset($_GET['section'], $section[$_GET['section']]))


$section ist noch nicht definiert.



Ich nehme mal an, du willst sowas erreichen:

PHP:
<?php
if(isset($_GET['section']) && file_exists($_GET['section'].'.php')) {
	include($_GET['section'].'.php');
} else {
	include('news.php');
}
?>
 
Zuletzt bearbeitet:
Nabend
Das ist ja nicht der ganze Code da ich diesen aufgeteilt habe.

PHP:
	$section = array();
	$title = ucfirst ($_GET['section']);
	$section['news'] = 'news.php';
	$section['impressum'] = 'impressum.php';

Das Array dient der Sicherheit.

Diese Methode funktioniert, allerdings ist so keine 404er möglich so das ständig die Newsseite aufgerufen werden würde.

PHP:
					if (isset($_GET['section'], $section[$_GET['section']])) {
						include $section[$_GET['section']];
					} else {
						include $section['news'];
					}

Edit: So wird halt beim normalen Seitenaufruf der URL die news.php angezeigt, allerdings kann ich dann nicht $title nutzen und bei jeder "Falscheingabe" erscheint halt auch die news.php.
 
Zuletzt bearbeitet:
so kann man ja nicht sagen... eventuell hat der string array schon die datei mit extension.

nur eins
Bekomme aber leider ständig nen "Parse error: syntax error, unexpected" bei der Zeile wo die news includet werden soll.
wo ist den diese ZEILE? du hast ja 3 includes
 
Dann mache es doch so:

PHP:
<?php
$allowedsections = array('news', 'impressum', 'blog', 'current');

if(!(isset($_GET['section'])){
    include('news.php');
} elseif (in_array($_GET['section'], $allowedsections)) {
    include($_GET['section'].'.php');
} else {
	include('404.php');
}
?>
 
Sorry, eine Klammer hat gefehlt:


PHP:
<?php
$allowedsections = array('news', 'impressum', 'blog', 'current');

if(!(isset($_GET['section']))) {
    include('news.php');
} elseif (in_array($_GET['section'], $allowedsections)) {
    include($_GET['section'].'.php');
} else {
	include('404.php');
}
?>
 
Klaro, sofern es nicht direkt angezeigt wird schreibe ich immer klein, deswegen ja auch das ucfirst für die Titel.
 
mach ma zur sicherheit noch ein echo von deinen $_GET[...]
oder vardump($_GET)
 
Jau funktioniert, vielen Dank. :)
Nicht gedacht dass das so schnell geht, jetzt muss ich mir nur wieder was für den $title einfallen lassen aber das krieg ich auch noch hin.

Danke noch mal.
 
Woran es beim alten Code genau lag kann ich nicht sagen, den hatte nen Kumpel auf die schnelle so geschrieben anhand des Originalcodes. Der von luky37 funktioniert soweit, nur weiß ich grad nicht mehr wie ich nun den $title als echo ausgebe aber mit bissl probieren krieg ich das auch wieder raus.

Edit: Ok $title läuft auch wieder, war ja einfach.
Danke noch mal.
 
Zuletzt bearbeitet:
also kann man sagen dass du ein/e anfänger/in in sachen PHP bist?

wenn ja, solltest du keinen CODE übernehmen den du nicht verstehst! das bringt probleme und hält dich nur auf!
 
Liest du überhaupt mit? Ich schrieb doch schon im ersten Post das ich noch nicht so viel Ahnung hab. Und irgendwie muss ich ja anfangen - Bücher hab ich noch nicht aber dazu hab ich auch schon nen Thread offen. Verstehen tu ich es so halb aber eben nicht ganz - kommt halt immer drauf an. Durch fremden Code hab ich aber auch HTML gelernt aber ja ich bin mir der Risiken durchaus bewusst und bis meine Seite letztlich richtig Live geht vergeht noch einiges an Zeit und Arbeit.

Also keine Sorge. ;)
 
I-HaTeD2 schrieb:
Diese Methode funktioniert, allerdings ist so keine 404er möglich so das ständig die Newsseite aufgerufen werden würde.

Wie meinst du das? Für einen richtigen 404 müsstest du schon den Header manipulieren - oder du includest absichtlich bei Nichtauffinden eine imaginäre gibtsnicht.php, welche 404 erzwingt, ist aber nicht so schön.
 
Nirgends, hab ich doch nie behauptet? Die gewünschte Fehlerseite direkt zu includen und es dabei zu belassen ist aber was anderes. Die einzige Stolperfalle wird sein, dass er obigen Code nicht an der include-Stelle benutzen darf, sondern zu Beginn der Laufzeit und die includes dann in einer Variable zwischenspeichert. Den bei obigem Code ist davon auszugehen, dass er schon vor dessen Ausführung alles von <html> bis <body> gesendet hat.
 
Zuletzt bearbeitet:
Wie gesagt ist das eh noch alles am Anfang, wo jetzt allerdings das Problem dabei sein soll verstehe ich nicht. Entweder findet er eine Seite oder nicht, wichtig ist doch nur die Info darüber.

Oder habe ich einen besonderen Sinn noch nicht mitbekommen?
 
Zurück
Oben