PHP 5.3 --> auf aktuelle PHP umgestellt und Verlinkungen defekt??..

ossacip

Grünschnabel
Hallo zusammen,
kaum da und schon ein Problem ;-) Ich habe eben eine HP "übernommen" (stand 2006 oder so ;-))und soll mal schauen, was noch zu retten ist
http://rolladen-schellberg.de

Auf dieser werden die Links mittels
PHP:
<!-- Content Table -->

    <table class="content" border="0">

          <?php

          include "./pages/manager.php";

          

          ?>

    </table>

    <!-- Ende Content Table -->

eingebunden. In der manager.php stehen dann die Links in der Form:
PHP:
<?php
    if(isset($nav)){
        if($nav=="Kontakt"){
            include "./pages/kontakt.php";
        }elseif($nav=="Impressum"){
            include "./pages/impressum.html";
        }elseif($nav=="reponline"){
            include "./pages/reponline.php";
        }elseif($nav=="Insekten"){
            include "./pages/insektenschutz.html";
        }elseif($nav=="Partner"){
            include "./pages/partner.html";
        }elseif($nav=="vorbau"){
            include "./pages/vorbau.html";   
        }elseif($nav=="Referenzen"){
            include "./pages/referenzen.html";
        }elseif($nav=="rollladen"){
            if($typ=="alu"){
                include "./pages/aluminium.html";
            }elseif($typ=="holz"){
                include "./pages/holz.html";
            }elseif($typ=="kunststoff"){
                include "./pages/kunststoff.html";
            }else{
                include "./pages/rollladen.html";
            }
        }elseif($nav=="sonnenschutz"){
            if($typ=="Markisen"){
                include "./pages/markisen.html";
            }elseif($typ=="Jalousien"){
                include "./pages/jalousien.html";
            }elseif($typ=="Innenraum"){
                include "./pages/innenraum.html";   
            }else{
                include "./pages/sonnenschutz.html";
            }
        }elseif($nav=="Elektro"){
                include "./pages/elektroantriebe.html";
        }elseif($nav=="Rolltore"){
                include "./pages/rolltore.html";
        }elseif($nav=="Markisen"){
                include "./pages/markisen.html";
        }elseif($nav=="ausbau"){
            if($typ=="elektro"){           
                include "./pages/ausbau.html";
            }elseif($typ=="markisen"){
                include "./pages/ausbau2.html";
            }elseif($typ=="funk"){
                include "./pages/funk.html";
            }else{
                include "./pages/ausbaufirst.html";
            }
        }elseif($nav=="Reparaturen"){
            include "./pages/reparaturen.html";
        }elseif($nav=="Eildienst"){
            include "./pages/eildienst.html";
        }elseif($nav=="Philo"){
            include "./pages/philo.html";
        }elseif($nav=="Sitemap"){
            include "./pages/sitemap.html";
        }elseif($nav=="Rollgitter"){
            include"./pages/rollgitter.html";
        }
    }else{
        include "./pages/philo.html";
    }
    
?>


Das klappt auch alles, mit der PHP Version 5.3. Sobald ich auf eine höhere im Kundenmenü wechsel, funktionieren die Links nicht mehr. Warum? Ich denke es leigt einfach an einer php.ini die ich generieren lassen kann im Kundencentrum. Aber sowohl mit als auch ohne diese ini geht oberhalb von 5.3 nix.....

Kann mir bitte wer helfen?!

Vielen Dank Ossa
 
Logging habe ich noch nicht hochgestellt. Es kommen aber keine Fehlermeldungen, es wird einfach nur der Link nicht aufgemacht.....
 
Hast du denn $nav überhaupt als GET Parameter definiert? Weil du kannst $nav nicht verwenden / den Wert ausgeben lassen wenn es da nicht existiert
 
Hmm, wird der $nav nicht durch zum Beispiel:
if(isset($nav)){
if($nav=="Kontakt"){
include "./pages/kontakt.php";
definiert?
In der nav.php wird/soll auch:
<a href="index.php?nav=Kontakt" class="nav">Kontakt</a>
(um bei dem Kontakt zu bleiben)
aufgerufen werden....
Wie gesagt, es muß etwas mit der PHP-Version zu tun haben sprich einem Unterschied von der uralten 5.3 auf eine neuere. Weil bis 5.3. funktioniert es und danach nicht mehr.....
 
lies dir mal per
PHP:
<?php
printf('<pre>%s</pre>', print_r(filter_input(INPUT_GET, 'nav'), true));
?>
ausgeben was Du alles an werten bekommst :)

Statt filter_input(INPUT_GET, 'nav') kannst du auch nur $_GET['nav'] nehmen.
Ich bevorzuge filter_input() ^^
 
Den Code habe ich dann mal eingebaut. Lass ich die Seite auf PHP 5.3 laufen, erhalte ich als Ausgabe bei einem Klick auf die Links den entsprechenden Wert aus der manager.php und der Link wird angezeigt

- schalte ich auf PHP 5.6 um .... bekomme ich ebenfalls bei Klick auf den Link den entsprechenden Wert angezeigt, aber die Seite wird nicht angezeigt.....
 
Ich glaube, ich weiß zumindest ein wenig mehr;-)
Beim Wechsel von 5.3 auf 5.6 mußte ich 3 Werte in der php.ini ändern bzw. auskommentieren da die wohl nicht mehr unterstützt werden - u.a. den:
register_globals = On
Und wenn ich den bei 5.3 ebenfalls auskommentiert lasse --- werden die Links auch nicht mehr aufgerufen. Aktivier ich den Wert wieder, läuft es wieder normal...

Also müßte ich irgendwas mit diesem Wert in der neuen PHP-Version machen, oder so ;-) ?
 
Hi EuroCent, jo PHP ist weiter, aber der Fehler tritt ab höherer PHP-Version 5.3 auf....

Habe mittlerweile einen "dirty Way" gefunden. Ich emuliere "einfach" register_globals = On mit einer zusätzlichen PHP-Datei, die ich dann mit einbinde. So läuft es wenigstens. Sollte wer noch eine "sauberere Lösung" kennen und sie mich lehren wollen, dann bitte los.....

Danke Ossa
 
Zurück