UserLogin Abfrage funktioniert nicht!

Profundi

Mitglied
Hallo Tutorials.de Gemeinde!

Und wieder steh ich vor einer Hürde an der ich nicht vorbei komme!

Ich habe 3 Dateien:
  • Index.php
  • include.php
  • checkuser.php

Nun möchte ich folgendes:

Per Include lade ich die Checkuser.php in die Seiten ein in denen ich möchte dass sie vor dem Gast-User sicher sind! Das Login verfahren ist ebenfalls mit Cookies machbar! Checkuser ist da um abzufragen ob eine Session vorhanden ist! Falls nicht soll die Seite checken ob Cookies vorhanden sind! Falls nicht soll die Seite auf Index.php?badrequest=nologin umleiten in der ich die Seite include.php habe! In der Seite include.php habe ich folgender Code:

PHP:
<?php
if($_GET["badrequest"] == "nologin"){
	echo "Bitte Loggen Sie sich ein!";		
} 
?>

Und in der Checkuser.php habe ich folgender Code:
PHP:
<?php 
session_start (); 
//Benutzerangaben Initalisieren
$user_id = $_SESSION["user_id"];
$user_nickname = $_SESSION["user_nickname"];
$user_nachname = $_SESSION["user_nachname"];
$user_vorname = $_SESSION["user_vorname"];
$user_email = $_SESSION["user_email"];

/*
--Abfragen ob die Session gesetzt wurde?
--Falls nicht, wird nachgefragt ob Cookies
--vorhanden sind! Wenn ja werden die Cookies
--ausgelesen und der Wert in die Variabeln
--gefüllt!
*/

//Ist die User ID vorhanden?
if(!$user_id){
	$user_id = $_COOKIE["link2itid"];
} else if(!isset($_COOKIE["link2itid"])){
	header ("Location: index.php?badrequest=nologin");
}
//Ist der Usernickname vorhanden?
if(!$user_nickname){
	$user_nickname = $_COOKIE["link2itnick"];
} else if(!isset($_COOKIE["link2itnick"])){
	header ("Location: index.php?badrequest=nologin");
}
//Ist das Passwort vorhanden?
if(!$user_pwd){
	$user_pwd = $_COOKIE["link2itpwd"];
} else if(!isset($_COOKIE["link2itpwd"])){
	header ("Location: index.php?badrequest=nologin");
}
//Ist die E-Mail Adresse vorhanden?
if(!$user_email){
	$user_email = $_COOKIE["link2itemail"];
} else if(!isset($_COOKIE["link2itemail"])){
	header ("Location: index.php?badrequest=nologin");
}
//Ist der Vorname vorhanden?
if(!$user_vorname){
	$user_vorname = $_COOKIE["link2itvname"];
} else if(!isset($_COOKIE["link2itvname"])){
	header ("Location: index.php?badrequest=nologin");
}
//Ist der Nachname vorhanden?
if(!$user_nachname){
	$user_nachname = $_COOKIE["link2itname"];
} else if(!isset($_COOKIE["link2itname"])){
	header ("Location: index.php?badrequest=nologin");
}
?>

Aber es funktioniert nicht :( was mache ich falsch?

Ich danke im voraus!
 
Es wäre einfacher das Problem zu erkennen wenn du das nicht Funktionieren ein wenig deutlicher erklären könntest.
LG Nino
 
Sollte in dem jeweiligen Skript bereits vor dem includen der Checkuser.php eine Ausgabe erfolgen, wird nicht umgeleitet, weil keine Header mehr gesendet werden können.

Setze dein error_reporting() auf E_ALL , dann erhältst du sicher einen diesbezüglichen Hinweis.
 
Code:
/*
--Abfragen ob die Session gesetzt wurde?
--Falls nicht, wird nachgefragt ob Cookies
--vorhanden sind! Wenn ja werden die Cookies
--ausgelesen und der Wert in die Variabeln
--gefüllt!
*/

//Ist die User ID vorhanden?
if(!$user_id){
    $user_id = $_COOKIE["link2itid"];
} else if(!isset($_COOKIE["link2itid"])){
    header ("Location: index.php?badrequest=nologin");
}


Wenn $user_id false ist(das ist der Fall, wenn $_SESSION["user_id"] nicht existiert), wird laut diesem Code versucht, die $user_id mit dem Wert des Cookies zu Belegen.

Die Weiterleitung erfolgt nur, wenn $user_id nicht false ist, und dieser Cookie auch nicht existiert...man muss also, so wies sich der Code liest, ordentlich eingeloggt sein, damit diese Weiterleitung zum Tragen kommt.

Wie man das ausbessert, könnte man sagen, wenn man weiss, woher diese Cookies kommen und wozu sie da sind.


Was das error_reporting betrifft, man muss den Server nach Änderungen an der php.ini neu starten, damit diese Greifen...hast du das?
 
Zuletzt bearbeitet:
Am besten Poste mal noch deine include.php
Weil an sich ist bisher nix falsch an dem Quelltext (mal von der if abfrage abgesehen) also falls der header angesprochen wird dann leitet der auch um.

Aber mal ne andere frage.
Wieso schreibst dir die Cookies? Willst du einen Benutzer automatisch eingelogt lassen? weil auch wenn du das willst brauchst du da doch nicht seine mail adresse, seinen vornamen, seinen nachnamen etc.. Da reicht locker BN oder USERID und das Passwort. Und wenn das Passwort schon in ein Cookie schreibst mach es bitte wenigstens md5 verschlüsselt.
 
Zurück