Habs geändert, allerdings mit gleichem Ergebnis.
Anfängerfehler bei Session/Cookie ?!
Einklappen
X
-
wenn das cookie nicht vorhanden ist, dann kommt man auf das anmeldeformular.
die daten werden an anmeldung geschickt, ausgewertet ... aber keine session-variablen gesetzt. dann können sie auf varcheck auch nicht zu sehen sein.
PHP-Code:setcookie("BerichteCookie", $cookievalue, time()+30*24*60*60);
$_SESSION["login"] = $_POST[login];
$_SESSION["passwort"] = $_POST[passwort];
Zuletzt geändert von graf; 20.03.2003, 17:08.
Kommentar
-
du musst sie halt erstmal setzen, wo ist grundsätzlich egal ....
und bei dir wurde nur nach dem cookie gefragt und dann auf die nächste seite ...
die nächste seite sollte dann ne sessionvariable ausgeben?
dann muss sie aber auch dann gesetzt werden werden, wenn das cookie da ist, weil:
$_SESSION[...] != $_COOKIE[..]
Kommentar
-
Also ich habe da immer noch Probleme, ich habe die Änderungen die Du vorgeschlagen hast eingebaut und es klappt immer noch nicht. Auf der Anmeldung.php (vorher HTML) kann ich mir die $_SESSION["login"] und die $_SESSION["passwort"] ausgeben lassen. Wenn das Cookie existiert sollen diese Variablen ja gefüllt werden, wenn nicht dann kommt die Anmeldemaske. Auf der Seite sind die Variablen gefüllt, das hat aber auch schon vorher geklappt. wenn ich jetzt weiterleite auf varcheck, dann können sie aber plötzlich nicht mehr ausgegeben werden.
Gruß
timsen
Kommentar
-
-
Hallo graf,
ich hab das ganze neu programmiert und das haut auch geklappt.
Jetzt habe ich aber ein anderes Problem, ich hab versucht den Trick mit den PW verschlüsseln aus diesem Forum bei mir einzubauen. Ich bekomme jetzt immer ein Parse Error (Zeile 89) und finde den Fehler nicht.
Da Zeile 89 meine letzte ist und das eigentlich nicht sein kann, hab ich mal den ganzen Code gepostet. Alles nach Zeile 50 müßte so stimmen, da ich es nicht verändert habe und es vorher funktioniert hat.
PHP-Code:<?php
session_start();
//Cookie auslesen
if(isset($BerichteCookie)) {
$data = $HTTP_COOKIE_VARS['BerichteCookie'];
$data = explode("|",$data);
//Variablen zur Hashgenerierung
$secret = "lilafitscheriegruenmitgelbblauenlalatupfen";
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$login = $data[0];
$hashdat = $data[1];
$name = "login.txt";
$datatxt = file($name);
//Vergleich des Hash aus dem Cookie mit dem Servergenerierten Hash
foreach ($datatxt as $line)
{
$ar = explode("|", trim($line));
$logindat = $ar[0];
$passwortdat = $ar[1];
$hash = md5($login.$passwortdat.$user_agent.$secret);
if ($login == $logindat && $hash == $hashdat) {
$passwort = passwortdat;
$hash = md5($login.$passwort.$user_agent.$secret);
$cookievalue = $login . '|' . $hash;
setcookie("BerichteCookie", $cookievalue, time()+30*24*60*60);
// Logeintrag schreiben
$fp = fopen("log.txt","a");
if ($fp) {
$zeitstempel = date("d.m.y \u\m H:i:s");
$ipadresse = $HTTP_SERVER_VARS ['REMOTE_ADDR'];
flock($fp,2);
$nl = chr(13) . chr(10);
fputs ($fp,"$zeitstempel|$ipadresse|$login|$nl");
flock($fp,3);
fclose($fp);
} else {
echo "Logdatei konnte nicht gespeichert werden.";
}
header('Location: cookietest.php');
exit();
}
}
$name = "login.txt";
$data = file($name);
foreach ($data as $line)
{
$ar = explode("|", trim($line));
$logindat = $ar[0];
$passwortdat = $ar[1];
//Vergleich der Logindaten
if ($login == $logindat && $passwort == $passwortdat) {
$hash = md5($login.$passwort.$user_agent.$secret);
$cookievalue = $login . '|' . $hash;
setcookie("BerichteCookie", $cookievalue, time()+30*24*60*60);
// Logeintrag schreiben
$fp = fopen("log.txt","a");
if ($fp) {
$zeitstempel = date("d.m.y \u\m H:i:s");
$ipadresse = $HTTP_SERVER_VARS ['REMOTE_ADDR'];
flock($fp,2);
$nl = chr(13) . chr(10);
fputs ($fp,"$zeitstempel|$ipadresse|$login|$nl");
flock($fp,3);
fclose($fp);
} else {
echo "Logdatei konnte nicht gespeichert werden.";
}
header('Location: cookietest.php');
exit();
}
}
header('Location: anmeldung.html?fail=true');
exit();
?>
Kommentar
Kommentar