Big Prolem mit Sessions

Früchtchen

Grünschnabel
hi,
habe folgenden Code:
PHP:
<?php
if ($senden=="Login"){
$eingelogt=einloggen($login,$passwort);
$eingelogt=explode (";",$eingelogt);
if ($eingelogt[0]=="ja"){
$passwort=substr(md5($passwort),0,10);
session_start();
$user=array($eingelogt[1],$passwort);
session_register("user");
include ("zufall2.php");
}else{
include ("wronglogin.php");
}}else{
session_start();
if ($user[0] && $user[1]){
$login=sess_login($user[0],$user[1]);
if ($login=="ja"){
include ("zufall2.php");
}else{
echo $login;
}
}
}
/*Funktionen Member Login*/
function einloggen($nickname,$passwort){
$nickname=strip_tags(trim(strtolower($nickname)));
$passwort=strip_tags(trim($passwort));
$passwort=md5($passwort);
$passwort=substr($passwort,0,10);
//Tabelle durchsuchen nach Nickname und Passwort testen
if ($nickname){
if ($passwort){
include ("verbindung.php");
$SQL_member=mysql_query("SELECT * FROM spieler WHERE User_Name='$nickname'");
$mem_anz=mysql_num_fields($SQL_member);
$member=mysql_fetch_array($SQL_member,MYSQL_NUM);
if ($member[1]==$nickname){
if ($member[2]==$passwort){
if ($member[5]==0){
$ausgabe="<br><div class='ta_lireueber'>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="<div style='background-color:#75baff;color:#ff0000;line-height:14pt;font-size:12pt;text-align:center;'>";
$ausgabe.="Sie haben Ihr Konto noch nicht aktiviert. Bitte ";
$ausgabe.="benutzen Sie dazu die Ihnen zugesandte e-Mail";
return ($ausgabe);
}elseif ($member[5]==2){
$ausgabe="<br><div class='ta_lireueber'>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="<div style='background-color:#75baff;color:#ff0000;line-height:14pt;font-size:12pt;text-align:center;'>";
$ausgabe.="Ihr Konto wurde gesperrt. Bitte wenden Sie Sich ";
$ausgabe.="an den Administrator";
return $ausgabe;
}elseif ($member[5]==1){
return ("ja;".$member[0]);
}
}else{
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Falsches Passwort.";
return ($ausgabe);
}
}else{
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Dieser Namen ist in meiner Datenbank nicht vorhanden";
return ($ausgabe);
}
}else{
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Sie haben kein Passwort eingegeben";
return ($ausgabe);
}}
else{
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Sie haben keinen Nickname eingegeben";
return ($ausgabe);
}
}
//Session_login
function sess_login($user_id,$passwort){
include ("verbindung.php");
$spieler=mysql_fetch_array(mysql_query("SELECT * FROM spieler WHERE Spieler_ID='$user_id'"));
if ($user_id==$spieler[0] && $passwort==$spieler[2]){
if ($spieler[5]==0){
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Sie haben Ihr Konto noch nicht aktiviert. Bitte ";
$ausgabe.="benutzen Sie dazu die Ihnen zugesandte e-Mail";
return ($ausgabe);
}elseif ($spieler[5]==2){
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
$ausgabe.="Ihr Konto wurde gesperrt. Bitte wenden Sie Sich ";
$ausgabe.="an den Administrator";
return $ausgabe;
}elseif ($spieler[5]==1){
return ("ja");
}}else{
$ausgabe="<br>";
$ausgabe.="Anmeldung Fehlgeschlagen<br>";
return ($ausgabe);
}}
?>

In oberer DAtei müsste eine Session erstellt werden, wenn der USer sich erfolgreich einloggt.
Ok soweit so gut, aber wenn ich nun die Daten angegeben habe und auf Login klicke, dann wird der USer auf obiges Form geleitet wo dann alles überprüft wird, von hier komme ich direkt in den Memberbereich, und der User sollte nun eigentlich das sich im Member bereich befindliche HAuptmenü sehen.
Trotz erfolgreichen einlogens sieht er aber nur die meldung "´Bitte logge dich ein", die von mir definiert wurde fals keine session da ist und wenn der user vieleicht versucht hatte direkt auf die seite zuzugereifen.
Ok, jetzt zeigt es nach dem Login, auf der Seite auf der eigentlich das MEmberhauptmenüseinsollte in der Browserzeile folgendes an:

http://www.seite.de/snav.php?

und hinter dem ? fehlt jetzt die Session, also gehe ich davon aus, dsas sie fehlt.
Nun bitte ich euch mir zu helfen wo die ursache liegen könnte, dass auf der folge seite eben nicht das hauptmenü angezeigt wird.

Hier mal der teil der auf der Hauptmenüseite im MEmberbereich im Code ganz oben steht:

<?php
session_start();
if(!isset($_SESSION['username'])) {
die('Bitte logge dich ein.');
}
include ("verbindung.php");
?>

anschließend folgt ganz normal der Code für die Seite.

KÖnnt ihr mir helfen?
 
Habs mir jetzt den Code nicht genau durchgelesen, weils total nübersichtlich ist.
Einrücken heisst das Zauberwort.
Aber ich seh nirgends, dass du "username" definierst, is ja logisch, dass dann bitte einloggen kommt.
 
hi,
habe da mal nen Codeschnipsel gefunden:

echo "<a href=\"index.php?".session_name()."=".session_id()."\">test</a>\n";
echo "<input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
setcookie(session_name(), session_id(), time()+3600);

Ich weiß leider nicht wie ich das umschreiben soll.
Kann mir niemand helfen?
 
Zuletzt bearbeitet:
Zurück