Avatar billede TOAAC Nybegynder
03. september 2012 - 17:14 Der er 9 kommentarer og
1 løsning

Login problemer

Hej alle sammen! Jeg har et login til min side, men der er noget galt. Den ser ud til at den får checket på om brugernavnet og password'et er rigtigt eller forkert, fordi den udskriver min meddeles min de er forkerte, men hvis de er rigtige redirector den ikke til hverken bruger siden eller Admin siden... Nogen der kan se fejlen?


if(isset($_POST['login'])){   
$brugernavn = $_POST["brugernavn"];
$password = sha1($_POST['password']);

$resultat = mysql_query("SELECT * FROM brugerroller
INNER JOIN bruger ON fk_brugerid = bruger.brugerid
INNER JOIN roller ON fk_rolleid = roller.rolleid
WHERE brugernavn='$brugernavn' AND password='$password'");
                   
if(mysql_num_rows($resultat) == 0){
$msg = "<div style='color: #F00'>Forkert brugernavn og password</div>";
}else{
$raekke = mysql_fetch_assoc($resultat);                            $_SESSION['brugerid']=$raekke['brugerid'];
$_SESSION['rolleid'] =$raekke['rolleid'];
$_SESSION['brugernavn'] = $brugernavn;

if($raekke['rolleid'] == 1){
$_SESSION['rolleid'] = 1;
header('location: admin/admin.php', true);
}
if($raekke['rolleid'] == 2){
$_SESSION['rolleid'] = 2;
header('location: bruger/index.php', true);
}
}
}
Avatar billede MTNielsen Nybegynder
03. september 2012 - 23:24 #1
Jeg kan se én fejl, det er nok bare ikke den du tænker på.

$brugernavn = $_POST["brugernavn"];

Den kommer nok til at bide dig bagi en eller anden dag. Jeg vil foreslå du læser op på SQL injections og hvordan man forebygger dem.

Mht din SQL query, så er det svært at sige hvad der er galt, med mindre du giver en idé om hvordan dine tabeller er opbygget, men et gæt kunne være:

WHERE bruger.brugernavn='$brugernavn' AND bruger.password='$password'"
Avatar billede MTNielsen Nybegynder
03. september 2012 - 23:26 #2
Desuden redirecter den ikke, fordi du ikke håndterer fejl. Den redirecter kun hvis man er rolle 1 eller 2. Man er ingen af delene hvis den fejler.
Avatar billede TOAAC Nybegynder
04. september 2012 - 09:35 #3
Det har intet at med min SQL at gøre, fordi den checker. Det er mere ligesom at den ikke vil redirecte, og den skal jo ikke redirecte hvis den fejler?
Den skal udskrive en fejl hvis ikke at brugernavet eller password'et passer som den også gør. Men når at de er rigtige er det ligesom om at siden bare refresher?
Avatar billede TOAAC Nybegynder
04. september 2012 - 09:37 #4
Desuden, siden virker fint på localhost, men lige så snart jeg smed den op på mit domæne/server, så virkede det lige pludselig ikke?
Og jeg har husket at ændre DB Connect...
Avatar billede Michael2650 Nybegynder
04. september 2012 - 12:29 #5
Halløjsa!

Jeg kan se du har et par fejl!

header('location: admin/admin.php', true);

Jeg har søgt lidt på hvorfor du har true bag på, men jeg kan ikke finde svaret?

Nå men. Hvis jeg var dig ville jeg gøre følgende :

Lige efter din session_start(), skal du skrive ob_start(). Dette er for at undgå, der allerede er sendt en buffer afsted til modtager.

Ret dine linjer til :

if($raekke['rolleid'] == 1){
$_SESSION['rolleid'] = 1;
header("Location: admin/admin.php");
exit();
}
if($raekke['rolleid'] == 2){
$_SESSION['rolleid'] = 2;
header("Location: bruger/index.php");
exit();
}

Forsøg nu og se, om der ikke sker noget :)
Avatar billede TOAAC Nybegynder
07. september 2012 - 07:56 #6
tja, altså min sql er der ikke noget galt med, da jeg kan se at den får tjekket på hvilket brugernavn og password det er, og om det er rigtigt eller forkert. Og med hensyn til ob_start() så har jeg haft den på hele tiden. Og jeg har faktisk også prøvet at bruge exit() før, som desværre heller ikke virker. :/
Avatar billede TOAAC Nybegynder
07. september 2012 - 08:00 #7
Jeg tror der er noget galt med header("location: ") da det virker som om den bare refresher siden. :(
Det mærkelige ved det hele er, at når den ligger på localhost så virker det helt fint, men da jeg uploade til server skete der dette? Og det er altså helt samme kode, bortset fra db_connect self. :)
Avatar billede Michael2650 Nybegynder
11. september 2012 - 10:41 #8
Og du forsøger med det jeg skrev (altså header("Location: bruger/index.php"); ) ?

Hvilken sti ligger din login på ? :)

Tjek om der bliver sat en session eller ej. Kan være du bliver smidt tilbage, fordi den side du forsøger at komme over på, ikke mener du er logget ind.
Avatar billede TOAAC Nybegynder
22. oktober 2012 - 10:58 #9
Alle disse ting er i orden, og tripel tjekket. Jeg har søgt lidt på det, og tror i at fejlen eventuelt kunne ligge på serveren? :)
Avatar billede TOAAC Nybegynder
13. november 2012 - 08:47 #10
fandt selv ud af det. ;)
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

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