【问题标题】:assigning a variable, but keep getting NULL分配一个变量,但不断获得 NULL
【发布时间】:2017-04-09 11:01:17
【问题描述】:

我正在做一个项目,我试图分配两个变量,但是当我 var_dump() 变量时,我一直得到 NULL

我的代码:

用户.php

<?php

class TheUser
{
    public $isMember = 0;
    public $userID = 0;
    public $info = [];
    public $user_name = 'guest';

   public function __construct()
    {
        global $mysqli,$config;
        if($_SESSION['the_user'] &&mysqli_num_rows($query = mysqli_query($mysqli,'SELECT * FROM `users` WHERE `username` = \''.$_SESSION['the_user'].'\' '))) {
        {
            $this->info = mysqli_fetch_assoc($query);
              $this->user_name = $this->info['username'];
  $this->isMember = 1;
  $this->userID = $this->info['id'];
        }
    }}



    function LoginUser()
    {
        global $mysqli,$config,$_SESSION;

            if($_SESSION['the_user']) {die('go away');}
            if(!$_POST['username']) { die('username already exist'); }
            if(!$_POST['password']) { die('password is required...'); }

if(!mysqli_num_rows($query = mysqli_query($mysqli,'SELECT `id`, `username`, `email`, `password` FROM `users` WHERE `username` = \''.$_POST['username'].'\''))) { die('0: El usuario ingresado no existe'); }
    $r = mysqli_fetch_row($query);
    if($r[3] != $_POST['password']) { die('0: La contrase&ntilde;a es incorrecta'); }


        //if($r[3] != $_POST['password']){ die(' incorrect password'); }
        $_SESSION['the_user'] = $r[1];
        $theUser = $_SESSION['the_user'];
        $this->isMember = 1;
        $this->userID = $r[0];
       die('ok');




    }





}

然后我的控制器看起来像:

<?php
include __DIR__.'/../../header.php';
$templateToShow = 'login';

$WhatLevel = 0;

$isAjax = empty($_GET['ajax']) ? 0 : 1;

$KeepGoing = true;


$PageTitle = $config['title'];

if($_POST)
{
    $ala = $LU->LoginUser();
}
//session_destroy();
var_dump($_SESSION['the_user']);
var_dump($isMember);
var_dump($userID);


if(empty($isAjax) && !$templateToShow)
{
    echo $twig->render('index.twig.php');
}else{
    echo $twig->render("$templateToShow.twig.php",[

    ]);
}

我知道目前还没有实现安全性...我只是先这样做,以便稍后修复它。

我想做的是

将 $isMember 分配给 1

将 $userID 分配给我从数据库中获取的用户 ID

我不知道为什么,但我一直得到这个:

string(6) "admin" int(0) int(0) 对不起,如果我没有意义,但现在是凌晨 3 点,我很沮丧:/

【问题讨论】:

  • 我没有看到 $isMember$userID 定义
  • @Dagon 他们在课程开始时被定义:public $isMember = 0;公共 $userID = 0;
  • 您的变量超出范围

标签: php oop session variables


【解决方案1】:

在您的代码中,您使用了 $_SESSION,因此您必须在每个 php 文件的开头添加session_start()。 并且您想在另一个文件的其他类中使用变量,因此您必须包含该文件并使用此代码,

$user = new TheUser;
$user->$isMember

【讨论】:

  • 是的,我忘了我必须调用它:$user->$isMember 我拥有它就像 $isMember 一样:/ 现在我可以睡觉了:D
猜你喜欢
  • 2017-12-04
  • 2017-07-02
  • 2021-12-31
  • 2018-03-17
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
相关资源
最近更新 更多