Följande kod verkar inte fungera som det ska och jag fattar inte varför. Letar inte scriptet nedan i alla samtliga rader i tabellen tavlanden och kollar om både användarnman och lösenord är rätt? Verkar helt slumpartat på vilket användarnamn scriptet accepterar eller inte, men oftast fungerar det översta i tabellen.
$link = mysql_connect ("server", "kosse", "lösenordet")
or die ("Kunde inte koppla upp mot databasen.");
mysql_select_db("kosse");
$resultat = mysql_query("SELECT * FROM tavlanden");
if (mysql_num_rows($resultat) > 0) {
while ($row = mysql_fetch_row($resultat)) {
if ($row[1]==$anvandarnamn && $row[2]==$losen)
{
setcookie("ianvandarnamn",$anvandarnamn,time()+157680000); //Kakor sättes.
setcookie("ilosen",$losen,time()+1800);
header("Location: index.php?ID=tavlandestartsida");
$finns=1;
break;
}
}
}
if (!$finns) {
echo "$stil Ditt användarnamn eller lösenord är fel, försök igen.";
}
Kan du inte lägga in sökningen direkt i sql-frågan? Då slipper du loopen i programmet.
$link = mysql_connect ("server", "kosse", "lösenordet")
or die ("Kunde inte koppla upp mot databasen.");
mysql_select_db("kosse");
$resultat = mysql_query("SELECT * FROM tavlanden where anvandarnamn = '$anvandarnamn' and losen = '$losen'");
if (mysql_num_rows($resultat) > 0) {
setcookie("ianvandarnamn",$anvandarnamn,time()+157680000); //Kakor sättes.
setcookie("ilosen",$losen,time()+1800);
header("Location: index.php?ID=tavlandestartsida");
$finns=1;
break;
}
if (!$finns) {
echo "$stil Ditt användarnamn eller lösenord är fel, försök igen.";
}
Använder du rätt arrayindex i ditt program?
------------------ essentitia preter non sans multiplicandum
Kunde man skriva så också?, där ser man. Är väldans ny på den hära med mySQL.
Jag tror jag vet vad som var fel innan, servern måste fått fnatt eftersom jag aldrig stängde kopplingen till databasen. När jag la till det fungerade det som det skulle...
När du skriver $row[1] så är 1 ett arrayindex. Jag bara undrade om de arrayindex du använder när du jämför stämmer med de positioner som kolumnerna har i tabellen.
------------------ essentitia preter non sans multiplicandum
Om jag skriver såhär utan whileloop verkar jag inte få några värden i resultat, varför inte? Blir inte $resultat en indexarray precis som $row blev med while loopen?
$resultat = mysql_query("SELECT * FROM tavlanden where anvandarnamn = '$anvandarnamn' and losen = '$losen'");