Кажется, я не могу получить от своих пользователей какую-либо другую информацию, извлеченную из базы данных, кроме их имени пользователя и идентификатора, и я не понимаю, почему, вот мой код пытается вызвать его из сеанса.

// Now we check if the data was submitted, isset will check if the data exists.
if ( !isset($_POST['username'], $_POST['password']) ) {
    // Could not get the data that should have been sent.
    die ('Username and/or password does not exist!');
}
// Prepare our SQL
if ($stmt = $con->prepare('SELECT id, password FROM accounts WHERE username = ?')) {
    // Bind parameters (s = string, i = int, b = blob, etc), hash the password using the PHP password_hash function.
    $stmt->bind_param('s', $_POST['username']);
    $stmt->execute();
    $stmt->store_result();
    // Store the result so we can check if the account exists in the database.
    if ($stmt->num_rows > 0) {
        $stmt->bind_result($id, $password);
        $stmt->fetch();
        // Account exists, now we verify the password.
        if (password_verify($_POST['password'], $password)) {
            // Verification success! User has loggedin!
            $_SESSION['loggedin'] = TRUE;
            $_SESSION['username'] = $_POST['username'];
            $_SESSION['id'] = $id;
            $_SESSION['title'] = $title;
            $_SESSION['website'] = $website;
            $_SESSION['youtube'] = $youtube;
            $_SESSION['facebook'] = $facebook;
            $_SESSION['paypalemail'] = $paypalemail;
            echo 'Welcome ' . $_SESSION['username'] . '!';
                echo 'Welcome ' . $_SESSION['title'] . '!';
      echo'<a href="/profile.php">My Profile </a>';
        } else {
            echo 'Incorrect username and/or password!';
        }
    } else {
        echo 'Incorrect username and/or password!';
    }
    $stmt->close();
} else {
    echo 'Could not prepare statement!';
}
?>

1 ответ1

1

Откуда берутся переменные $title , $website , $youtube , $facebook , $paypalemail ? Если они хранятся в таблице accounts с теми же именами столбцов, что и имена переменных, которые вы использовали, вам необходимо получить их вместе с идентификатором и паролем.

+ Изменить

if ($stmt = $con->prepare('SELECT id, password FROM accounts WHERE username = ?')) {

в

if ($stmt = $con->prepare('SELECT 
    `id`,
    `password`,
    `title`,
    `website`,
    `youtube`,
    `facebook`,
    `paypalemail` 
FROM accounts WHERE username = ?')) {

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .