Cookie Probleme...

disear

Erfahrenes Mitglied
Hallo zusammen,
Habe ein kleines Problem mit Cookies. Wenn sich der Benutzer einloggt
(mit dem richtigen Benutzer wie Passwort) setzt man ein cookie.
Aber kann nicht auf die geschützte Seite zugreifen... und das Cookie wird auch nicht gesetzt :(

also hier der Quelltext:

üperprüfen ob Passwort stimmt und cookie setzten:

<?php
Datenbankverbindung...
$query="SELECT * FROM user WHERE user='$benutzer' AND pass='$passwort'";
if (@mysql_num_rows(@mysql_query($query))>0)
{
setcookie("guestbook",$benutzer, time()+3600, 0 );
echo "<a href=admin.php>Login korrekt</a>";
}
else
{

include("admin.php");
print "Fehler!! Passwort und/oder Benutzername falsch";
}
?>

geschützte Seite:(admin.php)

<?php
if(isset($HTTP_COOKIE_VARS[guestbook]))
{
include ("Seite.php");
}
else
{
include ("login.php");
}
?>

Danke schon im Voraus
gruss disear
 
lass einfach bei der cookie definition mal das ,0 weg ;)
und du bist sicher das das cookie nur 3600 sekunden gelten soll ?
wenns unendlich lange halten soll mach die zeitangabe weg, wenn du nur testen willst mach 60 sec under so...
 
hmm...

Jetzt erscheint ein fenster mit der Fehlermeldung
php.exe- Fehler in Anwendung
Die Ausname "unknown software exception" (0xc000000fd)..... aufgetreten... :(
was habe ich noch falsch gemacht??
Und wie kann ich das Cookie definieren, dass es beim schliessen des Browser zerstört wird??
Danke schon mal...
disear
 
also Cookies können nur am Anfang einer Datei ausgeführt werden. Das heißt sie muss vor allem anderen kommen,oder du löst das problem mit ob_flush <- weiß net genau wie das geht.

Ein Cookie löst sich automatisch nach dem schließen des IE's auf wenn du die time-angabe weglässt.
In deinem Fall:
setcookie("guestbook",$benutzer);
 
mit dem browser das weiss ichnicht, und dass bei deiner if abfrage mit dem @ hab ich auch nie gehört, bin mir aber nich sicher obs falsch is, wie gesagt, read the sig ;)
 
andere if-anweisung?

Könntest du mir ein Beispiel geben einer anderen IF-Anweisung???
Danke...
 
achja, das könnte auch das problem sein, ganz am anfang der haupt-datei (fals sie includet wird), aber wirklich ganz oben, vor allem anderen <? ob_start(); ?> anfügen, und ganz ans ende <? ob_end_flush(); ?>

und bei der if- anweisung bin ich nicht sicher, aber lass mal die @'s weg, sonst sihest du ja die fehler garnicht die von dem teil mit erzeugt werden (ist aber wichtig weil das cookie auch nur erstellt wird wenn das fehlerfrei abläuft), und machs auch lieber so:
PHP:
....
$query = "SELECT * FROM user WHERE user='$benutzer' AND pass = '$passwort'"; 
$res = mysql_num_rows(mysql_query($query), 0);
//und jetzt:
if ($res>0) {
//blabla
}
 
Es erscheint immer noch der gleiche Fehler!! Kann es am Apache oder PHP.exe liegen das es nicht funktioniert??
(Fehlermeldung : php.exe - Fehler in Anwendung [popup fenster])
 
Kann es sein das du es local testest ? ich hatte da auch massen haft probs und wenn man es im inet testet geht es...

:-)




setcookie("guestbook",$benutzer, 0 );

so hält sich der cookie nur bis man den browser wieder schliest...
 
hmm funzt immer noch nicht

leider geht es auch online nicht ;(
muss vielleicht nochmal hinter die Bücher.. aber danke allen die mier helfen wollten :D
schönen abend noch...
 
Zurück