php登录表单无法正常工作

时间:2014-03-10 19:39:09

标签: php database mysqli database-connection

我正在尝试创建一个简单的登录功能,但它不起作用,而且我对mysqli比较新,所以请耐心等待。我只是想检查电子邮件地址和密码是否正确,如果是,那么请将用户登录。提前致谢。

以下是检查凭据的登录代码:

更新后的代码 - 我添加了所有报告,我现在收到内部服务器错误

<?php

require_once 'connect.php';
mysqli_report(MYSQLI_REPORT_ALL);


session_start();

if (!isset($_SESSION['email'])) {

$e = trim($_REQUEST['email']);
$email = $mysqli->real_escape_string($e);
$p = trim($_REQUEST['password']);
$password = $mysqli->real_escape_string($p);

/*
if ($result = $mysqli->query("SELECT email, password, user_id" .
                                             " FROM users" .
                                             " WHERE email = '$email' AND password = '$password'")) {
    printf("Select returned %d rows.\n", $result->num_rows);
echo 'Total results: ' . $result->num_rows;

}
*/

if ($stmt = $mysqli->prepare("SELECT email, password, user_id FROM users WHERE email=? AND password=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("ss", $email, $password);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($email, $password);

    /* fetch value */
    $stmt->fetch();

   if ($stmt->num_rows==1) {
   $row = $stmt->fetch_assoc(MYSQLI_NUM);
   $user_id = $row['user_id'];
   $_SESSION['user_id'] = $user_id;
   $_SESSION['email'] = $email;
   header("Location: home.php");

    /* close statement */
    $stmt->close();
} else {
    printf("Error message: %s\n", $mysqli->error);
}
/*
if ($result->num_rows==1) {
$row = $result->fetch_assoc(MYSQLI_NUM);
   $user_id = $row['user_id'];

if ($query_group = $mysqli->query("SELECT *" .
                                                        " FROM user_groups" .
                                                        " WHERE user_id = '".$user_id."'")) {
   //No more setcookie
   $_SESSION['user_id'] = $user_id;
   $_SESSION['email'] = $email;
} else {
echo 'Did not work';
}
}
*/

    /* free result set */
    // $result->close();
}
}

?>

这是connect.php连接数据库:

<?php
$mysqli = new mysqli("data", "username", "password", "db");

if($mysqli->connect_errno > 0){
    die('Unable to connect to database [' . $mysqli->connect_error . ']');
}

?>

1 个答案:

答案 0 :(得分:0)

您是否尝试删除代码末尾的其中一个括号。我想你必须删除其中一个。