20. februar 2009 - 17:31
Der er
30 kommentarer
Session gemmer ikke
Jeg har et problem med at jeg ikke kan gemme i min session Denne linje gemmer ikke noget: $_SESSION['dataSend'] = "".$_POST["profileEmail"].""; Mens denne fungere efter hensigten: $_SESSION['dataSend'] = "TEST MED SESSION"; Hvad går der galt?
Annonceindlæg fra FPT Software
20. februar 2009 - 17:41
#1
Der står ingenting i $_POST["profileEmail"] ?
20. februar 2009 - 17:43
#2
Jo, for hvis jeg laver en: print $_POST["profileEmail"] så kommer den rigtige værdi frem.
20. februar 2009 - 17:49
#3
Hvad sker der, hvis du skriver: $_SESSION['dataSend'] = $_POST["profileEmail"];
20. februar 2009 - 17:55
#4
Det er nøjagtig samme situation... Det virk MEGET mærkeligt for mig
20. februar 2009 - 18:06
#5
Nogle forslag til hvad der kan være galt?
20. februar 2009 - 18:17
#6
Jeg går jo ud fra, at du har sat session_start(), da den anden sessionvariabel virker. Kan du ikke sende den kode, der driller.
20. februar 2009 - 18:24
#7
switch($siteRewrite[1]){ // Validerer og gemmer data case "saveUserData": $_SESSION['dataSend'] = $_POST["profileEmail"]; // Her er så noget kode som validere input fra formen, og sender brugeren tilbage hvis ikke inputtet overholder kravene! break; default: print ' <form method="post" action="/opret-bruger/saveUserData/" name="register"> <input type="text" size="25" value="'.$_SESSION['dataSend'].'" name="profileEmail" id="formTxt"> </form> '; }
20. februar 2009 - 18:35
#8
Det virker mærkeligt at det ikke virker syntes jeg...
20. februar 2009 - 18:51
#9
Og ja... har selvfølgelig sat session_start()
20. februar 2009 - 18:56
#10
Det sjove er at jeg kan også sagtens sætte værdien af session til andre php funktioner... f.eks. date("Y")
20. februar 2009 - 18:56
#11
Men den vil overhovedet ikke gemme værdien fra formen i sessionen!
20. februar 2009 - 19:00
#12
hmmm - det virker underligt. Og du siger, at hvis du skriver: print $_POST["profileEmail"]; fx lige efter $_SESSION['dataSend'] = $_POST["profileEmail"]; så vises indholdet korrekt?
20. februar 2009 - 19:01
#13
jeps, det vises helt korrekt!
20. februar 2009 - 19:06
#14
Og du siger, at det virker med andre Sessions-variabler, fx. $_SESSION['dato'] = date("y");
20. februar 2009 - 19:08
#15
Det virker hvis jef f.eks.: $_SESSION['dataSend'] = date("Y");
20. februar 2009 - 19:14
#16
PAS - det forstår jeg ikke. Jeg prøver gerne koden på min lokale server, hvis du gerne vil have et tjek på, om det virker andre steder. Så skal du lige poste koden her eller smide i en mail på nemlig10@hotmail.com
20. februar 2009 - 19:27
#17
Det virker som om du aflæser $_POST variablen, selv om man ikke fra en POST-action.
20. februar 2009 - 20:01
#18
hmm... det forstår jeg ikke helt! Kan du prøve at uddybe eller komme med et forslag til løsning?
20. februar 2009 - 20:08
#19
Løsning? Ikke ud fra dine stumper af kode, nej. Det er hjælp til selvhjælp.
Uddybning? Måske: Hvis du kommer ind på siden
http://whatev.er/opret-bruger/saveUserData/ uden at komme fra din form, så ser det ud til at din sessionsvariabel nulstilles.
Men det er stadig et gæt, fordi vi kun ser en mikroskopisk del.
20. februar 2009 - 20:26
#20
Som jeg har nævnt tidligere i dette indlæg: <form method="post" action="/opret-bruger/saveUserData/" name="register"> <input type="text" size="25" value="'.$_SESSION['dataSend'].'" name="profileEmail" id="formTxt"> </form> Så jeg kommer ind på siden fra en form, men kommer tilbage hertil når session er sat, og gerne skulle indeholde variabler...
20. februar 2009 - 20:38
#21
Hvis du ikke vil smide hele koden her, kan du så ikke lave noget kort og færdigt kode, som viser problemet. Så er det meget nenmmere, at pege på problemet.
20. februar 2009 - 20:46
#22
switch($siteRewrite[1]){ // Validerer og gemmer data case "saveUserData": unset($_SESSION["dataSend"]); $_SESSION['dataSend'] = array( 0 => $_POST["profileEmail"], 1 => $_POST["profileEmailCon"], 2 => $_POST["profilePassword"], 3 => $_POST["profilePasswordCon"], 4 => $_POST["profileName"], 5 => $_POST["profileLastName"], 6 => $_POST["profilePostcode"], 7 => $_POST["profileCityName"], 8 => $_POST["profileCountry"], 9 => $_POST["profileBDay"], 10 => $_POST["profileBMonth"], 11 => $_POST["profileBYear"], 12 => $_POST["profileSex"], 13 => $_POST["profileNewsletter"], 14 => $_POST["profileTerms"], ); if(empty($_SESSION['dataSend'][0]) || empty($_SESSION['dataSend'][1])) error($error1, $_SERVER['HTTP_REFERER'], $errorType1); // Den sender brugeren tilbage til /opret-bruger/ }else{ // indsætter i DB } break; default: print ' <form method="post" action="/opret-bruger/saveUserData/" name="register"> <input type="text" size="25" value="'.$_SESSION['dataSend'].'" name="profileEmail" id="formTxt"> </form> '; }
20. februar 2009 - 20:46
#23
switch($siteRewrite[1]){ // Validerer og gemmer data case "saveUserData": unset($_SESSION["dataSend"]); $_SESSION['dataSend'] = array( 0 => $_POST["profileEmail"], 1 => $_POST["profileEmailCon"], 2 => $_POST["profilePassword"], 3 => $_POST["profilePasswordCon"], 4 => $_POST["profileName"], 5 => $_POST["profileLastName"], 6 => $_POST["profilePostcode"], 7 => $_POST["profileCityName"], 8 => $_POST["profileCountry"], 9 => $_POST["profileBDay"], 10 => $_POST["profileBMonth"], 11 => $_POST["profileBYear"], 12 => $_POST["profileSex"], 13 => $_POST["profileNewsletter"], 14 => $_POST["profileTerms"], ); if(empty($_SESSION['dataSend'][0]) || empty($_SESSION['dataSend'][1])) error($error1, $_SERVER['HTTP_REFERER'], $errorType1); // Den sender brugeren tilbage til /opret-bruger/ }else{ // indsætter i DB } break; default: print ' <form method="post" action="/opret-bruger/saveUserData/" name="register"> <input type="text" size="25" value="'.$_SESSION['dataSend'].'" name="profileEmail" id="formTxt"> </form> '; }
20. februar 2009 - 20:48
#24
Grunden til jeg laver en unset af sessionen er at cleare den hvis der er ændret i nogle af input felterne, og man stadig ikke opfylder kravene. Så det hele tiden er de nyeste data den indeholder :)
20. februar 2009 - 21:14
#25
Når du nu siger, den ikke gemmer noget i din session, er den så tom, eller består den af et array af tomme værdier?
20. februar 2009 - 21:15
#26
Og når du skriver <input type="text" size="25" value="'.$_SESSION['dataSend'].'" name="profileEmail" id="formTxt"> så tager du ikke hensyn til at $_SESSION['dataSend'] er et array? Ikke forstået.
20. februar 2009 - 21:22
#27
Det skal selvfølgelig være: <input type="text" size="25" value="'.$_SESSION['dataSend'][0].'" name="profileEmail" id="formTxt"> Og sessionen er bare tom
20. februar 2009 - 21:27
#28
Ok. Kunne du så tænke dig at vise den kode, du rent faktisk kører, og som ikke virker. Gættekonkurrencer er sjove, men hvis du har tid nok, er det ok med mig.
20. februar 2009 - 21:58
#29
Øhhh, den kode jeg viser er sådan set den jeg kører, men fair nok. Hvis du skal være sur og uhøflig, så undlad at indlede dig på at svare spørgsmål her!! Med det antal point du har, burde du have en bedre tone, men det er der åbenbart nogle mennesker som ikke har! Jeg fundet en løsning, hvor jeg har lavet om på strukturen hvorpå jeg sender dataene!
20. februar 2009 - 22:13
#30
Jeg finder faktisk ericjacobsens kommentarer morsomme, i lyset af at der spørges flere gange efter koden, eller at det "lugter" af, at fejlen findes i noget af koden, som ikke er vist i tråden. Det er nu engang noget nemmere at fejlsøge, når vi kender hele koden.
Vi tilbyder markedets bedste kurser inden for webudvikling