Moin!
Hallo,
Kann es sein das SESSIONs in verbindung mit ajax nicht funktionieren? Hier ein beispiel bzw mein problem:
Inder index.php lade ich bei einen klick auf login via jquery das php skript in ein div rein. soweit funktioniert das ganze auch wen das skript bei erfolgreichen login aber die seite neu läd wird die SESSION nicht übernommen. Woran liegt das?
das js:
$(d).load("login.php",{user: uname, passwort: pass});
Das PHP Script:
...startet nirgendwo für uns sichtbar eine Session.
<?php include("connect.php");?>
...außer vielleicht hier drinnen, das sieht aber eher wie das Skript für die DB-Verbindung aus.
Es ist außerdem nicht notwendig bzw. sogar schädlich, wenn du das Include so einzeln in PHP-Tags einklammerst, denn die Leerzeile zwischen dieser PHP-Insel und der nächsten wird als Text an den Browser ausgegeben.
Das bedeutet, du kannst ab hier keine Funktionen mehr benutzen, die die HTTP-Header verändert wollen. session_start() will das aber tun.
<?php
$user = strtolower($_POST["user"]);
$passwort = strtolower($_POST["passwort"]);$control = 0;
$abfrage = "SELECT * FROM user WHERE name = '$user' AND pass = '$passwort'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$control++;
}if($control != 0) {
$_SESSION["username"] = $user;
?>
Vielen Dank sie werde Weiter geleitet
<meta http-equiv="refresh" content="3; URL=index.php" />
<?php } else { ?>
Benutzername oder Passwort ist Falsch
<?php } ?>
Ich würde ansonsten noch viel zu deinem Codestil schreiben wollen, der ist nämlich in keiner Weise gut, aber dazu habe ich im Moment keine Zeit.
Nur als Stichworte:
- Klammersetzung in Kontrollstrukturen
- Vernünftigere SQL-Querys
- Escaping, Kontextbehandlung
- Sven Rautenberg