Avatar billede durd Nybegynder
08. december 2003 - 19:41 Der er 17 kommentarer og
2 løsninger

Apache og ny version af PHP

Jeg har lige installeret Apache og den nyeste version af php (4.3.4) men kan ikke forstå hvorfor jeg ikke kan skifte side på min hjemmeside når jeg f.eks. skriver "index.php?side=3".

Det har virket på en anden hosting men det virker åbenbart ikke på min. Er der noget jeg kan ændre for jeg igen kan sende variabler på denne måde?
Avatar billede durd Nybegynder
08. december 2003 - 19:43 #1
I kan se problemet her når man forsøger at skifte side:
http://www.ftps.dk/
Avatar billede martinbk Nybegynder
08. december 2003 - 19:45 #2
problemet hedder globale variabler, disse er pr. default slået fra i alle nyere versioner af PHP (i din php.ini register_globals = off) .. dette bevirker at man ikke umiddelbart kan modificere de forskellige globale array's så som $_GET[] $_POST[] $_SESSION[] osv.

du kan gøre 2 ting, ændre din kode hver eneste sted du kalder noget fra din addresse linie skal du tilgå det med $_GET['værdinavn']; eller du kan evt. slå register_globals til i din php.ini, dette vil jeg dog ikke anbefale da det øger sårbarheden væsentlig på din maskine
Avatar billede nikolajdu Nybegynder
08. december 2003 - 19:46 #3
Du skal sætte register globals til "on" i apaches htconf - Så vil det virke.

Omvendt bør du nok hellere lade den være off og så lære at bruge den "nye" syntax.

Du kan med register globals off ikke længere bare kalde en variabel fra sidste side med $variabel

Det hedder nu

$_GET["variabel"]

eller

$_POST["variabel"]

/Nikolaj
Avatar billede durd Nybegynder
08. december 2003 - 19:46 #4
Hov jeg har selv fundet ud af det. Det var "register_globals" der var sat til "off" :)
Avatar billede nikolajdu Nybegynder
08. december 2003 - 19:48 #5
og det er selvfølgelig i php og ikke apache...
Avatar billede durd Nybegynder
08. december 2003 - 19:49 #6
Hov der var jeg ikke hurtig nok, men kan I så nu hvor jeg har fat i jer ikke lige fortælle mig hvor det præcis er man skal bruge $_GET["variabel"] ?

Altså i hvilken sammenhæng?
Avatar billede nikolajdu Nybegynder
08. december 2003 - 19:51 #7
Du kan hente variabler med $_GET hvis de kommer ind via urlen. Altså minside.php?variabel=hejDinGris

Sender du en form med method="POST" skal du istedet bruge : $_POST[]
Avatar billede martinbk Nybegynder
08. december 2003 - 19:51 #8
det skal du hver eneste gang du vil have en værdi fra din addresselinie

f.eks. http://www.etdomain.dk?side=fisk

for at få fat i værdien fisk skal du tilgå den via $_GET['side'] denne variabel vil nu indeholde strengen fisk
Avatar billede nikolajdu Nybegynder
08. december 2003 - 19:52 #9
holybull kan vidst godt smide et svar her - han var trods alt hurtigst med det helt korrekte svar.
Avatar billede martinbk Nybegynder
08. december 2003 - 19:54 #10
var vi ikke lige gode om det nikolaj... vi kan vel dele ? :-)
Avatar billede Slettet bruger
08. december 2003 - 19:54 #11
Hvis du bare starter dit script med

$variabel=$_REQUEST['variable'];

så behøver du ikke rette resten af dit script. Forskellen på $_REQUEST, $_POST og $_GET er, at hvor $_POST og $_GET kun indeholder værdier fra henholdsvis GET og POST indeholder $_REQUEST begge dele. Så er det lige meget, om værdien kommer fra en formular med method="post" eller en url som side.php?side=3
Avatar billede nikolajdu Nybegynder
08. december 2003 - 19:54 #12
Ok så står vi lige ;-)
Avatar billede durd Nybegynder
08. december 2003 - 20:03 #13
Mange tusind tak for hjælpen!
Det er rart at der er nogen flinke mennesker som vil dele ud af deres viden. Der har I fuldt ud min respekt :)

Jeg har godt nok et spørgsmål mere, men I får nu alligevel jeres points nu. Vi deler halvt.

Jeg har installeret GD2 hvilket kan ses udfra min phpinfo:
http://www.ftps.dk/php.php

Thumpnail funktionen virker dog ikke selvom den også altid har virket på min gamle hosting. Hvordan kan det være?
Avatar billede Slettet bruger
08. december 2003 - 20:05 #14
$_REQUEST indeholder forresten også værdier fra cookies.
Avatar billede durd Nybegynder
08. december 2003 - 20:05 #15
Hov sorry :D

Jeg fumlede igen.. Det virker nu :) :) :) :) :)
Avatar billede nikolajdu Nybegynder
08. december 2003 - 20:05 #16
Det kan muligvis skyldes at koden var skrevet til gdlib 1.xx

Dog vil jeg lige sige at jeg slet ikke ser at du har GD installeret. Søger jeg på GD i din php info så finder jeg den sgutte.
Avatar billede martinbk Nybegynder
08. december 2003 - 20:05 #17
hmm må jeg lige se din thumbnail funktion ?
Avatar billede durd Nybegynder
08. december 2003 - 20:08 #18
Jeg ved ikke hvad der har været galt før, for det virker nu. Det var bare mig der ikke rigtig tænkte mig om :)
Avatar billede nikolajdu Nybegynder
08. december 2003 - 20:13 #19
Sårn står det jo heldigvis os alle frit for af og til at tage hovedet under armen ;-)

Tak for point i øvrigt :))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester