Avatar billede tanzaweb Nybegynder
12. april 2004 - 09:54 Der er 5 kommentarer og
1 løsning

login fejl i session script

hej
jeg har et login script som laver en fejl
Jeg har logget ud, men nu laver den en fejl og læser et brugernavn lige meget om jeg harstarter browseren op på en anden maskine.

Jeg kan ikke se hvor fejlen er

<?php
include_once ("dacon.php");

//Tilføj slashes til brugernavn, og lav en md5 checksum på passwordet
$_POST['user'] = addslashes($_POST['user']);


$result_ses = mysql_query("SELECT count(user_id) FROM users WHERE password='$_POST[pass]' AND username='$_POST[user]'") or die("Kunne ikke query bruger databasen.");
$num = mysql_result($result_ses, 0);

if(!$num) {

//Hvis querien ikke retunered noget
//så vis login formularen
include_once ("../head.php");
echo "<h3>Bruger login</h3>
<form action='$_SERVER[PHP_SELF]' method='post'>
Username: <input type='text' name='user'><br />
Password: <input type='password' name='pass'><br />
<br />
<input type='submit' value='Login'>
</form>";
}
else{

//Start  login session
session_start();

//Vi har allerede tilføjet slashes og ordnet passwordet
$_SESSION['user'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];

//alt under dene linje vil blive vist
//til brugeren som er blevet autoriseret
//her kan bruges både tekst og redirect.

include_once ("dacon.php");
$result_user = mysql_query("SELECT * FROM users WHERE username='$_POST[user]'") or die("Kunne ikke query bruger databasen.");
$num_2 = mysql_fetch_array($result_user);
include_once ("../head.php");
echo "<h1>Velkommen du er nu logget ind.</h1>";
echo "Gå til din Administrations side for at styrre dine muligheder<br />
        <a href='index.php?id=" . $num_2[user_id] . "'>Styr din side</a>";

}
include_once ("footer.php");
?>
i ovenstående script skal de redirectes til hvis man ikke har username eller password i sessionen, og her skal den jo så gå til login formen, men istedet går den til delen hvor den siger
$result_user = mysql_query("SELECT * FROM users WHERE username='$_POST[user]'") or die("Kunne ikke query bruger databasen.");
$num_2 = mysql_fetch_array($result_user);
include_once ("../head.php");
echo "<h1>Velkommen du er nu logget ind.</h1>";
echo "Gå til din Administrations side for at styrre dine muligheder<br />
        <a href='index.php?id=" . $num_2[user_id] . "'>Styr din side</a>";

er der nogen der kan se hvorfor, den indsætter endda $num_2[user_id] selv om der ikke er noget ligende på index siden

Hjælp
??????????????????????????
Avatar billede sukos Juniormester
12. april 2004 - 10:30 #1
Et lidt rodet script, synes jeg, men prøv at lægge

ini_set('error_reporting', "E_ALL");

i toppen af sciptet. Så vil du få alle fejlmeddelser at se.
Avatar billede tanzaweb Nybegynder
12. april 2004 - 10:39 #2
den viser ingen fejl meddelse

men det er jo også som om at den bringer en session videre selv om den ikke har været på andre sider end at jeg forsøger at åbne index.php, hvor den når jeg ikke er logget ind så skal føre mig til login siden.

Som den jo også gør bare til den forkerte del af loginsiden?

Virkede indtil igår hvor jeg lavede noget på en anden side, og da jeg så loggede ud så var det den lavede denne fejl at gå ti den forkerte del?
Avatar billede tanzaweb Nybegynder
12. april 2004 - 10:46 #3
jeg kan se at $num indeholder 1 hvis jeg laver en echo på den men jeg kan ikke se hvor den får den fra, dan session ikke skulle indholde noget, da den sender os til login.php fra auth.php hvis session ikke eksistere

Fra denne del af auth.php


//Start login sessionen
session_start();

if (!$_SESSION['user'] || !$_SESSION['pass']) {

//Hvad skal der gøres hvis bruger ike har logget ind.
//Redirect dem til login siden
header('Location: login.php');
die();

}
else
{
Avatar billede sukos Juniormester
12. april 2004 - 10:47 #4
Jeg ville lave det på denne måde:

<?php
session_start();
if() der er afsendt en post til login, tjek at det er korrekt, og sæt session og en header til filen selv.
slut if() post

I output:

if()
Spørge om en session er sat, hvis ikke vis en form til login
}else{
jow, den er sat, så vis relevant indhold
}


evt. vælge at submitte til en anden fil
Avatar billede sukos Juniormester
12. april 2004 - 10:49 #5
æhh, du kører jo din query ved hver load af siden?
Avatar billede tanzaweb Nybegynder
12. april 2004 - 10:54 #6
problem løst fejl i database (tomme felter) så det var derfor den blev ved med at indsætte en række i count
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester