在php中定义索引,注意:未定义的索引:在第2行的C:\ Users \ .. \ logged_in.php中的名称...

我使用$_SESSION['name'];来自数据库的名称使用这个我得到这个Notice: Undefined index: name in C:\Users\..\logged_in.php on line 2你能告诉我什么是布莱恩吗?请帮助请...注意:未定义的索引:在第2行的C: Users .. logged_in.php中的名称

登录in.php

Hey, <?php echo $_SESSION['name']; ?>. You are logged in.

Try to close this browser tab and open it again. Still logged in! ;)

Logout

的login.php

/**

* Class login

* handles the user's login and logout process

*/

class Login

{

/**

* @var object The database connection

*/

private $db_connection = null;

/**

* @var array Collection of error messages

*/

public $errors = array();

/**

* @var array Collection of success/neutral messages

*/

public $messages = array();

/**

* the function "__construct()" automatically starts whenever an object of this class is created,

* you know, when you do "$login = new Login();"

*/

public function __construct()

{

// create/read session, absolutely necessary

session_start();

// check the possible login actions:

// if user tried to log out (happen when user clicks logout button)

if (isset($_GET["logout"])) {

$this->doLogout();

}

// login via post data (if user just submitted a login form)

elseif (isset($_POST["login"])) {

$this->dologinWithPostData();

}

}

/**

* log in with post data

*/

private function dologinWithPostData()

{

// check login form contents

if (empty($_POST['user_name'])) {

$this->errors[] = "Username field was empty.";

} elseif (empty($_POST['user_password'])) {

$this->errors[] = "Password field was empty.";

} elseif (!empty($_POST['user_name']) && !empty($_POST['user_password'])) {

// create a database connection, using the constants from config/db.php (which we loaded in index.php)

$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

// change character set to utf8 and check it

if (!$this->db_connection->set_charset("utf8")) {

$this->errors[] = $this->db_connection->error;

}

// if no connection errors (= working database connection)

if (!$this->db_connection->connect_errno) {

// escape the POST stuff

$user_name = $this->db_connection->real_escape_string($_POST['user_name']);

// database query, getting all the info of the selected user (allows login via email address in the

// username field)

$sql = "SELECT user_name, user_email, user_password_hash

FROM users

WHERE user_name = '" . $user_name . "' OR user_email = '" . $user_name . "';";

$result_of_login_check = $this->db_connection->query($sql);

// if this user exists

if ($result_of_login_check->num_rows == 1) {

// get result row (as an object)

$result_row = $result_of_login_check->fetch_object();

// using PHP 5.5's password_verify() function to check if the provided password fits

// the hash of that user's password

if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {

// write user data into PHP SESSION (a file on your server)

$_SESSION['user_name'] = $result_row->user_name;

$_SESSION['user_email'] = $result_row->user_email;

$_SESSION['user_login_status'] = 1;

} else {

$this->errors[] = "Wrong password. Try again.";

}

} else {

$this->errors[] = "This user does not exist.";

}

} else {

$this->errors[] = "Database connection problem.";

}

}

}

/**

* perform the logout

*/

public function doLogout()

{

// delete the session of the user

$_SESSION = array();

session_destroy();

// return a little feeedback message

$this->messages[] = "You have been logged out.";

}

/**

* simply return the current state of the user's login

* @return boolean user's login status

*/

public function isUserLoggedIn()

{

if (isset($_SESSION['user_login_status']) AND $_SESSION['user_login_status'] == 1) {

return true;

}

// default return

return false;

}

}

+2

在session_start()是你的类构造内..如果你不把它也不会是任何会话一起工作.. +您设置$ _SESSION ['user_name']但试图捕获$ _SESSION ['name']? –

+0

[PHP:“注意:未定义的变量”和“注意:未定义的索引”]的可能重复(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值