php - PHP - $_SESSION 未设置
问题描述
我有一个用户注册表。当他们点击创建帐户时,它会进入 insertUser.php 页面,该页面将在数据库中插入用户并创建一个 $_SESSION["message"]="Registration Complete.Proceed to login" 以防插入成功。然后 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>
插入用户.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');
}
?>
解决方案
<?php if (!isset($_SESSION["message"])) print $_SESSION["message"]?>
那是你写的,它不会因为!
你添加的而显示。请删除它,您的代码应该可以正常工作,但您可能仍会收到一条警告,指出消息未定义。
但是你的 SQL 语法真的很糟糕,你没有逃避用户输入。不要相信你的访客!
推荐阅读
- php - Firebase Auth:如何使用 Laravel 在重定向页面中获取用户电话号码/当前用户?
- .net-core - Entity Framework Core:全局选择过滤器
- asp.net-identity - 如何实现 UserStore.GetClaimsAsync 方法
- javascript - 从字符串中提取单词并拆分
- javascript - TypeError:无法读取未定义的属性“updateOne”
- python - 如何将 sklearn tfidf 矢量熊猫输出转换为有意义的格式
- amazon-web-services - 根据政策无效:额外的输入字段
- apache-kafka - 查找kafka集群中的主题总数
- r - 在R中计算百分比并制作ggplot条形图
- node.js - 删除并重命名 npm 包后,如何使用旧的打字稿打字?