PHP-未设置$ _SESSION

时间:2019-01-13 12:33:31

标签: php session

我有一个用户注册表。当他们单击创建帐户时,将转至insertUser.php页面,该页面将用户插入数据库,并创建$ _SESSION [“ message”] =“注册完成。如果成功完成插入,则继续登录”。然后,inserUser.php页面将在注册表单打开的情况下重定向到index.php页面,以便用户可以看到该消息。但是它显示错误Undefined Index: message。我在登录表单中做同样的事情以显示错误,并且一切正常,所以我不知道出了什么问题。

这是我的代码index.php:

<div class="register-form">
    <form action="insertUsers.php"  method="POST" id="formregisto" name="formregisto">
            <div>
            <input type="text"  name="username" placeholder="Nome de Utilizador" required/>
            </div>

            <div>
            <input type="email" name="email" placeholder="E-mail" required/>
            </div>
            <div>
            <input type="password" name="password" id="password" placeholder="Password" required/>
            </div>
            <div id="message"><?php if (!isset($_SESSION["message"])) print $_SESSION["message"]?> </div>
            <div>
            <input type="submit" name="criar" value="Create Account"/>
            </div>
    </form>
</div>

insertUsers.php:

<?php
    include "include/config.php"; 

 $username= $_REQUEST['username'];
 $email= $_REQUEST['email'];
 $password= md5($_REQUEST['password']);

 if( !empty ($username) AND !empty ($email) AND !empty ($password)){
    $sql="insert into users(email, username, password) values ('$email', '$username','$password')"; 


    $result=mysqli_query($link, $sql);


if ($result)
    $_SESSION["message"]= "Registration Complete. Proceed to login";
     header('Location: index.php?openr=1');

 } else {
     $_SESSION["message"]= "Something went wrong, try again";
     header('Location: index.php?openr=1');
 }

?>

1 个答案:

答案 0 :(得分:0)

<?php if (!isset($_SESSION["message"])) print $_SESSION["message"]?>

这就是您编写的内容,由于您添加的!而不会显示。请删除它,您的代码应该可以正常工作,但是您可能仍然会收到警告,指出该消息未定义。

但是您的SQL语法确实很糟糕,您没有逃避用户输入。 不要相信您的访客!