Php抛出sqli计数错误

时间:2016-03-15 04:35:44

标签: javascript php mysql

<? php

include_once("connection.php");

// email and password sent from form 
$email = $_POST['email'];
$password = $_POST['password'];

// To protect MySQL injection (more detail about MySQL injection)
$email = stripslashes($email);
$password = stripslashes($password);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$password = mysqli_real_escape_string($connection, $_POST['password']);
$sql = "SELECT * FROM users WHERE email='$email' and password='$password'";
$result = mysqli_query($connection, $sql);

// Mysql_num_row is counting table row
$count = mysqli_num_rows($connection, $result);

// If result matched $username and $password, table row must be 1 row
if ($count == 1) {
  session_start();
  $_SESSION['loggedin'] = true;
  $_SESSION['email'] = $email;
}

?>
<div id="openModal" class="modalDialog">
  <div>
    <a href="#close" title="Close" class="close">X</a>


    <form class="pop" method="post" action="login.php">

      <p class="login">LOGIN</p>
      <div class="form-group">
        <div class="left-inner-addon "><i class="fa fa-envelope-o fa-fw"></i>
          <input type="email" name="email" class="form-control" id="email" placeholder="Email" required>
        </div>
      </div>
      <div class="form-group">
        <div class="left-inner-addon"><i class="fa fa-key fa-fw"></i>
          <input type="password" name="password" class="form-control" id="password" placeholder="Password" required>
        </div>
      </div>
      <p>Forgot Password?</p>

      <div class="form-group">
        <button class="btn btn-default" role="button" name="login" id="login">LOGIN</button>
      </div>
    </form>
  </div>
</div>

<? php
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'members';

$connection = mysqli_connect($host, $user, $password, $db);

if ($connection) {
  echo "Connected Successfully";
} else {
  echo "Error connecting: . mysqli_connect_error()";
}

?>

我有index.php,connection.php和login.php文件。我已经创建了register.php来注册它工作正常。在login.php中,它已成功连接但在警告中抛出错误:mysqli_num_rows()需要1个参数,给定2个 还有一件事我想知道如何知道用户是否登录我的网站我的意思是我想知道它是存储到数据库还是我不知道因为我是SQL新手并且登录后应该有效或无效的电子邮件和密码但不显示。在我的数据库中,我创建了表,id,用户名,电子邮件,密码列表。请以正确的方式帮助简单,不要混淆我。

2 个答案:

答案 0 :(得分:0)

mysqli_num_rows()函数返回结果集中的行数。

它只接受一个参数,说$ result是必需的。 $ result是mysqli_query(),mysqli_store_result()或mysqli_use_result()返回的结果集标识符。您正在传递$ connection对象以及导致问题的$ result。

要在数据库中保存会话,请提供这些帖子

Storing Sessions in a Database

Saving PHP's Session data to a database

答案 1 :(得分:0)

的config.php

< ?php
$mysql_hostname = "hostname";
$mysql_user = "username";
$mysql_password = "password";
$mysql_database = "database";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
?>

Login.php

include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password sent from Form
$myemailid=addslashes($_POST['emailid']);
$mypassword=addslashes($_POST['password']);

$sql="SELECT id FROM admin WHERE username='$myemailid' and    passcode='$mypassword'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$active=$row['active'];
$count=mysql_num_rows($result);


// If result matched $myusername and $mypassword, table row must be 1 row

会话 - &gt;变量包含有关单个用户的信息,并且可用于一个应用程序中的所有页面

if($count==1)
{
session_register("myusername");
$_SESSION['login_user']=$myusername;

header("location: welcome.php");
}
else
{
$error="Your Login Name or Password is invalid";
}
}
?>

Logout.php

< ?php
session_start();
if(session_destroy())
{
header("Location: login.php");
}
?>