10. juli 2005 - 13:28
Der er
36 kommentarer og 1 løsning
Session_Start() virker ikke efter hensigten
Hej Jeg kan ikke få session_start() til at virke efter hensigten. Når den er sat skal jeg beholde den session_id som jeg tildeles første gang, men jeg får en ny hver gang..... Mit lille program: <?php session_start(); session_save_path('c:\temp'); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; } $cid = session_id(); $cpath = session_save_path(); echo "ID: $cid<br>"; echo "Path: $cpath<br>"; echo('Du har set denne side '.$_SESSION['counter'].' gange'); $_SESSION['counter']++; ?> Hvad gør jeg forkert ???????????
Annonceindlæg fra HP
virker counteren ikke? Tæller den rigtigt op?
Nej, den tæller kun til én hver gang og jeg får et nyt sesion ID hver gang...
Ligger session-filerne i c:\temp? Modtager du en cookie fra serveren? Sender du denne cookie til serveren bagefter?
Hvis jeg forstår dig rigtigt, vil du gemme "session_id" til næste besøg ? Så skulle du overveje at sætte en cookie med "session_id", da en sessions dør når browseren lukkes. Kim
Jeg går ud fra at browseren forbliver åben. Og session-id'et bliver gemt i en cookie - men en cookie uden udløbstid og dermed en session-cookie (som browseren flusher, når den lukkes ned)
Browseren forbliver åben og jeg tryker ku på "refresh" og der bliver ikke gemt noget i c:\temp
Selv om jeg definerer session_id, så bliver der ikke oprettet nogen fil i c:\temp og det er det jeg ikke forstår noget af..........
session_save_path('c:\temp'); skal kaldes før session_start() hvis den skal have effekt
hej ksoren Jeg har nu byttet rundt som du beskriver, men desværre ikke med nogen ændring i resultatet......
10. juli 2005 - 16:30
#10
Prøv: <?php ini_set('display_errors', 1); ini_set('error_reporting', "E_ALL"); session_start(); session_save_path('c:\temp'); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; } $cid = session_id(); $cpath = session_save_path(); echo "ID: $cid<br>"; echo "Path: $cpath<br>"; echo('Du har set denne side '.$_SESSION['counter'].' gange'); $_SESSION['counter']++; ?>
10. juli 2005 - 16:30
#11
Og. selvf sætte save_path før session_start() :O)
10. juli 2005 - 16:32
#12
Hej sukos Hvad gør: ini_set('display_errors', 1); ini_set('error_reporting', "E_ALL");
10. juli 2005 - 16:33
#13
Viser alle fejlmeddelser, hvis ellers du har lov til at bruge ini_set()
10. juli 2005 - 16:36
#14
Virker fint for mig: <?php ini_set('session.save_path', "C:/temp/"); session_start(); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; } $cid = session_id(); $cpath = session_save_path(); echo "ID: $cid<br>"; echo "Path: $cpath<br>"; echo('Du har set denne side '.$_SESSION['counter'].' gange'); $_SESSION['counter']++; ?>
10. juli 2005 - 16:40
#15
Jeg er ked af at sige det, men counter forbliver på 1........ :o( Er der noget generelt, jeg kan mangle ????
10. juli 2005 - 16:42
#16
10. juli 2005 - 16:46
#17
Hmm, bruger du ini_set() med fejlmeddelser Er det din egen server? Og sourcekode til fil er jo altid godt! :O) <?php ini_set('session.save_path', "C:/temp/"); session_start(); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; } $cid = session_id(); $cpath = session_save_path(); echo "ID: $cid<br>"; echo "Path: $cpath<br>"; echo('Du har set denne side '.$_SESSION['counter'].' gange'); $_SESSION['counter']++; echo"<p>"; show_source($_SERVER["SCRIPT_FILENAME"]); ?>
10. juli 2005 - 16:48
#18
Min kode er her: <?php ini_set('display_errors', 1); ini_set('error_reporting', "E_ALL"); ini_set('session.save_path', "C:/temp/"); session_start(); session_id('testtest'); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; } $cid = session_id(); $cpath = session_save_path(); echo "ID: $cid<br>"; echo "Path: $cpath<br>"; echo('Du har set denne side '.$_SESSION['counter'].' gange'); $_SESSION['counter']++; ?>
10. juli 2005 - 16:50
#19
Nej det er ike min egen server
10. juli 2005 - 16:57
#20
Prøv med sidste script jeg postede! Og vil du definere session_id() skal du også gøre før start, vil jeg mene. Og hvorfor gøre det iøvrigt?
10. juli 2005 - 21:49
#21
Session_id var kun for at prøve noget andet....... Jeg har prøvet dit eksempel og nu opretter den en fil på c:\temp , men filen indeholder ingenting og Counter tælles ikke op....
11. juli 2005 - 08:57
#22
Hej sukos Det er kun lykkedes mig en gang at få den til at oprette en sess_ fil på c:\temp. Alle andre gange der trykkes på Refresh, tildeles der et nyt Session_id
11. juli 2005 - 09:06
#23
Det er ikke din server, men du har adgang til C:\temp??? Anyway, hvis nu du ikke definerer session.save_path, virker det så? Altså IKKE noget med at definere noget, blot bruge sessions
11. juli 2005 - 09:09
#24
<?php session_start(); if(isset($_SESSION["count"])) { $_SESSION["count"]++; }else{ $_SESSION["count"] = 1; } echo $_SESSION["count"]; ?>
11. juli 2005 - 12:37
#25
Hey? session-savepath er altså stien hvor session gemmes på serveren - ikke på din computer. Fjern alt det med savepath og lad serveren gemme, hvor den har lyst. Serveren er desuden en *nix-maskine (Server: Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6mdk) mod_perl/1.99_11 Perl/v5.8.3 auth_mysql/1.11 mod_ssl/2.0.48 OpenSSL/0.9.7c PHP/4.3.4), så der findes slet ikke noget, der hedder c:\temp
11. juli 2005 - 16:36
#26
hej nu har jeg prøvet det simple som sukos har foreslået, men den viser 1 og ikke andet, uanset hvor mange gange jeg trykker på Refresh.
11. juli 2005 - 16:41
#27
Har du undersøgt det med cookien? Når du står på siden, så prøv at kør denne kode i adressefeltet: java script:alert(document.cookie) så kan du se om browseren har accepteret cookien fra serveren
11. juli 2005 - 16:46
#28
Hej barklund Hvordan kan jeg så, få session_save.path til at pege på en directory på serveren, i det område som jeg har adgang til ?? På serveren hedder, det jeg har adgang til /public_html
11. juli 2005 - 16:47
#29
Hej ksoren DEn returnerer en tom alert med en OK knap
11. juli 2005 - 17:07
#30
Så får/accepterer du ingen cookies. Den skal gerne vise noget med PHPSESSID At du kontrolleret opsætningen i browseren? /public_html er til de dokumenter som brugere udefra kan hente. Det har intet med sessions at gøre
11. juli 2005 - 18:02
#31
Jeg bruger IE 6.0.29, men jeg kan ikke umiddelbart finde nogle steder der har noget med cookies at gøre.........
11. juli 2005 - 20:30
#32
Jeg har tjekket opsætningen på min browser og alt vedr. Cookies skulle være tilladt. Så jeg begriber ikke hvorfor det ikke virker...
11. juli 2005 - 20:38
#33
Gider du prøve at uploade flg. til dit host, og smide et link her? <?php session_start(); if(isset($_SESSION["count"])) { $_SESSION["count"]++; }else{ $_SESSION["count"] = 1; } echo $_SESSION["count"]; show_source($_SERVER["SCRIPT_FILENAME"]); ?> Mere fordi, det link jeg hidtil har fulgt er der ingen opdatering af session! Men jeg aner jo ikke hviken kode du har bruger der? nu har du vel ikke noget "skjult" (.htaccess, f.eks.), hvor der includes en php fil ved hver request? Og gerne et link til en <?php phpinfo(); ?> også :O)
11. juli 2005 - 23:58
#35
Hej alle der er med på dette spørgsmål. Jeg tager på ferie nu, så hvis jeg ikke svarer inden for de næste 14 dage, så er det ikke af ond mening, men skyldes at jeg ikke har adgang til internettet. Men jeg jeg skal nok vende tilbage....... :o)
01. november 2006 - 12:52
#36
.
01. november 2006 - 12:59
#37
Det var en lang ferie...
Vi tilbyder markedets bedste kurser inden for webudvikling