Hej Alle.
Jeg har desperat brug hjælp
Login systemet til den hjemmeside jeg er i gang med at stoppet med at virke.
Eller rettere, så er det som om session_start(); er holdt op med at virke.
Mit login script ser således ud:
- <?php
- session_start();
-
- include("db.php");
-
- $bruger = mysql_real_escape_string($_POST["brugernavn"]);
- $pass = mysql_real_escape_string($_POST["password"]);
- $error = "";
-
- $userQuery = mysql_query("SELECT id,brugernavn,kode, admin FROM brugere WHERE brugernavn='$bruger'");
-
- if(mysql_num_rows($userQuery) != 1)
- {
- $error .= "Brugeren eksisterer ikke.<br>";
- }
- else
- {
- $userArray = mysql_fetch_array($userQuery);
-
- if($userArray["kode"] != MD5($pass))
- {
- $error .= "Password og brugernavn passer ikke sammen.<br>";
- }
- }
-
- if($error != "")
- {
- echo $error . "<a href=\"javascript:history.back(-1);\">Tilbage</a>";
- }
- else
- {
- $_SESSION["logged_in"] = 1;
- $_SESSION["user_id"] = $userArray["id"];
- $_SESSION["username"] = $bruger;
- $_SESSION["admin"] = $userArray["admin"];
- echo '<script> document.location="http://www.borup-soepark.dk"; </script>';
- }
- ?>
Hvis jeg ændre det nederste til dette:
- <?php
- session_start();
-
- include("db.php");
-
- $bruger = mysql_real_escape_string($_POST["brugernavn"]);
- $pass = mysql_real_escape_string($_POST["password"]);
- $error = "";
-
- $userQuery = mysql_query("SELECT id,brugernavn,kode, admin FROM brugere WHERE brugernavn='$bruger'");
-
- if(mysql_num_rows($userQuery) != 1)
- {
- $error .= "Brugeren eksisterer ikke.<br>";
- }
- else
- {
- $userArray = mysql_fetch_array($userQuery);
-
- if($userArray["kode"] != MD5($pass))
- {
- $error .= "Password og brugernavn passer ikke sammen.<br>";
- }
- }
-
- if($error != "")
- {
- echo $error . "<a href=\"javascript:history.back(-1);\">Tilbage</a>";
- }
- else
- {
- $_SESSION["logged_in"] = 1;
- $_SESSION["user_id"] = $userArray["id"];
- $_SESSION["username"] = $bruger;
- $_SESSION["admin"] = $userArray["admin"];
-
- }
-
- if($_SESSION["logged_in"] == 1){
-
-
- print "login virker";
-
- }
- else{
-
- echo "login virker ikke";
-
- }
-
- ?>
Så returnere den "login virker". Det tyder jo på at selve login koden, rent faktisk gemmer de forskellige informationer i sessionen.
Når så index siden bliver åbnet, så køre den denne kode bla:
- <?php
-
- $bruger = $_SESSION["username"];
- if($_SESSION["logged_in"] == 0){
-
-
- print "Log in:</br>
- <form action='login.php' method='post'>
- Indtast brugernavn:
- <br />
- <input type='text' name='brugernavn'>
- <br />
- Indtast kode:
- <br />
- <input type='password' name='password'>
- <br />
- <input type='submit' value='Log in'>
- </form>";
- }
-
- else if($_SESSION["admin"] == 1){
-
- echo "Hej bolig nr. $bruger<br><br>
- <a href='minside.php'>Min side</a><br>
- <a href='nyhed.php'>Skriv nyhed til forsiden</a>
- <br><a href='logout.php'>Log ud</a>";
- }
-
- else {
- echo "Hej bolig nr. $bruger<br><br>
- <a href='minside.php'>Min side</a>
- <br><a href='logout.php'>Log ud</a>";
- }
- ?>
Førhen, returnerede den, den sidste del, altså; "Hej bolig nr." osv. Men nu returnere den falsk, altså den skriver formen til at logge ind, som ses øverst i denne kode. Jeg har en session_start øverst i dokumentet, som der hele tiden har været.
Fejlen er opstået efter jeg har opdateret på min database, men den henter og bringer fint alle de informationer jeg beder den om, så jeg forstår virkelig ikke hvordan og hvorfor det er gået udover mit login system.
Jeg håber virkelig der er noget der kan hjælpe
På forhånd tak!