php - 登录提交 php 不工作

标签 php database forms authentication

我编写了一个用于提交登录表单的 .php 页面。它扫描数据库以检查任何匹配项,但是,大约 2 周前我停止在我的网站上工作,我又开始工作了,但是现在决定停止工作了?我收到此错误:

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\loginsubmit.php on line 16

这是我用于登录提交的 PHP

<font face="ClearSans-Thin">
<font color="lightgray">

<?php

include 'loginform.php';
include 'connection.php';

if (isset($_POST['submit'])) {
    $user = $_POST['username'];
    global $db;
    $pass = $_POST['password'];

    $query = "SELECT COUNT(*) AS cnt FROM Users WHERE Username='" . mysqli_real_escape_string($connection,$user) . "' && Password='" . mysqli_real_escape_string($connection,$pass). "'";
    $query = "INSERT INTO Users (FirstName, LastName, Email, DateofBirth, Username, Password) VALUES (?, ?, ?, ?, ?, ?)";
    $stmt = $db->prepare($query);
$stmt->bind_param("ssssss", firstname, $lastname, $email, $dob, $user, $pass);
$stmt->execute();
$stmt->close();
    $result = mysqli_query($connection, $query) or die(mysqli_error($connection));
    $row = mysqli_fetch_assoc($result);
    if ($row["cnt"] > 0) {
        session_start();
        $_SESSION['login'] = "1";

        header('Location: homepage.php');
    } else {
        header('Location: loginform.php');

    }
}

最佳答案

“您使用了两种不同类型的连接,$dbo(PDO 对象)和 $connection(来自 mysqli_connect() 的句柄)。此外,第一个查询从未执行过。我看起来一切都很好,因为mysqli_query() 函数执行成功。你真的应该只选择一个并坚持下去。这看起来很乱”

要继续,我假设您的 connection.php 文件包含您的 mysqli_connect(),所以我将采用该路线。您可能希望删除该全局变量以及对语句和 PDO 对象的任何引用,清理您将要插入的值并将它们设置在查询字符串中,替换“?”。

关于php - 登录提交 php 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448311/

相关文章:

PHP短加密

javascript - 将表单和按钮链接到 javascript 命令

PHP无法捕获同一页面上ajax jquery发送的$_POST数据

php - 自定义 Magento 模板

MYSQL::从没有最新行的表中选择行

language-agnostic - 我应该如何根据 zip 填充城市/州字段?

MySQL:根据其他日期属性插入随机日期值

forms - 表单中的默认日期 (symfony2)

JavaScript 表单到搜索引擎重定向

javascript - 在 PhP 中运行 Javascript 函数或线程