Archief - PHP: Cookies

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Da_Luke

Legacy Member
Zucht, hier ben ik weer :(

Ik heb al een aantal jaar hetzelfde login script en dat werkt perfect... nu gebruik ik het weer opnieuw en nu heb ik problemen met mijn cookies...

het gaat dus als volgt, ik vraag eerst of er een cookie staat op je pc:

PHP:
if (isset($_COOKIE['user_id_coo'])) {
	$user_id = $_COOKIE['user_id_coo'];
	} else {
	$user_id = 0;
}

Dat heeft altijd gewerkt... Ik ga dus kijken in mijn cookies en die cookie staat daar ook, mooi ingevuld zoals het moet zijn! Maar toch denkt deze code dat hij niet bestaat en zegt hij dat $user_id toch 0 is...

vraag ik de cookie rechstreeks op in de pagina met deze code:

PHP:
$lol = "$_COOKIE[user_id_coo]";

dan krijg ik volgende error: Undefined index: user_id_coo ... DAMN!!! De cookie staat nogtans tussen m'n cookies :(

El_L4mor

Legacy Member
maak er allessinds

$lol = $_COOKIE[user_id_coo];

van... hiermee gaat uw probleem niet opgelost zijn, maar die "" staan daar zo overbodig en nutteloos en slordig :)

Da_Luke

Legacy Member
ja, normaal zet ik ze daar niet ze... ma was alles aan het uit testen enzo... en heb ze der bij gezet :) lost het probleem idd niet op ;)

Radiance

Legacy Member
Maar een array key moet dan weer wel tussen quotes staan, anders is het een constant, dus :
PHP:
$lol = $_COOKIE['user_id_coo'];
Om te checken of een array een key heeft gebruik je beter array_key_exists() trouwens.

Maar goed, mij lijkt het dan eerder dan je
a) een cookie hebt voor een verkeerde host
b) als je die cookie juist daarvoor geplaats hebt je eerst moet refreshen voor ie in de array te voorschijn komt

Post je voledige code eens, hier kunnen we niet echt mee helpen.

killgore

Legacy Member
Radiance zei:
Om te checken of een array een key heeft gebruik je beter array_key_exists() trouwens.

waarom ...?

tenzij je null ook als een geldig gesette waarde aanschouwt, maar dat lijkt me nogal verkeerd bij gpc vars.

Radiance

Legacy Member
Goed, mssn wat overdreven met 'beter' :p Maar ik heb nooit ingezien waarom je niet de functie gebruikt die er speciaal voor gemaakt is, kan alleen maar sneller zijn lijkt me.

killgore

Legacy Member
Radiance zei:
Goed, mssn wat overdreven met 'beter' :p Maar ik heb nooit ingezien waarom je niet de functie gebruikt die er speciaal voor gemaakt is, kan alleen maar sneller zijn lijkt me.

pfiew, dat zou ik zelfs niet durven zeggen daar isset een language contruct is & array_key_exists niet. (na benchmark: isset is sneller :p).

Meer zelfs, als je array niet bestaat zal je php script eigenlijk fout zijn als je enkel array_key_exists gebruikt, deze houdt enkel rekening met het bestaan van een key, niet met het al dan niet bestaan van een array :).

0n3Liner

Legacy Member
goed hoor mannen, maar is het probleem nu al opgelost? :p

Da_Luke

Legacy Member
neen, probleem is nog niet opgelost...
Als ik alles bekijk, dan staan de cookies mooi in mijn local host (onder 127.0.0.1) en ze zijn ook gevuld ...
Ik gebruik juist dezelfde code als altijd en plots werkt da dus niet meer hé... hij blijft zeggen da die cookie niet bestaat :(

killgore

Legacy Member
probeer eens ook uw browsercache en zo te ledigen.

Voor de rest: zeker dat register_globals afstaat?

Da_Luke

Legacy Member
ik heb alles geledigd, en waar kan ik met easyPHP zien of die register_globals afstaat ? Die zou trouwens standaard uit staan bij easyPHP...

0n3Liner

Legacy Member
wat is de url van je domein en wat staat er ingesteld bij de cookies? kan je de code om je cookie te maken ff plakken

Da_Luke

Legacy Member
http://127.0.0.1/site

code die cookie aanmaakt:
PHP:
setcookie ("user_id_coo", "$Row[user_id]", time() + "10000000");

Die cookie wordt dus gevuld met de juiste waarden dus ik denk dat die wel correct gemaakt wordt...
De cookies worden automatisch bewaard en blijven gebruikt worden tot ze vervallen... echter werkt het niet in IE en niet in FF ... dus ligt denk ik ofwel aan de cookie zelf of aan easyphp maar dat zou me verbazen aangezien het altijd heeft gewerkt...

Tyfius

Legacy Member
Die "-tekens rond $Row[] zijn overbodig en die 10000000 moet er ook niet tussen staan.

killgore

Legacy Member
naar 127.0.0.1 kunnen wij niet echt surfen he :p.

alléja, eigenlijk wel in meeste gevallen hier, maar dat is uw site niet.

Da_Luke

Legacy Member
Tyfius zei:
Die "-tekens rond $Row[] zijn overbodig en die 10000000 moet er ook niet tussen staan.

da kan best zijn morreuh de cookie wordt gevuld en staat bij cookies zoals hij moet staan daar ligt het niet aan :) en die +1000000 is eigenlijk om u cookie mega lang te laten bestaan toch? :)

Da_Luke

Legacy Member
killgore zei:
naar 127.0.0.1 kunnen wij niet echt surfen he :p.

alléja, eigenlijk wel in meeste gevallen hier, maar dat is uw site niet.

nja i know... maar ie staat lokaal met easyphp...als ik hem online zet dan staat er een halve site online die niet werkt en daar emmek geen zin in ;)

dJeez

Legacy Member
Da_Luke zei:
ik heb alles geledigd, en waar kan ik met easyPHP zien of die register_globals afstaat ? Die zou trouwens standaard uit staan bij easyPHP...
Voer gewoon een script uit met enkel phpinfo(); erin. Daar staan oa. de PHP ini settings in vermeld.

Da_Luke

Legacy Member
dJeez zei:
Voer gewoon een script uit met enkel phpinfo(); erin. Daar staan oa. de PHP ini settings in vermeld.

die zegt mij dan de globals afstaan, ik krijg ook volgende over cookies:

HTTP_COOKIE PHPSESSID=a7b4d4c90ee6e4a7bf26ebebfb522c67; __utma=96992031.1591461965.1199473337.1199473337.1199473337.1; __utmc=96992031.2; __utmz=96992031.1199473337.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off

session.use_cookies On On
session.use_only_cookies Off Off

_COOKIE["PHPSESSID"] a7b4d4c90ee6e4a7bf26ebebfb522c67
_COOKIE["__utma"] 96992031.1591461965.1199473337.1199473337.1199473337.1
_COOKIE["__utmc"] 96992031.2
_COOKIE["__utmz"] 96992031.1199473337.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

_SERVER["HTTP_COOKIE"] PHPSESSID=a7b4d4c90ee6e4a7bf26ebebfb522c67; __utma=96992031.1591461965.1199473337.1199473337.1199473337.1; __utmc=96992031.2; __utmz=96992031.1199473337.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

:)

killgore

Legacy Member
hm, laat uw huidige aanmaak code van uw cookie nog eens zien?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan