PHP + Cookies Frage

02/17/2013 17:34 Waller66#1
Hallo , tut mir leid das ich noch mal stören muss , habe in mein Php script das setzen und auslesen eines Cookies eingefügt , nun gibt er das an wenn der Cookie noch nicht gesetzt wurde (erster aufruf der seite)

Quote:
Notice: Undefined index: testcookie in C:\xampp\htdocs\loginsystem\login.php on line 3
Willkommen
Sollte der cookie bereits gesetzt worden sein gibt er keine fehler wieder.

PHP Code:
if($_COOKIE['testcookie'] == '1')
{
echo(
"Du warst bereits hier <br>");
}
else
{
echo(
"Willkommen <br");
}
$value '1';
setcookie("testcookie"$value); 
Ich hoffe ihr könnt mir helfen das zu beseitigen, weil wenn ich ihm beim aufrufen erstelle muss ich ihm doch nen wert zu schreiben und wenn dann überschreibt der ja den alten und das heißt der cookie würde nichts nützen.
02/17/2013 17:58 Synatex#2
Ob eine Variable gesetzt wurde oder nicht kannst du mit isset ( [Only registered and activated users can see links. Click Here To Register...] ) prüfen.
02/17/2013 19:17 tayfe#3
Was ein Fehler sein könnte bzw. sein sollte ist, dass du den Cookie erst setzt, nachdem du bereits etwas ausgegeben hast. Cookies müssen grundsätzlich immer gesetzt werden, bevor irgendetwas ausgegeben wird, egal ob per PHP oder HTML!

Ich würde einfach mal versuchen, das
PHP Code:
setcookie("testcookie"$value); 
an den Anfang des Scrips zu setzen.
02/17/2013 20:04 Waller66#4
Problem erledigt danke Synatex

Quote:
Originally Posted by tayfe View Post
Was ein Fehler sein könnte bzw. sein sollte ist, dass du den Cookie erst setzt, nachdem du bereits etwas ausgegeben hast. Cookies müssen grundsätzlich immer gesetzt werden, bevor irgendetwas ausgegeben wird, egal ob per PHP oder HTML!

Ich würde einfach mal versuchen, das
PHP Code:
setcookie("testcookie"$value); 
an den Anfang des Scrips zu setzen.
du bist ja clever , dann überschreibt er ja den cookie und ich kann nicht mehr abfragen ob er schon beim login gesetzt wurde...

ich suche nach methode wie ich überprüfen kann ob der cookie schon gesetzt wurde oder nicht

achja und das mit deiner reflink database war ich , ist ja nicht sehr gut geschützt...
mir war langweilig und wollte dich auf die lücke drauf aufmerksam machen bevor es bosshaft ausgenutzt wird .
02/17/2013 20:33 PseudoPsycho#5
Zunächste mal sorgt deine Abfrage für den Fehler:
PHP Code:
if($_COOKIE['testcookie'] == '1'
Stattdessen solltest du sowas schreiben:
PHP Code:
if(!empty($_COOKIE['testcookie']) && $_COOKIE['testcookie'] == '1'
tayfe hat aber auch Recht. Das setcookie() gehört an den Anfang. Wenn du das Ergebnis zunächst zwischenspeicherst, sollte das gehen. Insgesamt könnte dein Script also so aussehen:
PHP Code:
$cookie=false;
if(!empty(
$_COOKIE['testcookie']) && $_COOKIE['testcookie'] == '1')
{
$cookie=true;
}
$value '1';
setcookie("testcookie"$value);
if(
$cookie===true)
{
echo(
"Du warst bereits hier <br>");
}
else
{
echo(
"Willkommen <br>");