[PHP]Na submit ineens cookies en sessions verdwenen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een vreemd probleem met een script.

Een script is opgebouwd uit 5 stappen welke elke keer met een post action worden aangesproken.
PHP:
1
2
3
4
5
6
7
8
function stap1() {
echo "<form method=\"post\" action=\"index.php\">
<input type=\"text\" name=\"basisprijs\" size =\"5\">
<input type=\"submit\" name=\"submit\" value=\"submit\">
<INPUT TYPE=HIDDEN NAME=\"mod\" VALUE=\"prijzen\">
<INPUT TYPE=HIDDEN NAME=\"functie\" VALUE=\"stap2\">
</form>";
}


in de volgende stap worden alle input velden van stap 1 in een cookie gestop en worden er nieuwe input velden bij gemaakt.
PHP:
1
2
3
4
5
function stap2() {
$basisprijs= $_POST["basisprijs"];
setcookie("basisprijs",$basisprijs,3600);
<nieuwe input+submit functie volgende stap>
}


stap 3 is zelfde als stap 2 echter met andere input velden.

Op de 4de pagina krijg je vervolgens een overzicht van alle ingegeven waardes van stap 1 t/m 3

PHP:
1
2
3
4
5
6
7
$basisprijs = $_COOKIE["basisprijs"];
echo "basisprijs = $basisprijs";
echo "<form method=\"post\" action=\"index.php\">
<input type=\"submit\" name=\"submit\" value=\"submit\">
<INPUT TYPE=HIDDEN NAME=\"mod\" VALUE=\"prijzen\">
<INPUT TYPE=HIDDEN NAME=\"functie\" VALUE=\"stap5\">
</form>";


Alle waardes zijn op pagina 4 nog aanwezig en correct, het gaat mis bij de volgende stap.
In stap 4 zit een submit button (een submit post functie) naar de 5de stap waar alles in een database moet worden gestopt.

Nu komt het probleem.

Zodra je dus in de 4de stap op submit klikt worden ineens alle sessies afgebroken (de login op site is ook met een sessie), je bent dus ineens uitgelogged van de site en ook alle cookies van stap 2,3 en 4 zijn dan ineens leeg.
Het allervreemdste vind ik nog dat dit alleen met een IE browser gebeurd, met FireFox werkt het prima en krijg je geen problemen, alles komt dan aan in stap 5.

Heb het hele script al diverse malen doorgekeken, er staat nergens een vreemde code in of iets wat dit kan veroorzaken. Dit gebeurd zowel bij me thuis (eigen webservertje) als online via een andere webserver.

Mijn vraag is nu eigenlijk, welk commando/opdracht is er in PHP wat ineens alle cookies en sessies kan vernietigen, want dit gebeurd er blijkbaar.

Ik heb al error_reporting( E_ALL ); in elke functie gezet, echter bij geen enkele stap krijg ik een foutmelding wat dit zou kunnen verklaren.
Ook niet in de 5de stap waar ineens alles leeg is.

Heb eerlijk gezegd geen idee meer waar dit aan kan liggen.
Iemand nuttige tips?

[ Voor 58% gewijzigd door Verwijderd op 23-10-2005 04:04 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dit lijkt me niet echt iets te maken te hebben met PHP, eerder met de cookie/privacy-instellingen van IE.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gebeurd bij iedereen die IE gebruikt, dus niet alleen op mijn systeem.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op zondag 23 oktober 2005 @ 03:47:
Zodra je dus in de 4de stap op submit klikt worden ineens alle sessies afgebroken (de login op site is ook met een sessie), je bent dus ineens uitgelogged van de site en ook alle cookies van stap 2,3 en 4 zijn dan ineens leeg.
Om hoeveel cookies gaat het op dat moment?
Als het er precies 1 teveel is ofzo, kan natuurlijk net je sessie-cookie (die kreeg IE het eerste tenslotte) eruit gegooid worden. Maar je hebt wel een erg vreemd probleem ontdekt :)

Is je cookie-array helemaal leeg, of is vooral/alleen de sessie-id eruit?
Worden in de latere stappen ook alle cookies weer opnieuw geset (dus ook van 1, 2, 3 en 4) ?

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21-09 06:21
voor een sessie moet je toch session_start() aanroepen?

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@ACM het zijn ongeveer 20 cookies bij stap 4 naar 5
Het is een bestel systeem, denk aan voornaam, achternaam , adres, etc en het product wat je wilt bestellen. Elke waarde wordt apart via een setcookie(waarde....); in een cookie gestopt in stap 1 t/m 4, stap 4 is puur een overzicht van je bestelling. Je moet dit controleren en submitten dan gaat het ineens mis.

De cookie is gewoon verdwenen van je systeem, als je je verkenner open hebt staan zie je gewoon zodra je op submit klikt de cookie ineens verdwijnen. Ook je sessie ID dus.

De cookies worden 1 keer geset.
in stap 1 geef je waarde 1 in, in stap 2 wordt de cookie dan geset die je hebt ingegeven in stap1
In stap2 krijg je meer input velden en die worden weer geset in stap3 enz..
In stap 4 set ik vervolgens de waardes ingeven van stap3 en print alle waardes van stap 1,2 en 3
De waardes haal ik allemaal op via $waarde1 = $_COOKIE['waarde1'];
In stap 4 zitten geen input velden meer voor extra waardes.

@webgnome
Dit is een eigen CMS, session_start(); wordt al eerder gegeven in de index.php die bij elke klik automatisch geladen wordt, wat ik hier neer zet is een heel simpele omschrijving van de opbouw.
Het probleem is niet het ontbreken van de session_start(); met FF werkt immers perfect.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:44

crisp

Devver

Pixelated

20 cookies per domain en max 4KB (voor alle cookies samen) is ongeveer de limiet die de meeste browsers hebben.
Het beste alternatief lijkt me de gegevens in een sessie te bewaren en/of te serializen in 1 cookie of sessievar, of om ze elke keer in hidden fields op te nemen en door te geven.

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmmm daar zeg je inderdaad iets, daar heb ik niet aangedacht.
Ik zal eens als test een paar cookies/waardes tijdelijk uit zetten, kijken of het inderdaad daar inzit

Edit:
Je hebt helemaal gelijk, nu ik diverse waardes tijdelijk heb uitgezet werkt het wel.
Nu nog een kwestie van de cookies een beetje herschrijven en probleem opgelost.

THX!

[ Voor 37% gewijzigd door Verwijderd op 23-10-2005 18:04 ]

Pagina: 1