php 登录表单无法正常工作

标签 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 . ']');
}

?>

最佳答案

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

关于php 登录表单无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309688/

相关文章:

php - 使用 PDO 创建新的 SQLite 数据库

java - 实体对象应该执行代码吗?

php - 用绑定(bind)网运行mysqli命令,错误信息fet_row是非对象

php - Mysql 不允许在调用时显示表

php - 当我打印多维数组时,数组堆叠起来

php - Laravel 5.4 查询生成器和 MySQL 函数

php - 当库加载到页脚时,基于 PHP 有条件调用 Javascript

php - 用于大型和可扩展应用程序的数据库表结构

php - MD5 哈希值不匹配

php - 兰德();排除并已经随机生成的数字..?