PHP-$\u会话不';t集

PHP-$\u会话不';t集,php,session,Php,Session,我有一个用户登记表。当他们单击create account(创建帐户)时,它将转到insertUser.php页面,该页面将在数据库中插入用户,并将创建一个$_会话[“message”]=“注册完成。继续登录”,以防插入成功。然后,inseuser.php页面重定向到index.php页面,并打开注册表表单,以便用户可以看到消息。但是它显示了未定义索引:message的错误。我在登录表单中也做了同样的事情来显示错误,一切正常,所以我不知道问题出在哪里 以下是我的代码index.php: <

我有一个用户登记表。当他们单击create account(创建帐户)时,它将转到insertUser.php页面,该页面将在数据库中插入用户,并将创建一个$_会话[“message”]=“注册完成。继续登录”,以防插入成功。然后,inseuser.php页面重定向到index.php页面,并打开注册表表单,以便用户可以看到消息。但是它显示了
未定义索引: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');
 }

?>

这就是你写的,因为
,它不会显示您添加的。请删除它,您的代码应该可以正常工作,但您可能仍然有一个警告说消息未定义

但是您的SQL语法非常糟糕,您没有逃避用户输入。
不要相信你的访客

你没看到这里出了什么问题吗?:)永远不要以明文形式存储密码!仅存储密码散列。使用PHP的和。如果您运行的PHP版本低于5.5(我真的希望您不是),您可以使用该库获得相同的功能。警告:您对参数化非常开放,应该真正使用参数化,而不是像那样手动构建查询。特别是因为你根本没有逃避用户的输入@Jeto在安全性方面相当于纯文本。几乎没有什么区别。@Jeto不!事实并非如此。没有任何唯一salt的MD5基本上是模糊的纯文本。那里没有安全措施。搜索MD5彩虹表。不建议取消警告。