Hey allesammen, som sagt er jeg ikk stor bruger af PHP, men fatter bare ikk lige at det her ikk vil virke, for synes jeg har gjort det tusinde gange før.
Jeg er ved at lave et lille simpelt (!! SIMPELT !!) login system. Havde forestillet mig at det skulle fungere så nemt at når man logger på vil en session ved navn $_SESSION["cs_login"] = "on";. Altså at den er "on" når man er logget ind.
Mit problem er bare at efter man er logget ind, vil den ikk gemme min session. Når siden går fra <form> siden (login.php) til mysql_query siden (login_pass.php), fungere den fint, men så snart jeg skifter væk fra min login_pass.php forsvinder mine sessions, og den husker hverken ID, username, nickname, eller noget som helst andet.
Kig lige på koden engang, for er pænt træt af det her..
login_pass.php
include("db.php");
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];
$login = mysql_query("SELECT * FROM users WHERE brugernavn = '$brugernavn'");
$logindata = mysql_fetch_array($login);
if($password == $logindata["password"]) {
$_SESSION["cs_login"] = "on";
$_SESSION["cs_id"] = $logindata["id"];
$_SESSION["cs_brugernavn"] = $logindata["brugernavn"];
$_SESSION["cs_nickname"] = $logindata["nickname"];
echo "You have been logged in with success as user: <b>" . $_SESSION["cs_brugernavn"] . "</b>";
}
else
{
echo "You have failed to be logged in. Please try again!";
}
Hvor jeg har min:
<?php
if($_SESSION["cs_login"] == "on"){
include("profil_menu.php");
}
else
{
include("login_menu.php");
}
?>
Ved ikk om det er dårligt forklaret, men altså:
Når jeg logger ind, finder den fint nok ud af om brugeren findes eller ej.
Hvis ikk skriver den bare skrid hjem, hvis den gør skriver den fint linjen:
echo "You have been logged in with success as user: <b>" . $_SESSION["cs_brugernavn"] . "</b>";
. Der kan den sagtens finde min $_SESSION["cs_brugernavn"]. Men så snart jeg linker til et andet sted, kan den ikke finde mine sessions frem igen. f. eks har jeg også en profil side hvor de er bestemt efter id. Altså:
<a href=profile.php?id=<?php echo $_SESSION["cs_id"]; ?>>My Profile</a>
Den fatter den også i starten, men så snart jeg linker væk skriver den bare i URL line:
http://localhost/sites/profile.php?id= . Altså uden tal. Hvor den før skrev tallet efter "=" tegnet..
Jeg skriver dårligt når jeg er vred, og i må satme vide hvordan det er at sidde og glo efter en skide fejl i et simpelt script som det her, og jeg er ved at brænde totalt af!
Plz. Hjælp nubben..