• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در رابطه با mysqli_num_rows
#1
با سلام

در فرم لوگین زیر با مشکل برخوردم.
ارور به این صورته

کد پی‌اچ‌پی:
Warningmysqli_num_rows() expects parameter 1 to be mysqli_resultboolean given in C:\xampp\htdocs\index.php on line 9 

و کل کد صفحه بدین صورته
کد پی‌اچ‌پی:
<?php 
    
echo showform();
    
$user $_POST['username'];
    
$pass $_POST['password'];
    if ( 
$user != ''  &&  $pass != '' ){
    
$connect mysqli_connect('localhost''root''' 'form1254');
    
$sql "SELECT * FROM users WHERE user = '"$user "' AND password = '"$pass ."' ";
    
$result mysqli_query($connect $sql);
    if (
mysqli_num_rows($result)>0){
    echo 
"Login succeded for ".$user"<br>";
    }else {
    echo 
"Failed" "<br>";
    }
    };
    echo 
$sql;
    function 
showform (){
    
$r  '<form method="post">';
    
$r .= '<input type="text" name="username"><br>';
    
$r .= '<input type="password" name="password"><br><br>';
    
$r .= '<input type="submit" name="submit">';
    
$r .= '</form>';
    return 
$r;
    };
?>
خیلی ممنونتون میشم اگر پاسخ بدید
  پاسخ
تشکر شده توسط :
#2
کوئری شما مشکل داره، برای تست میتونید بعد از خط
کد پی‌اچ‌پی:
$sql "SELECT * FROM users WHERE user = '"$user "' AND password = '"$pass ."' "
کوئریُ چاپ کنید
کد پی‌اچ‌پی:
echo $sql 
و ببریدش داخل phpmyadmin و اجراش کنید تا متوجه بشین دقیقا چه خطایی داره.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : awx0ne
#3
دست شما بابت راهنمایی درد نکنه

کد درست
کد پی‌اچ‌پی:
<?php 
    
echo showform();
    
$user $_POST['username'];
    
$pass $_POST['password'];
    if ( 
$user != ''  &&  $pass != '' ){
    
$connect mysqli_connect('localhost''root''' 'form1254');
    
$sql "SELECT * FROM users WHERE user = '"$user "' AND pass = '"$pass ."' ";
    
$result mysqli_query($connect $sql);
    if (
mysqli_num_rows($result)>0){
    echo 
"Login succeded for ".$user"<br>";
    }else {
    echo 
"Failed" "<br>";
    }
    };
    echo 
$sql;
    function 
showform (){
    
$r  '<form method="post">';
    
$r .= '<input type="text" name="username"><br>';
    
$r .= '<input type="password" name="password"><br><br>';
    
$r .= '<input type="submit" name="submit">';
    
$r .= '</form>';
    return 
$r;
    };
?>

فقط یه نکته ای وجود داره و اون هم اینه که وقتی در حالت عادی برای اولین بار صفحه رو بالا میارم. بهم یه یری ارور میده که وقتی اطلاعات رو در فیلد وارد میکنم رفع میشه.
میخوام بدونم دلیلش چیه؟
کد پی‌اچ‌پی:
NoticeUndefined indexusername in C:\xampp\htdocs\index.php on line 3

Notice
Undefined indexpassword in C:\xampp\htdocs\index.php on line 4

Notice
Undefined variablesql in C:\xampp\htdocs\index.php on line 15 

یه نکته ی دیگه هم مونده که میگم. این فرم چه اشکالاتی داره. آیا این روش بهترین روش برای ایجاد فرم لوگین هست؟

با تشکر
  پاسخ
تشکر شده توسط :
#4
اینها خطا نیستن، اطلاع هستن و به شما اعلام میکنن متغییر هایی که داخل کدتون استفاده کردین تعریف نشدن. برای جلوگیری هم میتونید از empty استفاده کنید مثلا:

کد پی‌اچ‌پی:
<?php
echo showform();
if(!empty(
$_POST))
{
    
$user $_POST['username'];
    
$pass $_POST['password'];
    if ( 
$user != ''  &&  $pass != '' ){
    
$connect mysqli_connect('localhost''root''' 'form1254');
    
$sql "SELECT * FROM users WHERE user = '"$user "' AND pass = '"$pass ."' ";
    
$result mysqli_query($connect $sql);
    if (
mysqli_num_rows($result)>0){
    echo 
"Login succeded for ".$user"<br>";
    }else {
    echo 
"Failed" "<br>";
    }
    };
    echo 
$sql;
}

function 
showform (){
$r  '<form method="post">';
$r .= '<input type="text" name="username"><br>';
$r .= '<input type="password" name="password"><br><br>';
$r .= '<input type="submit" name="submit">';
$r .= '</form>';
return 
$r;

فرم شما اشکال داره و برای نمونه میتونید گوگل کنید تا روش صحیح رو مشاهده کنید.
مثلا: http://www.phpeasystep.com/phptu/6.html
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : awx0ne


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان