login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cookie te traag of ? [solved]

Offline vinTage - 26/06/2006 09:52 (laatste wijziging 26/06/2006 10:22)
Avatar van vinTageNieuw lid Ik gebruik onderstaand scriptje om iets in de db te zetten, dat werkt allemaal goed, alleen gebruik ik een cookie om weer uit te lezen.
Daar heb ik een klein probleempje, want als ik het email adres verander en dan weer post, dan moet ik eerst refreshen om het juiste email adres te zien..

  1. <?
  2. if(isset($_POST['verzenden']))
  3. {
  4. setcookie("klantgegevens", "", time()-3600, "/");
  5. //persoons gegevens checken op inhoud en valid gedoe
  6. //check
  7. //check
  8. if($fout != 0)
  9. {
  10. echo $verplicht."<br /><a href=javascript:history.back(1)>Corrigeren</a>";
  11. }
  12. else
  13. {
  14. setcookie("klantgegevens", $_POST['email'], time()+7200, "/"); //cookie setten wat ik nodig heb om de db weer te lezen
  15.  
  16. //hier worden alle vars bij elkaar geraapt en geaddslashed etc om in de db te zetten
  17.  
  18. mysql_query("INSERT INTO aanvraagofferte (naam, email, telefoon, straat, postcode, woonplaats, begin, eind, bestellijst, bericht)
  19. VALUES ('".$naam."','".$email."','".$telefoon."', '".$straat."', '".$postcode."', '".$woonplaats."', '".$begin."', '".$eind."', '".$bestellijst."', '".$bericht."')") or die (mysql_error());
  20.  
  21. //na het posten de db uitlezen en echoen om te controleren
  22. $dubbelcheck = mysql_query("SELECT * FROM aanvraagofferte WHERE email = '".$_COOKIE['klantgegevens']."' ORDER BY id DESC LIMIT 1 ") or die (mysql_error());
  23. while ($indb = mysql_fetch_array($dubbelcheck))
  24. {
  25. $dbnaam = $indb['naam'];
  26. $dbemail = $indb['email'];
  27. $dbtelefoon = $indb['telefoon'];
  28. $dbstraat = $indb['straat'];
  29. $dbpostcode = $indb['postcode'];
  30. $dbwoonplaats = $indb['woonplaats'];
  31. $dbbegin = $indb['begin'];
  32. $dbeind = $indb['eind'];
  33. $dbbestellijst = $indb['bestellijst'];
  34. $dbbericht = $indb['bericht'];
  35. }
  36. //en alles echoen wat er in de db gezet is
  37.  
  38.  
  39. }//einde if(isset post
  40. }//einde persoons gegevens check
  41. else
  42. { //toon het form
  43. ?>


Het geheel dient om een offerte aanvraag in te vullen, dan de klant alles te tonen en te laten controleren of hij alles juist heeft ingevuld om dat later te mailen naar de eigenaar van die site.

UPDATE
Ik heb het opgelost door header("Location: blaat.php"); te gebruiken ipv het op dezelfde pagina te willen echoen.
Maar mocht iemand toch weten wat ik fout doe dan hoor ik dat alsnog wel graag hoor.
Het probleem zal wel zijn dat ik teveel flash denk ofzo 

5 antwoorden

Gesponsorde links
Offline marten - 26/06/2006 10:59
Avatar van marten Beheerder waar komt $fout weg?

Waarschijnlijk een array met de verschillende fouten erin of niet?
Offline vinTage - 26/06/2006 11:10
Avatar van vinTage Nieuw lid jep een arraytje, maar dat werkt gewoon allemaal
Offline timo - 26/06/2006 12:05
Avatar van timo PHP ver gevorderde als het inderdaad te traag word gezet, dan moet je anders even sleep(2) ofzo nadat je de cookie set proberen, heb ook wel eens gehad dat een image niet goed werd gemaakt omdat het te snel ging... 5 seconden wachten en het werkte wel..
Offline Thomas - 26/06/2006 12:22
Avatar van Thomas Moderator Vergeet geen exit(); te zetten na header().

header() wordt pas uitgevoerd na beeindiging van het hele script, dus als je zoiets hebt:

  1. if(formulier verstuurd)
  2. {
  3. db zooi
  4. header voor refresh
  5. }
  6. laad de rest van je pagina


Wordt vrolijk "laad de rest van je pagina" geladen/uitgevoerd, alvorens er gerefreshed wordt.

Als je sessies gebruikt is het misschien ook zinnig om session_write_close uit te voeren alvorens header() te gebruiken.
Offline vinTage - 26/06/2006 12:31
Avatar van vinTage Nieuw lid Oh, dat van die exit() wist ik nog niet, staat erin nu.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.187s