Php сеанс эхо больше не отображается?

0

У меня есть этот php, который является экраном входа в систему, а затем переходит на страницу профиля, и там, как предполагается, следует отследить пользователей; имя пользователя и адрес электронной почты на экране. Я работал, но ничего не изменил, но теперь вышло только имя пользователя.

Это имя пользователя php:

public function Login($username, $password){

if(!empty($username) && !empty($password)){

    $stmt = $this->db->prepare("SELECT username, password, email FROM users WHERE BINARY username = ? AND BINARY password = ?");
    $stmt->bindParam(1,$username);
    $stmt->bindParam(2,$password);
    $stmt->execute();

    if($stmt->rowCount() == 1){
        $_SESSION['username'] = $username;
        $email = $stmt->fetchColumn(2);
        $email = $_SESSION['email'];
        header('Location: http://www.mywebsite.com/dev/profile.php');
        }else{
            echo "Incorrect username or password please try again.";
        }               
    }else{
        echo "Must type username or password.";
    }       
}

Это профиль php:

<?php 
    session_start();
    $username = $_SESSION["username"];
    $email = $_SESSION["email"];
    if(!$_SESSION["username"]){
        header("Location: http://www.mywebsitelogin.com/dev/");
}

И вот как это отражается:

<?php echo '<h1>'.htmlentities($username).'</h1>'; ?>
<?php echo '<h3>'.htmlentities($email).'</h3>'; ?>

Кроме того, на вопрос стороны существует более постоянный способ включения файла внутри php, отличного от include_once(). Потому что это произошло там, где эта часть php-кода терпит неудачу без каких-либо причин при обновлении или входе на страницу.

  • 0
    Пожалуйста, добавьте сообщение об ошибке или журнал, трассировку отладки или что-нибудь, что облегчит другим людям понять, в чем проблема
  • 0
    Возможно, вам следует РЕДАКТИРОВАТЬ вопрос, особенно название, так как совершенно неясно, о чем вы спрашиваете нас, друг.
Показать ещё 1 комментарий
Теги:
login

1 ответ

1
Лучший ответ

Вы не помещаете электронное письмо в сеанс. Вы делаете обратное:

$email = $stmt->fetchColumn(2);
$email = $_SESSION['email'];

Измените это на:

$_SESSION['email'] = $stmt->fetchColumn(2);

Возможно, он работал раньше, потому что во время отладки вы уже сохранили переменную электронной почты в сеансе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню