php - 使用 MySQL 和 PHP 显示用户信息

标签 php mysql

再次登录后,我在显示用户注册时输入的信息时遇到问题。注册后,信息将正确显示在我的帐户页面上,但当我注销并重新登录时,信息就会消失。我如何访问用户登录时的信息?

这是我的用户注册。

<?php

include 'global_settings.php';

function NewUser() { 
    $firstName = $_POST['firstName'];
    $lastName = $_POST['lastName'];  
    $email = $_POST['email']; 
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = "INSERT INTO userlogin (firstName, lastName, email, username, password) VALUES ('$firstName', '$lastName', '$email', '$username', '$password')"; 
    $data = mysql_query ($query)or die(mysql_error()); 
    if($data) { 
        session_start();
        $_SESSION["firstName"] = $firstName;
        $_SESSION["lastName"] = $lastName;
        $_SESSION["userName"] = $username;
        $_SESSION["email"] = $email;
        header("Location: ../chooseyoursport.php");
    } 
}
NewUser();

function SignUp() { 
    if(!empty($_POST['username'])){ //checking the 'user' name which is from Sign-Up.html, is it empty or have some text 
        $query = mysql_query("SELECT * FROM userlogin WHERE Username = $username AND Password = $password") or die(mysql_error()); 
        if(!$row = mysql_fetch_array($query) or die(mysql_error())) { 
            newuser(); 
        } else { 
            echo "SORRY...YOU ARE ALREADY REGISTERED USER..."; 
        } 
    } 
} 
if(isset($_POST['submit'])) { 
    SignUp(); 
}
?>

这是我的用户登录信息。

<?php
    error_reporting(0);
    session_start();
    include 'global_settings.php';

    //Convert POST to normal variables
    $password = $_POST['password'];
    $username = $_POST['username'];

    $sql = mysql_query("SELECT * FROM userlogin WHERE Username='$username' AND Password='$password'");
    $login_check = mysql_num_rows($sql);

    // if login_check is greater than 0 then it will register a session (meaning if the user exists username and password are both correct)

    if($login_check > 0){
        while($row = mysql_fetch_array($sql)){
            foreach( $row AS $key => $val){
                $$key = stripslashes($val);
            }
            session_start();
            $_SESSION["firstName"] = $firstName;
            $_SESSION["lastName"] = $lastName;
            $_SESSION["userName"] = $username;
            $_SESSION["email"] = $email;
            header("Location: ../chooseyoursport.php");
            //echo "It worked";
        }
    } else {
        echo "You could not be logged in! Either your username or password is incorrect <br> Please try again!";
    }


?>

最佳答案

1) $$key = stripslashes($val);双倍$$

2) 您放入 $_SESSION 的数据为空;

3) session_start();一个程序空间内 2 次

4)以及上面这些人所说的所有其他内容

        foreach( $row AS $key => $val){
            $$key = stripslashes($val);
        }
        session_start();
        $_SESSION["firstName"] = $firstName;
        $_SESSION["lastName"] = $lastName;
        $_SESSION["userName"] = $username;
        $_SESSION["email"] = $email;
        header("Location: ../chooseyoursport.php");

关于php - 使用 MySQL 和 PHP 显示用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34229766/

相关文章:

php - 使用另一个 symfony2 项目作为供应商

javascript - 将很长的变量从 PHP 传递到 Javascript

php - 更改悬停时的背景颜色,jquery

java - Java备份MySQL数据库

php - MYSQL 匹配文本字段

php - 一种将数组及其键保存到数据库的有效方法

mysql - 更新 MySQL 数据库中所有表的 AUTO_INCREMENT 值

php - 根据当前 session 选择计数并集

php - 连接到 unix :/var/run/php5-fpm. sock 失败。我的设置有什么问题?

mySQL脚本超时