PHP - Warning: mysql_num_rows()
Ik heb hier een check php file voor als iemand zich wilt inloggen op een website.
Code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$host="xxxxx";
$username="xxxxx";
$password="xxxxx";
$db_name="xxxxx";
$tbl_name="xxxxx";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$UserID=$_POST['UserID'];
$Paswoord=$_POST['Paswoord'];
$UserID = stripslashes($UserID);
$Paswoord = stripslashes($Paswoord);
$UserID = mysql_real_escape_string($UserID);
$Paswoord = mysql_real_escape_string($Paswoord);
$sql="SELECT * FROM $tbl_name WHERE username ='$UserID' and Paswoord='$Paswoord'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("UserID");
session_register("Paswoord");
header("location:login_success.php");
}
else {
echo "Foute duiker of paswoord";
}
?>
$host="xxxxx";
$username="xxxxx";
$password="xxxxx";
$db_name="xxxxx";
$tbl_name="xxxxx";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$UserID=$_POST['UserID'];
$Paswoord=$_POST['Paswoord'];
$UserID = stripslashes($UserID);
$Paswoord = stripslashes($Paswoord);
$UserID = mysql_real_escape_string($UserID);
$Paswoord = mysql_real_escape_string($Paswoord);
$sql="SELECT * FROM $tbl_name WHERE username ='$UserID' and Paswoord='$Paswoord'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("UserID");
session_register("Paswoord");
header("location:login_success.php");
}
else {
echo "Foute duiker of paswoord";
}
?>
Nu krijg ik volgende fout:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /customers.../checklogin.php on line 24
Wrong Username or Paswoord
Hoe kan ik dit oplossen?
Alvast bedankt.
$tbl_name moet toch tussen ' en ' ?
of dat het probleem oplost weet ik niet, het viel me alleen op
Hier heb je Paswoord met een hoofdletter geschreven, ik neem aan dat hij in de MySQL-database ook met een hoofdletter is?
Zie ook mysql_query.
Er was idd een fout op mijn lijn 19.
username moest UserID worden.
----
Ik heb een project in mijn hoofd en hiervoor moet ik PHP kunnen.
Daarom ben ik nu bezig met wat PHP te leren.
Nu ga ik is zien of ik met zo'n Sessions kan werken.
Groetjes en alvast bedankt
Voordat je allemaal gekke dingen gaat doen raad ik je wel aan dit eerst eens af te handelen. Zoals Karl al zegt bouw eens een fout afhandeling, weet je hoe dat moet? Of probeer eens de functies mysql_real_escape_string() en / of intval() stuk voor stuk handige dingen om te weten.
Wat me handig lijkt voor je verdere script carrière probeer eens met tabs etc werken dat maakt je code overzichtelijker.
Verder is session_register() antiek. Gebruik $_SESSION['...'].
Ja fout afhandeling zit in de code al zelf zo.. Lijn 28 - 31
Meestal zet ik alles wat bij elkaar hoort in blokniveau
@ SanThe Nvt
Dit session_register() stond in een boek van mijn papa.
Hij kan alleen ASP want vindt PHP wat te moeilijk.
Maar heeft dit een zelfde werking?
Groetjes, Gerrie
Dat is écht geen foutafhandeling.
Dat is beveiliging o.i.d.
Foutafhandeling zorgt ervoor, zoals het woord zegt, dat de fouten afgehandeld worden.
Jij had een foute query, als je foutafhandeling in je script had gehad dan had je dat dus gemerkt.
Neen op php.net ben ik nog niet geweest.
Als ik iets fout doe geeft hij altijd "Warning: blablabla, da bestand, die lijn"
Wat doet een foutafhandeling dan juist?
Klein voorbeeldje mss mogelijk (a)
Thanks
Php.net is eigenlijk de eerste plek waar je naar toe gaat als je een probleem hebt. Daar staat namelijk de documentatie van php. Dat is dus hoe alles moet, en wat je terug kan verwachten.
Verder kan je hier op phphulp.nl eens kijken naar een beginners-handleiding. Is vast wel te vinden.
(Je voorbeeld staat dus op php.net.)
Een voorbeeldje: PHP zal uit zichzelf geen foutmelding geven als een query die je met mysql_query uitvoert mislukt. Een eventuele foutmelding zul je zelf altijd moeten ophalen en tonen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$result = mysql_query($sql);
if($result == false) {
trigger_error(mysql_error());
}
?>
$result = mysql_query($sql);
if($result == false) {
trigger_error(mysql_error());
}
?>
Dit is natuurlijk heel basaal, maar laat wel zien waar het om gaat.
Ik zal het maandag allemaal even doornemen als het slecht weer is zo.
Goed weekend iedereen ^^
Nu zit ik met dat session probleem.
Als je gewoon in je browser naar de link "login_success.php" gaat dan moet je zelf niet zijn ingelogd...
Kan ik dit niet beter met een Cookie doen?
if (isset($_SESSION['naam_van_sessie'])){
echo 'Je sessie bestaat!';
}
else
{
echo 'Nooo.. hij bestaat niet!';
En natuurlijk altijd: bovenaan!
Gewijzigd op 25/05/2010 18:12:14 door Victor Php
Function session_register() is deprecate --"
Gerrie:
Function session_register() is deprecate --"
Kan er mij iemand helpen wat ik er aan moet veranderen?
Hier zit de fout in:
Code (php)
1
2
3
2
3
session_register("duikerid");
session_register("paswoord");
header("location:login_success.php");
session_register("paswoord");
header("location:login_success.php");
Mijn login_success ziet er zo uit
Mijn login_success ziet er zo uit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
<html>
<body>
Login Successful
</body>
</html>
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
<html>
<body>
Login Successful
</body>
</html>
Wachtwoorden sla je verder NOOIT op in een sessievariabele, dat is nergens voor nodig. Die gebruik je alleen om te controleren of een gebruiker juist inlog.
Dus deze code heb ik in mijn "login_success.php" gezet.
Nu op mijn pagina om in te loggen als ik op "inloggen" wil drukken heb ik nog een fout door die Sessie... Een Sessie aanmaken daar snap ik blijkbaar niet veel van :s
- Hij geeft dus nog een fout op de pagina als hij een juiste login krijgt.
- Bij een foute login geeft hij een foutmelding aan de gebruiker.