登录不创建会话

时间:2014-09-17 14:38:14

标签: php mysql session

我试图登录我的网站,我正在查看数据库,用户名/密码是正确的。登录时,我应该收到一条消息,上面写着" Welcome Ryemck"作为" Ryemck"是我的用户名,但这可以由登录的任何用户名替换。以下代码显示:

<td>Welcome </td>
        <td><i><?php echo $username ['username']; ?></i></td>

然而,我得到的不是那么好的消息&#34;注意:未定义的变量:用户名&#34;,我认为这是因为用户名不能像在此代码中那样设置为变量

$username=$_POST['username'];

我也有这个代码,如果没有输入用户名/密码,应该给我错误,但它没有,所以这不起作用。是&#34; session_start();&#34;不是正确的会话代码?

if (isset($_POST['submit'])) {
    if (empty($_POST['username']) || empty($_POST['password'])) {
        $error = "Username or Password is invalid";

修改

<?php
session_start(); // Starting Session
echo "hello"; 
$error=''; // Variable To Store Error Message
if (isset($_POST['submit'])) {
    if (empty($_POST['username']) || empty($_POST['password'])) {
        $error = "Username or Password is invalid";
    }
    else
    {
        echo "hello";   
        // Define $username and $password
        $username=$_POST['username'];
        $password=$_POST['password'];
        // To protect MySQL injection for Security purpose
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = mysqli_real_escape_string($username);
        $password = mysqli_real_escape_string($password);
        // Establishing Connection with Server by passing server_name, user_id and password as a parameter
        $connection = mysqli_connect("localhost", "root", "");
        // Selecting Database
        $db = mysqli_select_db("game", $connection);
        // SQL query to fetch information of registerd users and finds user match.
        $query = mysqli_query("select * from login where password='$password' AND username='$username'",     $connection);
        $rows = mysqli_num_rows($query);
        if ($rows == 1) {
            $_SESSION['login_user']=$username; // Initializing Session
            header("location: header.php"); // Redirecting To Other Page
        } else {
            $error = "Username or Password is invalid";
        }
        mysqli_close($connection); // Closing Connection
    }
}

?>

4 个答案:

答案 0 :(得分:1)

将其更改为:

<td><i><?php echo $username; ?></i></td>

答案 1 :(得分:1)

$username不是数组,gli必须写:

<td>Welcome </td>
        <td><i><?php echo $username ; ?></i></td>

答案 2 :(得分:1)

我不确定我是否正在阅读此权利您是否希望在该页面顶部开始一个新会话以及该会话中的商店值?。

如果您在页面顶部放置如下内容,则会记住会话变量

if(!isset($_SESSION)){session_start()); 

然后,您将使用

分配会话变量
$_SESSION["userName"] = $_POST["userName"];

要判断是否将其设置为授予对管理控制台的访问权限,您可以执行类似

的操作
if(isset($_SESSION["userName"]) && $_SESSION["userName"] != '')

上述意味着已设置变量,但您可能会将会话userName包装在db函数中以检查有效登录。

答案 3 :(得分:0)

我点击的按钮设置为&#34;登录&#34; ,而isset设置为&#34;提交&#34;
简单地改变单词解决了它。