我正在尝试创建一个登录/注册系统,一切都已完成,密码已加密,使用PDO
来阻止SQL注入。等...
我唯一的问题是,就像Facebook一样,我希望在成功注册后立即将用户重定向到他们的个人资料,所以当他们点击注册表单上的submit
时,我想将它们重定向到他们的个人资料,所以它应该显示这样的内容You're logged in as Akar
,我将$_SESSION['logged_in']
设置为1
。但它没有显示名称。因此,它显示You're logged in as Akar
而不是You're logged in as
,空白,它不会显示我的名字。
这是我的代码:
else {
$sql = "INSERT INTO `users` (first_name, last_name, email, username, password, gender, birthday)
VALUES(:firstname, :lastname, :email, :username, :password, :gender, :birthday)";
$stmt = $this->db_connection->prepare($sql);
$stmt->bindParam(':firstname', $first_name);
$stmt->bindParam(':lastname', $last_name);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password_hash);
$stmt->bindParam(':gender', $gender);
$stmt->bindParam(':birthday', $birthday);
$user_register = $stmt->execute();
if ($user_register) {
$_SESSION['logged_in'] = 1;
$_SESSION['username'] = $row->username;
//$this->messages[] = "Your account has been succesfully registered, Login above!";
$row
变量是:
$sql = "SELECT * FROM users WHERE username = :username OR email = :email";
$stmt = $this->db_connection->prepare($sql);
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetchObject();
我修好了,通过这样做:
if ($user_register) {
$sql = "SELECT * FROM users WHERE username = :username";
$stmt = $this->db_connection->prepare($sql);
$stmt->bindParam(':username', $username);
$stmt->execute();
$row = $stmt->fetchObject();
$_SESSION['logged_in'] = 1;
$_SESSION['username'] = $row->username;
...谢谢
答案 0 :(得分:0)
如果您想将用户重定向到另一个页面(据我了解您想做什么)
执行此代码:
header( 'Location: http://www.yoursite.com/account_page.php' );
答案 1 :(得分:0)
等等,$ row等于什么? ;)http://php.net/manual/en/pdostatement.fetch.php
请$ row = $ stm-> fetch();
我想你的问题应该解决了。
答案 2 :(得分:0)
既然你说:
当他们点击注册表单上的提交时,我想将他们重定向到他们的个人资料
如何使用
$_SESSION['username'] = $username;
相反?抱歉,我不允许添加评论