webForumDet fria alternativet
Logga in / Bli medlem

Inloggning med PHP och MySQL databas

PHP

9 svar · 305 visningar · startad av ulkHen

Medlem sedan feb. 20025 inlägg
Trådstart#1

Jag har en MySql databas där jag har en massa användarnamn och deras lösenord.

Det jag vill göra med min php kod är
* via ett fromulär göra följande:

*kolla om användaren skrivit rätt användarnamn i variabeln $anvandarnamn och rätt lösenord i variabeln $losenord
*om användarnamn och lösenord stämmer, dvs rätt lösenord för rätt användare ska användaren skickas vidare till en annan fil.
Om han skrivit fel ska han skickas till föregående fil.

Vore enormt tacksam om någon kunde hjälpa mig med detta. Jag kan ungeefär priciperna för det hela, men inte i detalj.

Mvh
David

Medlem sedan maj 20003 652 inlägg
#2

Ok, ska försöka (utgår från att du gjort formuläret och att variabeln med username heter username och variabeln med password heter password):

$query = mysql_query("SELECT * FROM tabell WHERE user = '$username' AND password = '$password'");
$num = mysql_num_rows($query);

if($num > 0) {
echo "
Du är nu inloggad!
<SCRIPT LANGUAGE=\"JavaScript\">
<!--

location.href=\"filnamn.php\";

-->
</SCRIPT>
";
} else {
echo "
<SCRIPT LANGUAGE=\"JavaScript\">
<!--

javascript:history.go(-1)

-->
</SCRIPT>
";
}

Borde fungera, tror jag, har inte testat, lite osäker på JavaScripten... :)

Medlem sedan feb. 20025 inlägg
#3

Tack för ditt svar!
Jag har anpassat koden för mig, men får det ändå inte att fungera. Jag har kontrollerat det lätta som att variabelnamn stämmer överens med varandra samt att databas anslutningen innehåller rätt uppgifter.

Vad kan vara fel? Min kod är:

<html>

<?
$link = mysql_connect ("localhost","user","pass");
$databas = mysql_select_db("databasen");
$query = mysql_query("SELECT * FROM tabellen WHERE anvandarnamn = '$anvandarnamn' AND losenord = 'losenord'");
$num = mysql_num_rows($query);
if($num > 0) {
echo "
Du är nu inloggad!
<br>
<a href='inloggad.php'>vidare</a>
";
} else {
echo "
du har angivit felaktigt lösenord eller användarnamn
";
}
mysql_close ($link);

?>

</html>

[Redigerat av ulkHen den 09 feb 2002]

Medlem sedan aug. 20002 975 inlägg
#4

r/ Mitt svar blir meningslöst efter ulkHens redigering. Tar därför bort det.

Medlem sedan maj 20003 652 inlägg
#5

Vad blev det för fel? :)

Medlem sedan feb. 20025 inlägg
#6

Hej
Felet är att jag alltid får det nekande meddelandet om att inloggningen misslyckades när jag anropar denna fil från formuläret, detta trots att uppgifterna som fylls i formuläret är de samma som finns i databasen, dvs användarnamn och lösenord.

David

Medlem sedan feb. 20012 412 inlägg
#7

Finns det ingen funktion i PHP som fungerar som response.redirect i ASP?

response.redirect("sidan.asp")
Medlem sedan nov. 19991 033 inlägg
#8

Jo, header("Location: URLen"); men måste placeras innan man skriver ut något.
Jag kan inte hitta något fel i skriptet. Vad får du om du skriver ut $num? Vad får du om du skriver ut användarnamnet och lösenordet? Kan ju vara så att du inte får tillbaka värdena p.g.a. att de inte kan hämtas globalt kanske.

[Redigerat av FlashX den 10 feb 2002]

Medlem sedan feb. 20025 inlägg
#9

Hej
När jag skriver ut variablarna $num, $anvandarnamn och $losenord får jag 0, Kalle, 1234

Har sett på php.net att denna metod tydligen kan kracha servers ibland. Använder Apache på hotellet fsdata.se.

Nån vänlig själ som kan tyda om det finns nån lösning här:
http://www.php.net/manual/en/function.mysql-num-rows.php

Mvh
David

[Redigerat av ulkHen den 10 feb 2002]

Medlem sedan nov. 2000432 inlägg
#10

Jo, header("Location: URLen"); men måste placeras innan man skriver ut något.Jo,

njae.. nästan.. finns funktioner för att buffra outputen såpass att du kan lägga header(... var du vill .. ungefär

256 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)