cookie will einfach nicht (login)

Kane van Leen

Grünschnabel
hallo

ich habe ein problem.
ich will ein cookie setzten und es geht nicht.

also

in der start.php
ist ein formular mit 'user-feld' und 'passwort-feld'
gibt man name und pw ein öffnet sich checkuser.php
der code sieht so aus:
PHP:
<?php
$verbindung = @mysql_connect("host","user","pass");
mysql_select_db("db");
$QUERY = mysql_query("SELECT id, name, passwort FROM user WHERE name = '$user' AND passwort = '$pass'");
$NUMROWS = mysql_num_rows($QUERY);

if ($NUMROWS){
$cookiename = "kgcome1";
setcookie($cookiename, $name, time()+3600*24);
include("../pwrichtig.txt");
}else{
?>
<html>
<head>
<meta http-equiv="refresh" content="3;URL=../start.php">
</head>
<body>
Das war falsch! 
</body>
</html>
<?
}
?>

wobei der include befehl ausgeführt wird, wenn name und pass richtig sind, nur der cookie wird nicht gesetzt...

bleibt die frage:
warum?
 
Hallo,

meiner Meinung nach kann es an zwei Gründen liegen.

1.
Cookies werden im Kopf der HTTP-Antwort gesendet. Der Seiteninhalt kann also erst danach geschrieben werden.

Deinem Quellcode nach, fragst du eine DB ab, und willst namen etc. als $name an das Cookie weitergeben? - richtig?
Wenn das so ist, hast du das Problem, dass der Header schon gesendet wurde, das Cookie kann dem zur Folge diese Daten nicht mehr aufnehmen...

2.
Was macht die Include-Datei? Wenn diese Teil des Cookies ist geht es ebenfalls nicht...

Greetings
ExAByte
 
zu exabyte: es wird kein header gesendet, bevor der erste HTML-code bzw. ein echo befehl erfolgte, also daran liegt es hier nicht

eher an der formulierung der datenbankabfrage

anstatt
PHP:
$QUERY = mysql_query("SELECT id, name, passwort FROM user WHERE name = '$user' AND passwort = '$pass'");

solltest du es folgendermassen versuchen
PHP:
$command = "SELECT id, name, passwort FROM user WHERE name = '$user' AND passwort = '$pass'"
$query = mysql_query($command);

cu..Jaeger
 

Neue Beiträge

Zurück