Avatar billede -xyz- Nybegynder
21. august 2003 - 18:14 Der er 15 kommentarer og
1 løsning

problem med sql

Endnu engang er der fejl i mit script... denne gang en sql fejl...

KODE:
<?PHP
ob_start();

include("sider.inc");

$Login[bruger] = $_POST[bruger];
$Login[pass] = $_POST[pass];

include("access.inc");
$query = "SELECT id, user, pass FROM login WHERE user == $Login[bruger] && pass == $Login[pass]";
$result = mysql_query("$query");
$log = mysql_fetch_array("$result");

if (($Login[bruger] == $log[user]) && ($Login[pass] == $log[pass])) {
    session_start();
        $_SESSION[status] = "login";
        $_SESSION[navn] = $_POST[bruger];
    print("    <script language='javascript'>
        location.href='$login[index]';
        </script>");
}
else
{
    session_start();
        $_SESSION[status] = "fejl";
    print("    <script language='javascript'>
        location.href='$login[form]';
        </script>");
ob_flush();       
}
?>

Fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/gb0065/login/loggerin.php on line 12
Avatar billede nomak Nybegynder
21. august 2003 - 18:15 #1
$query = "SELECT id, user, pass FROM login WHERE user='$Login[bruger]' && pass ='$Login[pass]'";
Avatar billede sone Nybegynder
21. august 2003 - 18:18 #2
Udskift && med AND:
$query = "SELECT id, user, pass FROM login WHERE user='$Login[bruger]' AND pass ='$Login[pass]'";
Avatar billede fangel Nybegynder
21. august 2003 - 18:19 #3
prøv lige at ændre til dette:

$query = "SELECT id, user, pass FROM login WHERE user == '" . $Login['bruger'] . "' && pass == '" . $Login['pass'] . "'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error();
$log = mysql_fetch_array($result);

:KOMMENTAR TIL KODESTIL:

1) includ filer bør altid hedde .php, da dette øger sikkerhed (jævnfør: http://showsource.dk/artikler/vis_artikel.php?id=1043169805)

2) når det kun omhandler variabler behøves der ikke sættes " rundt om - fx echo $var mod echo "$var";

3) key's i arrays bør altid have ' rundt om - $arr['key'] istedet for $arr[key]

4) scripts bør skrives så ooutput buffering kan undværes - det er overkill når eneste der skal ændres er at session_start skal op i toppen af filen!

Morten
Avatar billede -xyz- Nybegynder
21. august 2003 - 18:20 #4
nomak> det hjalp ikke
Avatar billede nomak Nybegynder
21. august 2003 - 18:26 #5
$query = "SELECT id, user, pass FROM login WHERE user='$Login[bruger]' AND pass='$Login[pass]'";
Avatar billede -xyz- Nybegynder
21. august 2003 - 18:32 #6
dea_pg nu får jeg følgende fejl...

MySQL fejl: You have an error in your SQL syntax near '== 'h' && pass == 'h'' at line 1
Avatar billede fangel Nybegynder
21. august 2003 - 18:35 #7
så er det nok fordi du kun skal bruge et =-tegn som nomak også er inde på!

$query = "SELECT id, user, pass FROM login WHERE user = '" . $Login['bruger'] . "' && pass = '" .

Morten
Avatar billede -xyz- Nybegynder
21. august 2003 - 19:25 #8
Jeg har stadig et problem med at den ikke bruger variablerne...
Avatar billede fangel Nybegynder
21. august 2003 - 19:27 #9
prøv at følge mine 4 'guidelines' og ændre et par ting i din kode - så tror jeg det vil virke..

hvad melder mysql af fejl?

Morten
Avatar billede -xyz- Nybegynder
21. august 2003 - 20:01 #10
det melder ingen fejl, det virker bare ikke...
Avatar billede fangel Nybegynder
21. august 2003 - 20:02 #11
prøv at lave en

print_r($_POST); (skal være på den side der 'modtager' variablerne fra formen)

og se hvad denne skriver

Morten
Avatar billede -xyz- Nybegynder
21. august 2003 - 20:30 #12
jeg har prøvet dokumentet med den her...

if (isset($log['user']))
{
print("ok");
}
else
{
print("ikke defineret");
}
die();

og jeg får else værdien...
Avatar billede fangel Nybegynder
21. august 2003 - 20:35 #13
findes log overhovedet - hvor burde den komme fra?

Morten
Avatar billede -xyz- Nybegynder
21. august 2003 - 20:37 #14
$log er den array der gerne skulle komme ud af mysql_fetch_array
Avatar billede fangel Nybegynder
21. august 2003 - 22:15 #15
findes

$_POST['bruger']

overhovedet?

Morten
Avatar billede -xyz- Nybegynder
23. august 2003 - 15:23 #16
Jeg fandt selv ud af problemet med variablen....

tak for hjælpen dea_pg det var rar at du gad svare på spm... som du ikke fik point for
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