Scriptproblem :(

Kategorien: PHP & MySQL
8 Antworten
Flo
Flo am Montag, 15. Mai 2006 um 15:43
Hi Leute ! Ich habe mich mal an das PHP Tut gehalten, um Frames zu umgehen und habe das dann einfach mal so übernommen: <? if ($navi=="") { include("index2.php"); } else { include("$navi"); } ?> und habe dann zB eine Seite seminare.php genannt und verlinke nun so: http://meine-seite.net/index.php?navi=seminare.php, aber es klappt net, es öffnet sich immer wieder nur index2.php ... hat wer ne idee ?

Kommentare

unkie
unkie am Montag, 15. Mai 2006 um 15:51

mach aus navi [b]$_GET['navi'][/b]

Markus René Einicher
Markus René Einicher am Montag, 15. Mai 2006 um 16:23

Ja erstmal das.

Dann, kriegst du irgendeine Fehlermeldung?

Wenn nein, setz folgendes als allererstes ins Skript, gleich nach dem einleitenden PHP-Tag:
<?php
error_reporting(E_ALL);
?>

WICHTIG: Du darfst du auf keinen Fall ein Skript schreiben, dass Dateien einfach so einbindet, weil dann kann ich her gehen, und einfach sagen "?navi=meine.adresse.tld/vernichtungsskript.php" und dir den ganzen Webspace leer machen.

Es gibt eigene Crawler, die das Internet nach solchen Seiten durchsuchen und die gutmütigen von ihnen pflastern deine Seite dann mit Werbung zu und die schlechten richten Schäden an.

Flo
Flo am Montag, 15. Mai 2006 um 16:45

wie meinst du das ein skript schreiben,l dass dateien einfach so einbindet, wie soll ich dies denn anders tun? q.q
oder ist das durch $_GET['navi'] jetzt schon behoben ?
achja und nun kommt folgende fehlermeldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/samson/co/coolfine/index.php on line 62

bei dem Skript :
<?php
error_reporting(E_ALL);
if ($_GET[&#039;seite&#039;]=="") {
include( "index2.php" );
} else {
include("$_GET[&#039;seite&#039;]" );
}
?>

Markus René Einicher
Markus René Einicher am Montag, 15. Mai 2006 um 17:09

Ja das is die Zeile hier:
include("$_GET[&#039;seite&#039;]" );

Eine Variabel brauchst nit in doppelte Anführungszeichen tun. Das geht nur wenn du Text dabei hast gut.

Das klügste ist, das Skript nur vordefinierte Dateien über einen switch aufrufen zu lassen. [b]$seite[/b] sollte am Besten immer eine Nummer übergeben, und für den case der Nummer definierst du dann welche DAtei er dann einbinden soll.

<?php
error_reporting(E_ALL);

if (isset($_GET[&#039;seite&#039;])) {
switch ($_GET[&#039;seite&#039;]) {
case 1: $s = &#039;startseite.php&#039;; break;
case 2: $s = &#039;kontakt.php&#039;; break;
case 3: $s = &#039;impressum.php&#039;; break;
case 4: $s = &#039;seitenplan.php&#039;; break;
default: $s = &#039;index.php&#039;;
}
} else {
$s = &#039;index.php&#039;;
}

include $s;
?>

Flo
Flo am Montag, 15. Mai 2006 um 18:55

cool danke ! :)

Markus René Einicher
Markus René Einicher am Montag, 15. Mai 2006 um 19:36

Ein "ich habs kapiert" wär mir lieber gewesen :(

Flo
Flo am Montag, 15. Mai 2006 um 19:37

ja ich habs ja auch kappiert^^, hatte nur anfangs paar probs, habs mir nomma im buch angeschaut mit den cases und nu geht ;)

Markus René Einicher
Markus René Einicher am Montag, 15. Mai 2006 um 19:39

Supi!