Tror jeg har et register_global problem.

Tags:    php

Hej.

Jeg er ny her på siden, men håber i kan hjælpe mig lidt.
Jeg har genoptaget PHP efter 5 års inaktivitet, og er begyndt at sætte en side op, og ja, jeg genbruger nok lidt af min gamle kode :).

Jeg har brugt nedenstående kode til at hente page og content til min side. På den måde laver jeg ét design med en "content" rude.
-------kode-------------------
<?if(strlen($content)) { $content = "_" . $content; };
if(file_exists("content/$page$content" . ".php")) { include("content/$page$content" . ".php"); }
else { print "<h3>Der er sket en fejl!</h3>Siden du prøver at få fat på, eksisterer ikke. Vedbliver dette problem, kontakt da venligst vores <a href=\"mailto:webmaster@xxxxxxxxxx\">webmaster</a>. Vi beklager meget.<br><br>Med venlig hilsen<br><strong>xxxxxxxxxxxx</strong>"; };
print("\n");?>
-------kode-------------------
Problemet er at den server jeg har siden på, ikke afvikler min kode som den ville gøre det på den gamle. Jeg har smidt den samme side ind på både min nye og gamle server, og det virker fint på den gamle, men ikke på den nye.

Den henter ikke indholdet på siden, men "registrerer" at der er noget, for hvis jeg fjerner den fil som content peger på, får jeg fejl om at siden ikke eksisterer.

Kan i hjælpe med en lille streng jeg kan sætte ind i toppen af min kode, så jeg kan registere globals, da jeg ikke har adgang til .htaccess på serveren.



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det der er dit problem er siden du sidst skrev php er der kommet nogle ændringer i variable hirakiet.

Dengang du programmerede kunne du skrive $var og så bare hentyde til enten en lokal var, post var eller get var det kan du ikke når register_globals er slået fra.

du kan læse omkring det her.

http://www.php.net/manual/en/language.variables.external.php

Det du nok skal gøre er:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 11.08.2010 13:33 af Bruger #13429
Du har jo så evigt ret :)
Ja, der sker noget på det felt hele tiden, og tak for svaret :)



Selvom det sikkert virker, når du ændrer det, er der stor sikkerehedsrisciko i koden. Skriver man URL?content=../index vil den i stedet inkludere /index.php. Så hvis man leger lidt med teksten, kan man ende med at en hacker inkluderer en skjult .php-fil, folk ikke må se, og måske ser noget vigtigt fra den.



Nej, der er nu ikke noget vigtig information på siden, det er udelukkende et "visitkort".
På sigt kommer der sikkert mere, men det bliver i et andet vindue.



t