Hi Woitaschik!
Habe deine Rat befolgt. Die Ausgabe lautet wie erwartet 1. Habe dann noch die Session-Variable an $a übergeben und die Abfrage if(!$a) ausgeführt mit der Ausgabe 'FALSE' bei falsch und 'TRUE' bei wahr, Ausgabe 'TRUE'.
Die Variable wird also korrekt übergeben.
Hier mein Login-Skript:
PHP-Code:
<?php
$logintime=time();
//Session-ID erzeugen (rand()<-Zufallszahl, uniqid()<-ID erzeugen, md5()<-ID verschlüsseln
$token1=md5(uniqid(rand(),true));
$token2=md5(uniqid(rand(),true));
$token3=md5(uniqid(rand(),true));
$token4=md5(uniqid(rand(),true));
$zufall1=$token1.'-'.$token2;
$zufall1=md5($zufall1);
$zufall2=$token3.'-'.$token4;
$zufall2=md5($zufall2);
$sessiid=md5($zufall2.$zufall1); //eigentliche Session-ID erzeugen
session_id($sessiid); //Session-ID setzen
session_start(); //Session mit Session-ID starten
// diverse Session-Variablen setzen und belegen
$_SESSION['zeit']=$logintime; //Startzeit in Session-Variable "zeit" speichern
$_SESSION['eingelogt']=false; //Session-Variable "eingelogt" auf false setzen
$_SESSION['s_id']=session_id(); //Session-Variable "s_id" mit der Session-ID belegen
$s_name=session_name();
$s_id=session_id();
$benutzer=$HTTP_POST_VARS['benutzername']; //Benutzername in Variable schreiben
$pass=$HTTP_POST_VARS['passwort']; //Passwort in Variable schreiben
$status=0; //Berechtigung auf falsch setzen
$hostname=$_SERVER['HTTP_HOST']; //Hostname ermitteln
$pfad=dirname($_SERVER['PHP_SELF']); //Hostpfand ermitteln
$userdatei='user.csv';
$bol=file_exists($userdatei); //Existiert die Datei 'user.csv'?
if($bol) {
$datei=fopen($userdatei,"r"); //Wenn ja, dann öffnen zum lesen
if($datei) { //Wurde die Datei geöffnet?
$dateigroesse=filesize($userdatei); //Dateigröße ermitteln
while(($data=fgetcsv($datei,$dateigroesse,";"))!=false) { //Zeile für Zeile einlesen
if($benutzer==$data[0]) { //Stimmt der Benutzername mit einem Datensatz überein?
$status=1; //Wenn ja, dann Berechtigung auf richtig setzen
break; //Schleife beenden
}
}
fclose($datei); //Datei schließen
}
}
if($status==1) { //Ist die Berechtigung richtig?
if($data[0]==$benutzer) { //Nochmals Benutzername prüfen
if($data[1]==$pass) { //Stimmt Passwort mit Datensatz überein?
$_SESSION['eingelogt']=true;
$test=file_exists('logins.txt');
if($test) {
$offen=fopen('logins.txt','r');
if($offen) {
$groesse=filesize('logins.txt');
$logins=fread($offen,$groesse);
fclose($offen);
}
}
$logins++;
$test=file_exists('logins.txt');
if($test) {
$offen=fopen('logins.txt','w');
if($offen) {
$output=fwrite($offen,$logins);
fclose($offen);
}
}
include('sicherheit.php'); //Session-Sicherheit erzeugen
$_SESSION['codezeit']=$zeitpunkt;
$_SESSION['code']=$code;
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/start.php?'.$s_name.'='.$s_id); //Wenn ja, dann zur Homepage weiterleiten
exit;
}
else {
session_unset();
session_destroy();
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php'); //Wenn nicht, dann zurück?
exit;
}
}
else {
session_unset();
session_destroy();
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php'); //Wenn nicht dann zurück?
exit;
}
}
else {
session_unset();
session_destroy();
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php'); //Wenn nicht, dann zurück?
exit;
}
?>
und das Skript testlogin.php
PHP-Code:
<?php
session_start();
$hostname=$_SERVER['HTTP_HOST'];
$pfad=dirname($_SERVER['PHP_SELF']);
$s_name=session_name();
$s_id=session_id();
if(strpos($pfad,'hp/')>0) {
$pfad=substr($pfad,0,(strpos($pfad,'hp/')+2));
}
if(!isset($_SESSION['eingelogt']) || !$_SESSION['eingelogt']) {
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php');
exit;
}
else {
if($_SESSION['codezeit']<$_SESSION['zeit'] or $_SESSION['codezeit']>time()) {
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php');
exit;
}
else {
$bol=file_exists('sicherheit.csv');
if($bol) {
$datei=fopen('sicherheit.csv','r');
if($datei) {
$dateigroesse=filesize('sicherheit.csv');
$status=false;
while(($data=fgetcsv($datei,$dateigroesse,';'))!=false) {
if($_SESSION['codezeit']==$data[0]) {
if($_SESSION['code']==$data[1]) {
$status=true;
break;
}
}
}
fclose($datei);
}
}
}
}
if($status==false) {
header('Location: http://'.$hostname.($pfad=='/'?'':$pfad).'/main.php');
exit;
}
?>
Wo liegt jetzt der Fehler?
[mod: benutze bitte die code-Tags zur quellcode-Formatierung]
.