Avatar billede super-mann Juniormester
11. august 2006 - 17:31 Der er 5 kommentarer og
1 løsning

Fejl i login (php)

Hej

Jeg får følgende fejl når jeg forsøger, at logge på et system jeg har lavet:
Parse error: syntax error, unexpected $end in /usr/local/psa/home/vhosts/domain.dk/subdomains/test-area/httpdocs/system/users.handle.php on line 21

Filen ser således ud:

<?php
include('access/config.php');
session_start();

if ($_POST['referer'] == 'login') {
        $postbruger = $_POST['email'];
        $postpass = $_POST['password']; //For læservenligheden overføres post variablerne til normale variabler
     
        $resultat = mysql_query("SELECT Id FROM `users` WHERE email = '$postbruger' AND password = '$postpass'");//Spørger efter ID

        $number = mysql_num_rows($resultat);//Tæller antaller af resultater
        if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget in
        $_SESSION['loget_in'] = 1;
        $_SESSION['email'] = $postbruger;
        $_SESSION['password'] = $postpass; //Sætter session variablerne
        header("Location:users.godkendt.php");
   
    } else {
        header("Location: index.php?alert=wronglogin");
    }
?>

Fejlen er i de sidste par linier med sidste else
Avatar billede jakobdo Ekspert
11. august 2006 - 17:43 #1
Prøv lige dette:

<?php
include('access/config.php');
session_start();

if ($_POST['referer'] == 'login')
{
    $postbruger = mysql_real_escape_string($_POST['email']);
    $postpass = mysql_real_escape_string($_POST['password']); //For læservenligheden overføres post variablerne til normale variabler
   
    $resultat = mysql_query("SELECT Id FROM `users` WHERE email = '$postbruger' AND password = '$postpass' LIMIT 1");//Spørger efter ID

    $number = mysql_num_rows($resultat);//Tæller antaller af resultater
    if($number == 1)
    { //Hvis der kun er et resultat, bliver brugeren logget in
        $_SESSION['loget_in'] = 1;
        $_SESSION['email'] = $postbruger;
        $_SESSION['password'] = $postpass; //Sætter session variablerne
        header("Location: users.godkendt.php");
        exit();
    }
    else
    {
        header("Location: index.php?alert=wronglogin");
        exit();
    }
}
?>
Avatar billede jakobdo Ekspert
11. august 2006 - 17:43 #2
Du mangler en }til allersidst. Den har jeg tilføjet, samt mysql_real_escape_string() og LIMIT 1.
Har vi fundet en bruger, fortæller vi mysql den ikke skal kigge videre.
Avatar billede super-mann Juniormester
11. august 2006 - 17:45 #3
jakobdo -> Super, nu fungere det sku da. Kan du fortælle mig hvad der var galt, så jeg ved det til en anden gang? Og så evt. også smide et svar, således du kan få nogle point.
Avatar billede super-mann Juniormester
11. august 2006 - 17:47 #4
oki. Lyder også super med en den ekstra tilføjelse til mysql så den ikke bruger krafter på at søge videre, selv om profilen er fundet
Avatar billede jakobdo Ekspert
11. august 2006 - 18:03 #5
Fejlen var:
{
        header("Location: index.php?alert=wronglogin");
        exit();
    }
}<-------------- DU MANGLEDE DENNE...
?>

Og så får du et svar.
Avatar billede jakobdo Ekspert
15. september 2006 - 16:29 #6
Takker for point.
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