PHP - Warning: mysql_num_rows()
Heej,
Ik heb hier een check php file voor als iemand zich wilt inloggen op een website.
Code:
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.
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
het enige wat ik evt kan ontdekken is op lijn 19:
Hier heb je Paswoord met een hoofdletter geschreven, ik neem aan dat hij in de MySQL-database ook met een hoofdletter is?
Hier heb je Paswoord met een hoofdletter geschreven, ik neem aan dat hij in de MySQL-database ook met een hoofdletter is?
Foutafhandeling inbouwen. De query klopt vast niet.
Zie ook mysql_query.
Zie ook mysql_query.
@ Tobias Witmer
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
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
Hey,
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.
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['...'].
@ Milo S
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
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
Je hebt dus niet eens op php.net gekeken?
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.
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.
@Karl karl
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
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
Zie die link die ik hierboven heb geplaatst.
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.)
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.)
Degelijk foutafhandeling zorgt ervoor dat je tijdens de testfase te allen tijde een gedetailleerde foutmelding voorgeschoteld krijgt zodat je precies weet wat er wanneer fout gaat. Zodra de website op de productieserver staat, zorgt de foutafhandeling ervoor dat de bezoeker een nette foutmelding te zien krijgt en wordt de gedetailleerde foutmelding bijvoorbeeld weggeschreven naar een log.
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:
Dit is natuurlijk heel basaal, maar laat wel zien waar het om gaat.
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.
Ha, dat is veel informatie in één keer xD
Ik zal het maandag allemaal even doornemen als het slecht weer is zo.
Goed weekend iedereen ^^
Ik zal het maandag allemaal even doornemen als het slecht weer is zo.
Goed weekend iedereen ^^
Voor mijn foutafhandeling heb ik nu
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?
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?
Gewoon kijken of er iets in de sessie staat..
if (isset($_SESSION['naam_van_sessie'])){
echo 'Je sessie bestaat!';
}
else
{
echo 'Nooo.. hij bestaat niet!';
En natuurlijk altijd: bovenaan!
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
Oeps foutje!
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>
Gebruik de superglobal $_SESSION:
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.
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.




