dringend Hilfe, Session variabel leer??

Bjondor
Hallo, ich bins mal wieder...


ich will diesen wochenende unbedingt weitercoden, muss aber erst den fehler raushaben, hab es von meinem alten code kopiert, wo es immer funktionierte, und hier geht es plötzlich nicht??





php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
<?php session_start();
include("db_verbindung.php");
               if($_GET['aktion'] == "einloggen") {
                $r mysql_query('SELECT * FROM daten WHERE user=\''.$_POST['username'].'\' LIMIT 1');
                if(!mysql_num_rows($r))
                {
                        $logina "Der Benutzer mit dem Namen ".$_POST['username']." existiert nicht. Bitte logg dich neu ein! <a href=\"startseite.php?aktion=startseite\"><big>Zurück</big></a>";
                        $loginb "false";
                }
                else
                {
                        $daten mysql_fetch_array($r);
                        if($daten['passwort'] ==  md5($_POST['passwort']))
                        {
                                //Passwort ok einloggen
                                 $l mysql_query('SELECT * FROM daten WHERE user=\''.$_POST['username'].'\' LIMIT 1');
                                 $_SESSION['spielerdaten'] = mysql_fetch_array($l);
                                 setcookie(session_name(),session_start(),date("U") + 7200);
                                 $logina "Herzlich willkommen ".$_SESSION['spielerdaten']['user'];
                                 $loginb "true";

                         }
                        else
                        {
                                      $logina "Falsches Passwort! Bitte logg dich neu ein! <a href=\"startseite.php?aktion=startseite\"><big>Zurück</big></a>";
                                 $loginb "false";
                         }
                }
                }

if(!isset($_SESSION['spielerdaten'])){
die("<html><head><title>(W)arrior(N)ight</title></head><body bgcolor=\"E5E5E5\" alink=\"000000\" vlink=\"000000\" link=\"000000\"><br><br><br><big>Deine Session ist abgelaufen oder nicht vorhanden, bitte logge dich neu ein: <a href=\"startseite.php?aktion=startseite\">Startseite</a></big></body></html>");
} ?>






also das problem ist, jedesmal wenn man sich einloggt oder so kommt immer gleich die seite:

ihre session existiert nciht oder ist abgelaufen, bitte neu einloggen...




das kann doch nicht sein, die sessionvariabel wird richtig definiert und alles...


selbst bei falschem passwort kommt dieser text (da ja bei falschem passwort kein die() ist)

das kackt mich echt an^^


ich hab auch schon versucht, die sessionvariabel unter dem setcookie() zu definieren, doch nichts änderte sich...


ich brauche keine kritik, wie ich den code geschrieben habe oder so, nur die lösung des problems, das es sehr wichtig ist und ich nach meiner art code, die mir noch keine nachteile gezeigt hat!^^



vielen dank schonmal!
Chris Hunter
Zitat:
Original von Bjondor
ich brauche keine kritik, wie ich den code geschrieben habe oder so, nur die lösung des problems, das es sehr wichtig ist und ich nach meiner art code, die mir noch keine nachteile gezeigt hat!^^


Kein Kommentar - Der Nachteil zeigt sich sicherlich später, wenn der code groß genug ist.
und dann ist das dein problem :-D isses jetzt schon :-P Es gibt gewise grundsätze die man in der sytax einzuhalten hat. Keine hat Lust sich in deine Art Syntax einzulesen. Aber egal. Muss ich hier nicht, da du geschrieben hast des es auf einem anderen system funktioniert hat. muss es ein Server- oder Clientproblem sein.

uppe mal folgende php datei und schau was unter dem punkt SESSION SUPPORT steht
php:
1:
<?php phpinfo(); ?>


PS: Bitte verwende in Zukunft den PHP Code Tag hier im FOrum für Quellcode - Danke
Bjondor
da steht enabled!





ja tut mir leid, wollte im nachhinein noch ändern, ging aber irgendwie nicht!^^
Chris Hunter
gib mal link zum script - ich teste das mal in meinem browser...
btw wo wird $logina ausgegeben?
Bjondor
$logina wird erst definiert, das werde ich nachher noch entferne, anfangs habe ich es bisschen anders gehabt...



www.nstaub.ch



dort auf Benno klicken und dann bist du dort...
Chris Hunter
gib mal folgendes mit in der fehlermeldung aus.
$logina
$loginb
print_r($_SESSION)
$r

Dann sieht man zumindest mal was in den Variabeln drin steht. Hast keine debugging Klasse?

Tip: http://phpdebug.sourceforge.net/www/index.html
Bjondor
drin
Chris Hunter
aber falsch :-D
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<?php if(!isset($_SESSION['spielerdaten']))
{
echo '
<html>
<head>
<title>(W)arrior(N)ight</title>
</head>
<body bgcolor="E5E5E5" alink="000000" vlink="000000" link="000000">
<br><br><br>
<big>
Deine Session ist abgelaufen oder nicht vorhanden, bitte logge dich neu ein: <a href="startseite.php?aktion=startseite">Startseite</a>
</big><br>';

echo $logina.'<br>';
echo $loginb.'<br>';
echo $r.'<br>';
nl2br(print_r($_SESSION));

echo '
</body>
</html>';
} ?>
Bjondor
drin, sollte diesmal richtig sein...
Chris Hunter
nö -copy n paste plz
Bjondor
ok drin
Chris Hunter
Lösung: Datenfeld in Datenbank war zu klein -> closed