Wechsel von PHP 4 auf 5 / Script funktioniert nicht mehr

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wechsel von PHP 4 auf 5 / Script funktioniert nicht mehr

    Hallo Leute,

    mein Provider hat umgestellt von PHP Version 4.3.10 auf PHP Version 5.2.5 ...

    ... allerdings funktioniert nun meine Homepage nicht mehr so, wie sie mal funktionierte.

    Da ich eh die Homepage gerade dran bin diese zu erneuern, habe ich sie mal lokal hier auf einer lokalen XAMPP für Linux 1.6.5a-Testumgebung unter
    kubuntu 7.10 (Gutsy)

    Apache 2.2.6, MySQL 5.0.51, PHP 5.2.5

    getestet zuvor. Das komische ist, dort funktioniert es einwandfrei, aber auf dem online Server von meinem Provider sag ich mal, da funktioniert es
    komischerweise nicht mehr ordnungsgemäss.

    Ich will mal hier versuchen zu erklären wie die Homepage aufgebaut ist:

    - besteht sozusagen aus Tabellen
    - linke Spalte ein Menue (dort werden die Menue-Punkte so z.B. genannt
    index.php, index.php?session=chat, index.php?session=impressum usw.


    in der zweiten Spalte habe ich folgendes stehen:

    <?php
    $_GET['session'] = $session;
    include ("/srv/www/vhosts/mein_pfad".$_GET['session']);
    ?>

    mein_pfad = da steht dann auch der richtige Pfad zu dem Script usw.


    Und zu guter letzt gibt es sozusagen noch eine Konfig-Datei wo die Links dann sozusagen umgewandelt werden und diese wird per include auch in meine Seite sozusagen eingebunden.

    Die Konfig-Datei hat folgenden Aufbau:


    $session = "main.inc";
    if(isset($HTTP_GET_VARS['session']))
    $session = $HTTP_GET_VARS['session'];

    if ($session == "chat") $session = "chat.inc";
    else
    if ($session == "impressum") $session = "impressum.inc";
    else
    [... - geht hier dann entsprechend in dem Muster so weiter]
    $session = "main.inc";


    Und das eigentliche Problem was nun ist, man kann die Menue-Links anklicken soviel man möchte, aber die Seite wird dann nicht aufgerufen, sprich außer der Start-Seite gibts nichts anderes mehr derzeit.

    Wer kann mir verraten woran dieses nun liegen könnte und wie ich das ganze in der Art oder einer ähnlichen wieder funktionsfähig bekomme?

    Wäre super wenn mir da jemand mal weiterhelfen könnte. Besten Dank vorab.

    Viele Grüße

    Sascha
  • Hallo Sascha,

    woran das nun genau liegt kann ich dir nicht sagen, da mir der Zusammenhang der Seite fehlt. Aber ich kann dir sagen was mir komisch vorkommt bzw. schlecht/falsch ist. Vielleicht liegt es ja an einem dieser Punkte ;)

    Quellcode

    1. $_GET['session'] = $session;

    Wenn $session nicht schon vorher mit irgend einem Wert belegt wurde, löscht das deinen session-Parameter. Wenn dein Provider vorher mal register_globals auf on hatte, könnte das funktioniert haben. Mit register_globals auf off bezweifel ich das allerdings.

    Quellcode

    1. $session = "main.inc";
    2. if(isset($HTTP_GET_VARS['session']))
    3. $session = $HTTP_GET_VARS['session'];
    4. if ($session == "chat") $session = "chat.inc";
    5. else
    6. if ($session == "impressum") $session = "impressum.inc";
    7. else
    8. [... - geht hier dann entsprechend in dem Muster so weiter]
    9. $session = "main.inc";

    HTTP_GET_VARS und HTTP_POST_VARS ist "veraltet" und funktioniert auch nur noch dann, wenn register_long_arrays eingeschaltet ist. Vllt hat dein Provider das geändert (weil "veraltet")? Dann liefert dir das keinen Wert mehr, ergo ist keine der Bedingungen erfüllt.
    Und das setzen von $session vor und nach dem If-Block verstehe ich auch nicht so ganz. Aus dem Teil, den du gepostet hast, erkenne ich da keinen Sinn drin :huh:


    Hmm bleibt mir nur noch d0nut zu zitieren "Benutz die Syntax Funktionen".


    Gruß,
    X-Eon
  • Hi
    Ich würde die Includierung des Inhalts folgendermaßen regeln

    Quellcode

    1. <?php
    2. $navigation = array();
    3. $navigation['home'] = "show/home.php";
    4. $navigation['me'] = "show/me.php";
    5. $navigation['gb'] = "show/gb.php";
    6. $navigation['links'] = "show/links.php";
    7. $navigation['fun'] = "show/fun.php";
    8. $navigation['coding'] = "show/coding.php";
    9. $navigation['impressum'] = "show/impressum.php";
    10. if(isset($_GET['session']) AND isset($navigation[$_GET['session']])) {
    11. include($navigation[$_GET['session']]);
    12. }else{
    13. include("show/home.php");
    14. }
    15. ?>
    Alles anzeigen


    So hab ich es gemacht und fahr damit ganz gut.
    Du kannst dann natürlich die Arrayelemente auch aus der Datenbank ziehen, je nachdem, wie es dir lieber ist

    lu