分配变量,但一直变为NULL

时间:2016-11-25 05:29:05

标签: php oop session variables

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

我的代码:

user.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",[

    ]);
}

我知道没有安全实施YET ...我只是先这样做,所以我可以稍后解决。

我想做的是

将$ isMember指定为1

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

我不知道为什么,但我一直这样:

string(6)“admin”int(0)int(0) 如果我没有意义,我很抱歉,但现在是凌晨3点,我非常沮丧:/

1 个答案:

答案 0 :(得分:2)

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

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