【发布时间】: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ñ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;
-
您的变量超出范围