Mein Script geht nicht mehr - Hilfe

Rici

Semiprofi
Thread Starter
Mitglied seit
22.05.2005
Beiträge
1.950
Ort
Leipzig
Ich verwende folgenden script um eine bestimmte datei über einen link in die seite zu laden (also den inhalt)

<?
If ($site == "") {
Include ("content/home.dat");
} else {
Include ("content/$site.dat");
}
?>

bis jetzt klapte das ganz gut, aber jetzt geht das auf dem neuen webspace nicht mehr, er läd einfach nicht den inhalt sondern behält die alte datei, ich habe einfach mal die home.dat gelöscht dann bringt er mir folgende fehlermeldung

Warning: main(content/home.dat) [function.main]: failed to open stream: No such file or directory in /is/htdocs/wp1028955_AAIXN5SCF9/www/index2.php on line 37

Warning: main() [function.include]: Failed opening 'content/home.dat' for inclusion (include_path='./:/usr/share/pear/php5/') in /is/htdocs/wp1028955_AAIXN5SCF9/www/index2.php on line 37
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wie übergibst du den Link? in der URL?
Also à la:

...script?site=Testseite

?

Wenn du das so machst musst du das Script so abändern:

<?
if ($_GET[site] == ""){
include ('content/home.dat');
}
else{
include ('content/'.$_GET[site].'.dat');
}


?>

Aber gut ist das nicht, Variablen aus der URL direkt in den Code zu übernehmen...
 
Zuletzt bearbeitet:
weil es gibt zwei modi register_globals="off" und "on"
bei off funktioniert sowas hier nicht:
index.php?site=zwei
PHP:
<?
echo $site; //funktioniert nicht
echo $_GET['site']; //funktioniert
$site = $_GET['site']; 
echo $site; //funktioniert
?>

bei on funktioniert das hier wiederum:
index.php?site=zwei
PHP:
<?
echo $site; //funktioniert!!!!!!
echo $_GET['site']; //funktioniert
$site = $_GET['site']; 
echo $site; //funktioniert
?>

weil die get post und cookie variablen GLOBAL registriert werden und halt aus dem array key eine eigenständige variable wird.

Das die seite aufeinmal nimma funktioniert kann also evtl daran liegen das dein hoster register globals auf OFF gestellt hat
 
Rici schrieb:
jup, konnte aber das problem inzwischen selber lösen
Was war letztendlich die Ursache?

Rici schrieb:
Weil sich dadurch fremder Code in deine Seite einschleusen lässt! Jegliche Art von Benutzereingabe bzw. Querystring-Parameter sollte daher nicht ungeprüft übernommen werden - eine Regel, gegen die viele Webentwickler, zu meiner Schande auch teilweise ich selber, verstoßen!
 
Zuletzt bearbeitet:
Kabelsalat schrieb:
Was war letztendlich die Ursache?



Weil sich dadurch fremder Code in deine Seite einschleusen lässt! Jegliche Art von Benutzereingabe bzw. Querystring-Parameter sollte daher nicht ungeprüft übernommen werden - eine Regel, gegen die viele Webentwickler - zu meiner Schande auch teilweise ich selber - verstoßen!

der fehler war das globals ausgeschalten ist, habe jetzt

<?php
if (isset($_GET['site']) && file_exists("content/" . $_GET['site'] . ".dat")) {
include ("content/" . $_GET['site'] . ".dat");
} else {
include ("content/home.dat");
}
?>
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh