Oprettet ons. d. 20. februar 2002 kl. 13:35:35

tipsen
tipsen (35.007 point. Point ude: 195)

forklaring af header!

Jeg har kigget lidt på en login-procedure ved hjælp af sessions - i den forbindelse er der i scriptet, som validerer username og password følgende redirection:

// redirect to main menu page
header("Location:menu.php");
mysql_free_result ($result);

// close connection
mysql_close($connection);

Det der nu undrer mig er hvorfor man ikke benytter følgende rækkefølge:

mysql_free_result ($result);

// close connection
mysql_close($connection);

// redirect to main menu page
header("Location:menu.php");

hvilket er mere oplagt for mig! Når man redirecter vha. headeren - bliver resten af scriptet så stadig eksekveret - og hvor vil evt. output blive sendt hen!??

(Jeg er klar over, at der ikke må sendes output til klienten inden afsendelse af headere!)

Ydermere ser jeg sjældent brugen af mysql_close og mysql_free_result - er det god praksis at benytte dem eller er det fløjtende ligegyldigt?

Skrevet ons. d. 20. februar 2002 kl. 13:59:02| #1

hathor
hathor (14.339 point)
det er god praksis og fløjtende ligegyldigt :-) Ej jeg ved det ikke ... du kan sikkert kunstruere så komplicerede systemer at det er nødvendigt.

Det er til gengæld en god ting at skrive exit; efter sin header. Det er for at sikre sig at brugeren ikke ser mere af din side.

Jeg tror ikke at resten af scriptet bliver eksekveret efter redirection og derfor mener jeg at din rækkefølge er den rigtige.

Skrevet ons. d. 20. februar 2002 kl. 14:00:08| #2

hathor
hathor (14.339 point)
oh, det var tipsen der havde stillet det spørgsmål.

glem det så .. du ved vist mere om det her end jeg :-)

Skrevet ons. d. 20. februar 2002 kl. 14:07:20| #3

jensgram
jensgram (39.129 point)
www.jensgram.dk
Efter en header("loca.....); bliver resten af scriptet STADIG ekserkveret. Prøv eventuelt at lave en SQL-query efter en header("lo..."); Outputtet ender nok i intetheden, men scriptet BLIVER udført. Hvis du vil undgå dette skal du placere exit; efter header("l...");

mysql_close() er vist god nok at burge, så man får "ryddet op" i sine forbindelser til databasen. mysql_free_result() aflaster serveren, hvis den kører på grænsen af hvad den kan klare, AFAIK. Håber det var svar nok.

Jens Gram - www.jensgram.dk

Skrevet ons. d. 20. februar 2002 kl. 14:45:18| #4

tipsen
tipsen (35.007 point)
hathor: tak for rosen... - men jeg har kun brugt php i godt et par måneder, så der er *mange* ting jeg ikke ved...

Blandt andet kan jeg ikke få det med sessions til at fungere på min egen maskine - er der noget i php-configuration eller apache konfiguration der skal ændres!?

Når jeg bruger session_start() får jeg følgende fejlmeddelelse:

Warning: open(/tmp\sess_c8d67bea15831aea4f3d7cfa47207af8, O_RDWR) failed: m (2) in c:\internet... on line 15 (den med session_start()!)

hmmmm...

Skrevet ons. d. 20. februar 2002 kl. 14:52:47| #5

jensgram
jensgram (39.129 point)
www.jensgram.dk
Er det på en windåse?

Skrevet ons. d. 20. februar 2002 kl. 14:54:55| #6

jensgram
jensgram (39.129 point)
www.jensgram.dk
Ja, det er det jo (c:\) DOH. Det virker heller ikke på min - det er garanteret noget der skal ændres i php-konfigurationen.

Skrevet ons. d. 20. februar 2002 kl. 14:58:07| #7

tipsen
tipsen (35.007 point)
Det er i Windows 2000, med Apache 1.3.22 og php 4.06!

Skrevet ons. d. 20. februar 2002 kl. 15:00:07| #8

jensgram
jensgram (39.129 point)
www.jensgram.dk
Mon ikke nogle af guruerne ved det?

Skrevet ons. d. 20. februar 2002 kl. 16:19:33| #9

tipsen
tipsen (35.007 point)
Nu har jeg prøvet at uploade mine filer til min udbyder - så fungerer det fint - det betyder at fejlen ligger i min konfiguration!

Jeg har fundet følgende i php.ini:

session.save_path = /tmp

Hvor skal dette temp-bibliotek ligge - hvilket bibliotek er det relativt til?

Skrevet ons. d. 20. februar 2002 kl. 18:12:33| #10

jensgram
jensgram (39.129 point)
www.jensgram.dk
Opret et nyt spørgsmål. Guruerne kigger ikke efter ting, der har noget med sessions at gøre i et spørgsmål med titlen "forklaring af header!".

Skrevet tor. d. 21. februar 2002 kl. 13:35:43| #11

hathor
hathor (14.339 point)
inde under apache har jeg et bibliotek der PHP og i det bibliotek har jeg en fil der hedder PHP ini.

Der er der en sektion der hedder sessions, og der pillede jeg lidt (kan ikke huske hvad jeg lavede) men det var simpelt og bagefter virkede sessions for mig.

Det ser sådan her ud (ser nok noget rodet ud):


-------------------------------------------------------------------


[Session]
session.save_handler      = files  ; handler used to store/retrieve data
session.save_path        = c:\apache\php\tmp    ; argument passed to save_handler
                                    ; in the case of files, this is the
                                    ; path where data files are stored
session.use_cookies      = 1      ; whether to use cookies
session.name              = PHPSESSID 
                                    ; name of the session
                                    ; is used as cookie name
session.auto_start        = 0      ; initialize session on request startup
session.cookie_lifetime  = 0      ; lifetime in seconds of cookie
                                    ; or if 0, until browser is restarted
session.cookie_path      = /      ; the path the cookie is valid for
session.cookie_domain    =        ; the domain the cookie is valid for
session.serialize_handler = php    ; handler used to serialize data
                                    ; php is the standard serializer of PHP
session.gc_probability    = 1      ; percentual probability that the
                                    ; 'garbage collection' process is started
                                    ; on every session initialization
session.gc_maxlifetime    = 200    ; after this number of seconds, stored
                                    ; data will be seen as 'garbage' and
                                    ; cleaned up by the gc process
session.referer_check    =        ; check HTTP Referer to invalidate
                                    ; externally stored URLs containing ids
session.entropy_length    = 0      ; how many bytes to read from the file
session.entropy_file      =        ; specified here to create the session id
; session.entropy_length    = 16
; session.entropy_file      = /dev/urandom
session.cache_limiter    = nocache ; set to {nocache,private,public} to
                                    ; determine HTTP caching aspects
session.cache_expire      = 180    ; document expires after n minutes
session.use_trans_sid    = 1      ; use transient sid support if enabled
                                    ; by compiling with --enable-trans-sid
url_rewriter.tags        = "a=href,area=href,frame=src,input=src,form=fakeentry"

--------------------------------------------------------------------

Skrevet tor. d. 21. februar 2002 kl. 16:17:01| #12

tipsen
tipsen (35.007 point)
hathor: jeg har accepteret mr_noname's svar, men vil meget gerne give dig point for det andet svar, da det løste mit andet problem - så kig på: http://www.eksperten.dk/ (...) - der er nogle point for dine svar vedr. mine konfigurationsproblemer!

Skrevet tor. d. 21. februar 2002 kl. 17:12:15| #13

jensgram
jensgram (39.129 point)
www.jensgram.dk
Jeg takker i hvert fald for nu ;)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger