Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调试致命错误_Php_Pdo - Fatal编程技术网

Php 调试致命错误

Php 调试致命错误,php,pdo,Php,Pdo,我试图使用PDO创建一个登录页面,但我遇到了这个错误,我在这里检查了关于这个错误的类似查询,但它们似乎与我的不同 注意:未定义变量:第5行C:\xampp\htdocs\soft\index.php中的用户 致命错误:对成员函数的调用在第5行的C:\xampp\htdocs\soft\index.php中为空 是什么导致了这个致命错误,以及我如何修复它,因为据我自己的理解,代码似乎还可以。 这是我的登录页面代码 <?php require_once 'dbconfig.php'; if(

我试图使用PDO创建一个登录页面,但我遇到了这个错误,我在这里检查了关于这个错误的类似查询,但它们似乎与我的不同

注意:未定义变量:第5行C:\xampp\htdocs\soft\index.php中的用户

致命错误:对成员函数的调用在第5行的C:\xampp\htdocs\soft\index.php中为空

是什么导致了这个致命错误,以及我如何修复它,因为据我自己的理解,代码似乎还可以。 这是我的登录页面代码

<?php
require_once 'dbconfig.php';

if($user->is_loggedin()!="")
{
    $user->redirect('home.php');
}

if(isset($_POST['btn-login']))
{
    $uname = $_POST['txt_uname_email'];
    $umail = $_POST['txt_uname_email'];
    $upass = $_POST['txt_password'];

    if($user->login($uname,$umail,$upass))
    {
        $user->redirect('home.php');
    }
    else
    {
        $error = "Wrong Details !";
    }   
}
?>
这是我的用户类

<?php
class USER
{
    private $db;

    function __construct($DB_con)
    {
        $this->db = $DB_con;
    }

    public function register($fname,$lname,$uname,$umail,$upass)
    {
        try
        {
            $new_password = MD5($upass);

            $stmt = $this->db->prepare("INSERT INTO users(user_name,user_email,user_pass) 
                                                       VALUES(:uname, :umail, :upass)");

            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);                                        

            $stmt->execute();   

            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }

    public function login($uname,$umail,$upass)
    {
        try
        {
            $stmt = $this->db->prepare("SELECT * FROM users WHERE user_name=:uname OR user_email=:umail LIMIT 1");
            $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() > 0)
            {
                if($userRow['user_pass']==MD5($upass))
                {
                    $_SESSION['user_session'] = $userRow['user_id'];
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }

    public function is_loggedin()
    {
        global $db;

        if(isset($_SESSION['user_session']))
        {
            return true;
        }
    }

    public function redirect($url)
    {
        header("Location: $url");
    }

    public function logout()
    {
        session_destroy();
        unset($_SESSION['user_session']);
        return true;
    }
}
?>


我只是一个新手,我想知道我做错了什么,非常感谢你没有声明什么是用户

有些人通过启动一个会话并将其包含在下一页的最顶端来完成,这样您就可以调用一个函数来查看用户是否已登录


无论哪种方式,我都看不到与您声明
$user
变量相关的任何内容(即包括文件)。

检查
dbconfig.php
文件,确保您具有以下代码

include_once 'class.user.php';
$user = new USER($DB_con);

我认为这就是您需要声明用户的地方。

$user=new user()?是的,看起来您没有初始化
$user
anything@Dagon当我放置$user=newuser()时;在“我的页面”的顶部,登录页面收到另一个错误致命错误:在第3行的C:\xampp\htdocs\soft\index.php中找不到类“USER”是否包含类文件\code?用户类中的构造函数还需要参数
$DB\u con
,如果你没有通过任何东西,那么当你初始化你的对象时,这可能是一个问题。我已经尝试过放置$user=new user();我收到另一个错误致命错误:在第3行的C:\xampp\htdocs\soft\index.php中找不到类“USER”,因为您没有包含该用户类
include_once 'class.user.php';
$user = new USER($DB_con);