Bei einigen Addons kann es passieren, dass diese nicht richtig funktionieren.
An sich klappt alles, aber wenn man einen Link innerhalb dieses Addons anklickt, bei dem eine Variable übergeben wird (z.B. datei.php?userid=1) bleibt die nächste Seite weiß, ohne Fehlermeldung.
Oder es wird einfach nichts angezeigt.
Dies liegt meistens daran, dass der Coder nicht an die register_globals gedacht hat.
Bei einigen Hostern sind diese nämlich auf OFF gestellt, was bewirkt, dass die Variable zwar korrekt übergeben wird, das Script diese Variable allerdings nicht erhält und damit dann eine leere Variable hat, mit dem es nix anfangen kann.
Wie stellt man nun fest, ob die register_globals on oder off sind ?
Ganz einfach:
Erstelle eine neue Datei mit folgendem Inhalt:
php:
1:
2:
3:
<?
phpinfo();
?>
speichere diese Datei als phpinfo.php auf deinem Server und rufe sie auf.
Du erhältst nun einen kompletten Überblick über die PHP-Konfiguration deines Servers.
Mit dem Internet Explorer machst du nun folgendes:
- Klicke in der Navi-Leiste des IE auf Bearbeiten
- Wähle den Menupunkt Suchen (aktuelle Seite) aus
- Trage in das Eingabefeld register_globals ein und klicke auf "Weitersuchen"
Der Eintrag mit den register_globals sollte nun gefunden werden.
Steht hinter register_globals der Wert on brauchst du nichts weiter machen. Diese Einstellung verzeiht "schlampige" Programmierung.
Steht dort allerdings der Wert off, solltest du dich an den Coder des Addons wenden, damit er eine register_globals off - fähige Version machen kann.
Die Änderungen dafür sind eigentlich simpel.
Als Beispiel:
Ich rufe einen Link auf, bei dem eine Variable übergeben wird, und anhand dieser Variable soll dann aus der Datenbank etwas ausgelesen werden.
Der Link: datei.php?userid=1
Der Datenbankbefehl mit register_globals on:
php:
1:
$result = $db->query_first("SELECT * FROM bb".$n."_users WHERE userid = '$userid'");
Die Variable $userid bekommt in diesem Fall den Wert 1 und die Datenbankabfrage klappt.
Sind die register_globals allerdings auf off, muss der Datenbankbefehl so aussehen:
php:
1:
$result = $db->query_first("SELECT * FROM bb".$n."_users WHERE userid = '".$_REQUEST['userid']."'");