注册后将用户重定向到配置文件

时间:2014-08-16 22:51:41

标签: php pdo

我正在尝试创建一个登录/注册系统,一切都已完成,密码已加密,使用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;

...谢谢

3 个答案:

答案 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;

相反?抱歉,我不允许添加评论

相关问题