OyvindN Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 (endret) Har sett litt på tidligere sessions-problemer her men vet ikke hva jeg skal gjøre. Her er koden i sin helhet: session_start(); session_register("min_variabel"); $min_variabel = "Hello world"; echo "The content of \$min_variabel is $min_variabel"; som gir en haug med meldinger: Warning: session_start(): open(/tmp\sess_db8e69816ee3a4053dc6c4554d1475ff, O_RDWR) failed: No such file or directory (2) in m:\webting\test\regred\session.php on line 3 Warning: session_start(): Cannot send session cookie - headers already sent by (output started at m:\webting\test\regred\session.php:3) in m:\webting\test\regred\session.php on line 3 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at m:\webting\test\regred\session.php:3) in m:\webting\test\regred\session.php on line 3 The content of $myvar is Hello world Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 Warning: Unknown(): open(/tmp\sess_db8e69816ee3a4053dc6c4554d1475ff, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0 Endret 26. januar 2004 av OyvindN Lenke til kommentar
Torbjørn Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 hvordan vet du at du trenger sessions? Lenke til kommentar
???????? Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 Det virker som alle de feilmeldingene skyldes at du ikke har gjort rett instillinger i php.ini. Der har du en instilling som heter session.save_path, sett den til der du vil lagre sessionen, f.eks. c:\tmp Så oppretter du en mappe med den plasseringen - så burde det fungere! Lenke til kommentar
Gruzuk Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 Jeg hadde samme problemet med cookies og da var det kun å opprette mappen så gikk det bra! Men når skal man bruke sessions og ikke cookies? Er det generelle råd annet enn ikke bruk cookies dersom det har noe å si om bruker kan endre innholdet? MVh GruZuk Lenke til kommentar
OyvindN Skrevet 26. januar 2004 Forfatter Del Skrevet 26. januar 2004 Prøvde med c:\tmp og å opprette mappe, men får samme meldingene. Hvordan jeg vet at jeg trenger sessions? Tenkte det kunne vært fint å lære. Lenke til kommentar
Torbjørn Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 det er grunn nok kan desverre ikke hjelpe deg noe mer med problemet, har null erfaring med php for windows Lenke til kommentar
???????? Skrevet 26. januar 2004 Del Skrevet 26. januar 2004 Post den nye feilmeldingen... Hvis du har endret instillingene i php.ini og restartet serveren så skal feilmeldingen nå ha forandret seg litt. I utgangspunkter ser det ut som problemet det er denne instillingen som er feil, siden feilmeldingen sier at den finner ikke filen i den mappen. Lenke til kommentar
BlueEAGLE Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 Ser ut som at du ikke har satt den midlertidige katalogen riktig open(/tmp\sess_db8e69816ee3a4053dc6c4554d1475ff, O_RDWR) I windows så er det ikke noe som heter /tmp. Bytt ut det med en annen katalog (mkdir m:\tmp og sett php til å bruke den katalogen i php.ini) tror det skal fikse det. Lenke til kommentar
OyvindN Skrevet 27. januar 2004 Forfatter Del Skrevet 27. januar 2004 Har endret litt på koden, har php versjon 4.3.3 <? session_start(); $_SESSION['min_variabel'] = "Hello World"; echo "The content of \$min_variabel is $min_variabel"; ?> Jeg har prøvd på ulike path'er i php.ini: session.save_path = /tmp session.save_path = session.save_path = /tmph3iuf3hih Samma hva jeg skriver og restarter serveren får jeg disse feilmeldingene: Warning: session_start(): open(/tmp\sess_bb93b36e3ff113bfd677c2787983fe8c, O_RDWR) failed: No such file or directory (2) in m:\webting\test\regred\session.php on line 3 Warning: session_start(): Cannot send session cookie - headers already sent by (output started at m:\webting\test\regred\session.php:3) in m:\webting\test\regred\session.php on line 3 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at m:\webting\test\regred\session.php:3) in m:\webting\test\regred\session.php on line 3 The content of $min_variabel is Warning: Unknown(): open(/tmp\sess_bb93b36e3ff113bfd677c2787983fe8c, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0 Lenke til kommentar
Torbjørn Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 vet ikke om du skjønte hva de andre mente - men du kommer like langt så lenge du angir en path som ikke finnes. /tmp finnes ikke på windowsmaskiner Lenke til kommentar
???????? Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 vet ikke om du skjønte hva de andre mente - men du kommer like langt så lenge du angir en path som ikke finnes. /tmp finnes ikke på windowsmaskiner Skulle tro at den ikke finnes, men den gjør det. Hvis du bruker /tmp og serveren og php er installert på c: så er /tmp = c:/tmp Hvilket os bruker du? Bruker du windows så kan du bruke hele addressen, f.eks. c:/paht/to/server/tmp Hvis du bruker session.save_path = /tmp så er det det samme som c:/tmp - så da må du lage den mappen! Lenke til kommentar
Torbjørn Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 oi, der ser man. takk for korreksjon. Lenke til kommentar
OyvindN Skrevet 27. januar 2004 Forfatter Del Skrevet 27. januar 2004 Jeg bruker Windows XP. Har laget tmp-mapper omtrent overalt nå, men får fremdeles de samme meldingene. Prøvde meg på: session_save_path('c:/tmp'); session_start(); $_SESSION['min_variabel'] = "Hello World"; echo "The content of \$min_variabel is $min_variabel"; Output her blir: The content of $min_variabel is Jeg ser at det først nå registreres en session-fil i tmp-mappen, men $min_variabel vises altså ikke. Ingen feilmeldinger forøvrig.. Ved: session_start(); $_SESSION['min_variabel'] = "Hello World"; echo "The content of \$min_variabel is $min_variabel"; vises fremdeles de samme meldingene som nevnt i forrige innlegg. Lenke til kommentar
???????? Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 Hvis du fortsatt får samme feilmelding: Warning: session_start(): open(/tmp\sess_db8e69816ee3a4053dc6c4554d1475ff, O_RDWR) failed: No such file or directory (2) in m:\webting\test\regred\session.php on line 3 så tyder det på at du enten ikke har fått installert php sikkelig, eller at du redigerer feil php.ini (hvis du har kopiert den til flere steder?) Lag denne filen, og kjør den i browseren: <?php phpinfo(); ?> Da får du opp en liste med dine PHP instillinger. I første tabellen finner du Configuration File (php.ini) Path der kan du se hvor php.ini filen din er. Stemmer det går du lengre ned til avsnittet om sessions: session.save_path Sjekk at den stemmer med det du har valgt. Grunnen til at jeg tror du har en feil med installasjonen (eller editerer feil php.ini) er for hvis du endrer /tmp til c:/web/temp så burde det stå det i feilmeldingen og ikke : open (/tmp\sess_db8e69816 Lenke til kommentar
OyvindN Skrevet 27. januar 2004 Forfatter Del Skrevet 27. januar 2004 Takker! Ja, jeg rota faktisk i feil php.ini-fil. session_start(); $_SESSION['min_variabel'] = "Hello World"; echo "The content of \$min_variabel is $min_variabel"; Nå blir output dette: The content of $min_variabel is Alle feilmeldinger er borte, men $min_variabel vises ikke.. Lenke til kommentar
???????? Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 Test denne: session_start(); $_SESSION['min_variabel'] = "Hello World"; echo "The content of \$min_variabel is ".$_SESSION['min_variabel']; Du må bruke $_SESSION for å hente variablene også! Lenke til kommentar
FuLu Skrevet 27. januar 2004 Del Skrevet 27. januar 2004 register_globals er skrudd av som default i nyere PHP, det anbefales også at du bruker $_SESSION til å lagre og hente variabler i en session. F.eks: session_start(); if(isset($_SESSION['min_var'])) { echo $_SESSION['min_var']; // Her henter du ut min_var } else { $_SESSION['min_var'] = "en verdi"; // Her setter du min_var } Lenke til kommentar
OyvindN Skrevet 27. januar 2004 Forfatter Del Skrevet 27. januar 2004 Yes, det funker faktisk! Fantastisk! Takk for hjelpen! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå