Avatar billede exposure Nybegynder
04. marts 2003 - 16:17 Der er 9 kommentarer og
1 løsning

Authenticate

Hvad er der galt her?

index.php:
<?
include('connect.php');
include('authenticate.php');


login_validate($PHP_AUTH_USER, $PHP_AUTH_PW);

?>

authenticate.php:
<?

function authenticate($user, $pass)
{
        header('WWW-Authenticate: Basic realm=""');
        header('HTTP/1.0 401 Unauthorized');
    exit;
}

function login_validate($user, $pass)
{
    $sql = "SELECT * FROM user WHERE name='$user' AND pass='$pass'";
    $result = mysql_query($sql);

    $row = mysql_fetch_array($result);
    $id = $row['user_id'];

        if($id)
                { }
        elseif (($user ==  '') or ($pass ==  ''))
                { authenticate($user, $pass); }
        else
                { authenticate($user, $pass); }

}
?>
Avatar billede swaxi Nybegynder
04. marts 2003 - 16:20 #1
tjah ... det kan du vel egentlig bedre sige ... hvad sker der, som ikke skal ske ?
umiddelbart virker det lidt sjusket at have to variabler, som du ikke bruger i funktionen authenticate()
Avatar billede exposure Nybegynder
04. marts 2003 - 16:25 #2
Den går aldrig igennem. Spørg hele tiden efter user og pass. Også selvom jeg bare skriver:
if($user) { }
Avatar billede avlund Nybegynder
04. marts 2003 - 16:33 #3
Prøv at lave en echo mysql_num_rows( $result ) for at se om du overhovedet får et resultat ud af dit kald.
Avatar billede mufoxe Nybegynder
04. marts 2003 - 16:35 #4
Smid en or die(mysql_error) på mysql_query og se, om MySQL returnerer en fejl.
Avatar billede swaxi Nybegynder
04. marts 2003 - 16:42 #5
prøv at smide følgende linie ind som første linie i funktionen login_validate()
    echo 'user='.$user.' pass='.$pass;
og se hvad der sker
Avatar billede exposure Nybegynder
04. marts 2003 - 16:42 #6
mysql returner ikke noget, men hvis jeg ændre $user og $pass, i $sql, til det jeg skrive i login, så er der et resultat.
Dvs at den aldrig får noget input i login_validate().

Det skal lige siges at jeg køre Apache 2.0.44 på en winxp.
Avatar billede avlund Nybegynder
04. marts 2003 - 16:57 #7
Dumt spørgsmål, men dine inputfelter er rigtigt navngivne ( value="user" og value="pass" ), right?
Avatar billede avlund Nybegynder
04. marts 2003 - 16:57 #8
Undskyld, name, ikke value.
Avatar billede exposure Nybegynder
04. marts 2003 - 17:31 #9
Hvis jeg ændre ....WHERE user='username' AND pass='1234', så køre den igennem. Det har intet at gøre med $sql. Jeg tror det er $PHP_AUTH_USER, $PHP_AUTH_PW.
Avatar billede exposure Nybegynder
04. marts 2003 - 21:25 #10
Jeg fant selv ud af det. Ved ikke rigtig hvad forskellen er, men det virker.
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