XMLHttpRequest Cookies in Firefox

Status
Niet open voor verdere reacties.

Zaggo0

Nieuwe gebruiker
Lid geworden
3 aug 2010
Berichten
4
Hallo,

Ik weet niet precies of het in JavaScript of in PHP thuis hoort, maar hier mijn vraag:

Ik ben al een tijdje bezig om gegevens door te sturen via LiveUpdate, maar omdat de pagina waarnaar het verstuurd moet worden beschermt moet zijn (omdat het anders heel simpel door onbevoegden aangepast kan worden), maak ik een cookie aan via document.cookie.
In mijn LiveUpdate pagina gebruik ik PHP om de cookie op te halen, maar op één of andere manier pakt Firefox de cookie wel, maar geeft een lege waarde terug als antwoord.

Voorbeelden:
[JS]if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Item").innerHTML=xmlhttp.responseText;
}

var date = new Date();
date.setTime(date.getTime() + (10000));
document.cookie = "MyCookie=MyCookieValue; expires="+ date.toGMTString() +"; path=/";

xmlhttp.open("GET", "liveupdate.php?");
xmlhttp.send();
}[/JS]

Ik weet sowiesow niet of dit een handige manier is, als er een betere is hoor ik die graag :)

Nadat de cookie gemaakt is, vraag ik deze in mijn PHP bestand op:
PHP:
<?php
if(isset($_COOKIE["myCookie"]))
{
	echo "Succes";
}
else
{
	echo "Failure";
}
?>

In IE doet alles het gewoon prima, maar in Firefox geeft hij gewoon een lege waarde terug, nog niet eens 'Failure'...
Ik heb getest om de cookie in JavaScript te lezen, en daar staan alle gegevens gewoon correct in.
Ook heb ik Cookies aanstaan bij opties, dus dat is het niet.

Als iemand mij hiermee kon helpen, zou ik dat erg op prijs stellen!

- Zaggo0

P.S.: Iedereen een gelukkig 2011!
 
Laatst bewerkt:
Voor een cookie moet je eerst de pagina opnieuw refreshen. HTTP cookies worden via headers gestuurd, dus je kan niet eerst het cookie aanmaken en dan direct de waarde lezen.

Also, ik volg niet helemaal wat dit met XHttpRequest te maken heeft. Probeer je dus een cookie te zetten in je javascript pagina, en deze dan uit te lezen met je php bestand? In dat geval doe je de volgorde verkeerd, het moet zo:
  1. cookie maken
  2. http request
  3. php van xhttp uitlezen
dus niet pas het cookie aanmaken bij het readystatechange event.
 
Ja ik probeer een cookie te maken en deze uit te lezen, zodat ik verborgen informatie wat sneller kan verstoppen, maar ik heb al een andere manier gevonden.
Ik heb nu bij het inloggen een cookie gemaakt met Username, Password en UserID, en vervolgens met de Request het PHP bestand te openen en daar GET informatie in te doen.

Maar erg bedankt, voor de volgende keer weet ik de goeie volgorde ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan