Warning: mysqli_num_rows() | Probleem

Gestart doorSemmiiee13 reacties205 weergaven

14 berichten · pagina 1 van 1

Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Login.php

$username = mysqli_real_escape_string($dbc, $_POST[username]);
$password = mysqli_real_escape_string($dbc, $_POST[password]);

$sel_user = "SELECT * FROM users WHERE username = $username AND password = $password";
$run_user = mysqli_query($dbc, $sel_user);


$check_user = mysqli_num_rows($run_user);
if($check_user>0){
$_SESSION[username]=$username;
echo "Logged in";


Database connectie:

$dbc = mysqli_connect(mysql11.000webhost.com, a1684280_*****, *********, a1684280_users);


Error:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/a1684280/public_html/login.php on line 58

$check_user = mysqli_num_rows($run_user);


Hele pagina-code in spoiler-tag
Spoiler tonen
[COLOR= #0000BB]<?php[/COLOR] 

[URL="http://www.php.net/session_start"]session_start[/URL][COLOR= #007700]();[/COLOR] [COLOR= #FF8000]//Starting a Session[/COLOR]
[COLOR= #0000BB]$dbc[/COLOR] [COLOR= #007700]=[/COLOR] mysqli_connect[COLOR= #007700]([/COLOR][COLOR= #DD0000]mysql11.000webhost.com[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]a1684280_******[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]********[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]a1684280_users[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]submit[/COLOR][COLOR= #007700]])){[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]) ||[/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]password[/COLOR][COLOR= #007700]])){[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Please enter a username and password."[/COLOR][COLOR= #007700];
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]

[COLOR= #0000BB]$username[/COLOR] [COLOR= #007700]=[/COLOR] mysqli_real_escape_string[COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbc[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #0000BB]$password[/COLOR] [COLOR= #007700]=[/COLOR] mysqli_real_escape_string[COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbc[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]password[/COLOR][COLOR= #007700]]);[/COLOR]

[COLOR= #0000BB]$sel_user[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"SELECT * FROM users WHERE username = $username AND password = $password"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$run_user[/COLOR] [COLOR= #007700]=[/COLOR] mysqli_query[COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbc[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$sel_user[/COLOR][COLOR= #007700]);[/COLOR]


[COLOR= #0000BB]$check_user[/COLOR] [COLOR= #007700]=[/COLOR] mysqli_num_rows[COLOR= #007700]([/COLOR][COLOR= #0000BB]$run_user[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$check_user[/COLOR][COLOR= #007700]>[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]){[/COLOR]
[COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]=[/COLOR][COLOR= #0000BB]$username[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Logged in"[/COLOR][COLOR= #007700];
}[/COLOR][URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"failed to log in"[/COLOR][COLOR= #007700]; }

}
}[/COLOR]


?>
Wat ik probeer:
Kijken als de "username" en "password" in de database overeenkomen met de ingegeven gebruiksnaam en wachtwoord, en dan hem in te loggen.

Ik heb al jaren geen web-coding gedaan en mysqli is nieuw - Iemand die me kan helpen met dit probleem?
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Username en password escapen?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
$sel_user = "SELECT * FROM users WHERE username = ".$username." AND password = ".$password;

toevoeging op 27 november 2014, 17:37:12:
En anders even debuggen waarom de query niet uitgevoerd wordt.
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
En in query wil je de POST variables toch gebruiken? Niet gewone vars.
0
Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near testpass at line 1

Deze error krijg ik als ik
if(!$run_user){
die(mysqli_error($dbc));
}

doe.

"testpass" is de wachtwoord die ik intypt bij het inloggen.

//
Xjessex schreef:
$sel_user = "SELECT * FROM users WHERE username = ".$username." AND password = ".$password;
toevoeging op 27 november 2014, 17:37:12:
En anders even debuggen waarom de query niet uitgevoerd wordt.

Zelfde error
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Semmiiee schreef:
Codeblok (voorbeeld.php):
1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near testpass at line 1

Deze error krijg ik als ik
if(!$run_user){
die(mysqli_error($dbc));
}

doe.

"testpass" is de wachtwoord die ik intypt bij het inloggen.

//
Xjessex schreef:
$sel_user = "SELECT * FROM users WHERE username = ".$username." AND password = ".$password;
toevoeging op 27 november 2014, 17:37:12:
En anders even debuggen waarom de query niet uitgevoerd wordt.

Zelfde error
Robiin schreef:
En in query wil je de POST variables toch gebruiken? Niet gewone vars.
toevoeging op 27 november 2014, 18:08:06:
In de query gebruik je de vars $username en $password.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Robiin schreef:
Eerdere citaten tonen
Semmiiee schreef:
Codeblok (voorbeeld.php):
1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near testpass at line 1

Deze error krijg ik als ik
if(!$run_user){
die(mysqli_error($dbc));
}

doe.

"testpass" is de wachtwoord die ik intypt bij het inloggen.

//
Xjessex schreef:
$sel_user = "SELECT * FROM users WHERE username = ".$username." AND password = ".$password;
toevoeging op 27 november 2014, 17:37:12:
En anders even debuggen waarom de query niet uitgevoerd wordt.

Zelfde error
Robiin schreef:
En in query wil je de POST variables toch gebruiken? Niet gewone vars.
toevoeging op 27 november 2014, 18:08:06:
In de query gebruik je de vars $username en $password.

Niet op de manier hoe ik zijn query deed.
En kijk eens naar de quotes die hij gebruikt, moet op zich niets uitmaken

$hoi = "hoi";
echo "$hoi";
geeft gewoon hoi, niet $hoi.
echo $hoi; geeft wel $hoi en niet hoi
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1

$sel_user = "SELECT * FROM users WHERE username = {$username} AND password = {$password}";
0
Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Codeblok (voorbeeld.php):
1

$sel_user = "SELECT * FROM users WHERE username = {$username} AND password = {$password}";

Thanks, werkt nu. Geen idee waarom is belangrijk om {} te gebruiken - Heb het op geen guide or tut gezien.

#fixed
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Eerdere citaten tonen
Robiin schreef:
Eerdere citaten tonen
Semmiiee schreef:
Codeblok (voorbeeld.php):
1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near testpass at line 1
Deze error krijg ik als ik
if(!$run_user){
die(mysqli_error($dbc));
}

doe.

"testpass" is de wachtwoord die ik intypt bij het inloggen.

//
Xjessex schreef:
$sel_user = "SELECT * FROM users WHERE username = ".$username." AND password = ".$password;
toevoeging op 27 november 2014, 17:37:12:
En anders even debuggen waarom de query niet uitgevoerd wordt.

Zelfde error
Robiin schreef:
En in query wil je de POST variables toch gebruiken? Niet gewone vars.
toevoeging op 27 november 2014, 18:08:06:
In de query gebruik je de vars $username en $password.

Niet op de manier hoe ik zijn query deed.
En kijk eens naar de quotes die hij gebruikt, moet op zich niets uitmaken

$hoi = "hoi";
echo "$hoi";
geeft gewoon hoi, niet $hoi.
echo $hoi; geeft wel $hoi en niet hoi

Ik zie het, foutje. Maar het is opgelost smile
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
De oplossing van xjessex had ook gewerkt als er nog ." achter gezet werd. Nu klopte zijn query niet.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Owja die enkele quote sloot ik niet af.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
We hadden gewoon dezelfde oplossing, alleen gebruikte ik {} en Jesse "". Dat is het probleem niet. Het probleem was de single quotes .
Semmiiee schreef:
Eerdere citaten tonen
Dylanh schreef:
Codeblok (voorbeeld.php):
1

$sel_user = "SELECT * FROM users WHERE username = {$username} AND password = {$password}";

Thanks, werkt nu. Geen idee waarom is belangrijk om {} te gebruiken - Heb het op geen guide or tut gezien.

#fixed
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
als we nu eens allemaal prepared statements zouden gebruiken, de wereld zou een veel betere plaats zijn sadley
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren