[PHP/Cookies]Cookies worden pas de tweede keer gezet.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een advertentie pagina gemaakt waar men advertentie kan plaatsen. Kijk maar op:
http://www.nwpcs.nl/verko...php?cID=1&tk=1&actie=view
(Ik weet dat er nog wat lay-out problemen zijn, daar wordt aangewerkt ;))

Nu ben ik bezig om de gebruikers de mogelijkheid te bieden hun advertenties te beheren (wijzigen en verwijderen). Daarvoor heb ik een loginscript. Nadat men met succes is ingelogd wordt er een cookie gezet:
code:
1
setcookie("NWPCS_salesLogin",$email,0,'/','',0);

Er zijn vier acties:
login (default)
list
edit
delete
Omdat ze via GET_VARS worden doorgegeven controleer ik in die functies of de cookie wel gezet is en of die overeenkomt met het, ook via GET_VARS, doorgegeven e-mailadres.
In deze functies die in een include bestand staan gaat het mis.
Het controle gedeelte in de functies:
code:
1
2
3
4
5
6
7
$nietIngelogd = true;
$cookie = isset($GLOBALS["HTTP_COOKIE_VARS"]["NWPCS_salesLogin"])?trim($GLOBALS["HTTP_COOKIE_VARS"]["NWPCS_salesLogin"]):"NoCookieSet";
if ($cookie != "NoCookieSet")   
    if ($email == $cookie and $email != "")
    {
        echo "Ingelogd";
    }


De eerste keer inloggen geeft dat de cookie niet is gezet. Je wordt dan weer teruggestuurd naar het inlogscherm. Als je vervolgens opnieuw inlogt, gaat het wel goed. Daar snap ik niets van.

Moet ik nog iets anders doen om de cookies goed door te geven?
Ik gebruik overigens PHP v4.0.6

--
Paul

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Op welke pagina zet je je cookie en redirect je daarna naar een (andere) pagina? Je weet dat cookies pas gezet worden bij het verlaten van de pagina?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat wist ik niet. Dat verklaard een hoop. Ik redirect nl. niet ik roep 'gewoon' de functie aan.
Ik zal het eens proberen door te redirecten.

Bedankt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na het zetten van de cookie heb ik nu de volgende regels staan:
code:
1
2
3
4
//pagina opnieuw laden want cookies worden pas gezet bij het verklaten van de pagina
$thisPage =  $GLOBALS["HTTP_SERVER_VARS"]["PHP_SELF"];
header("Location: $thisPage?actie=list&email=$email"); /* Stuur de browser naar de PHP website */   
exit; /* Zorg dat de code hieronder niet wordt uitgevoerd */
Copy/Paste van de php.net site.

En het werkt! :)
Erg bedankt voor de hulp. Hier was ik nooit achter gekomen. _/-\o_

--
Paul

[ Voor 8% gewijzigd door Verwijderd op 25-07-2006 20:39 . Reden: Lay-out code was een beetje fukt-up O+ ]


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
$GLOBALS ? HTTP_SERVER_VARS ? Ik zou zeggen, herbekijk die code eens :p

March of the Eagles