Php 使用会话返回消息只返回一条消息
所以我有一张报名表。一个是Php 使用会话返回消息只返回一条消息,php,html,mysql,forms,validation,Php,Html,Mysql,Forms,Validation,所以我有一张报名表。一个是register.php,它是实际的形式。另一个是处理它的r.php。因此,我使用会话将错误消息从r.php发送到register.php。问题是出于某种原因,我只能知道如何显示一个 这段代码基本上将消息发送到register.php,然后我用 <?php echo isset($_SESSION['name_req']) ? $_SESSION['name_req'] : '';?> 问题是,如果一次只显示一个错误,我想一次显示所有错误。有什么想法吗
register.php
,它是实际的形式。另一个是处理它的r.php
。因此,我使用会话将错误消息从r.php
发送到register.php
。问题是出于某种原因,我只能知道如何显示一个
这段代码基本上将消息发送到register.php
,然后我用
<?php echo isset($_SESSION['name_req']) ? $_SESSION['name_req'] : '';?>
问题是,如果一次只显示一个错误,我想一次显示所有错误。有什么想法吗 仅使用您提供的代码,页面将重定向。如果只发现一个错误,请尝试以下操作:
if(isset($_POST['submitbuttonname']) && $_POST['submitbuttonname'] == "submitbuttonvalue") {
if($name === ''){
$_SESSION['name_req'] = 'Make sure to enter a name';
}
if($name > 255){
$_SESSION['name_len'] = 'Enter a shorter name';
}
header('Location: register.php');
exit();
}
但是,如果使用javascript提交表单,submit按钮将不起作用,相反,您可以使用一个隐藏的输入,输入您想要的任何名称和值
$sessionValue = array();
$redirectTo = "register.php";
if($name === '')
{
$sessionValue[] = 'Make sure to enter a name';
}
if($name > 255)
{
$sessionValue[] = 'Enter a shorter name';
}
$impSessionVal = implode("|",$sessionValue);
if($impSessionVal!="")
{
$_SESSION["errormsg"] = $impSessionVal;
header("Location: $redirectTo");
exit();
}
显示错误时,使用|分解会话消息并获取单个消息。退出()后的所有代码都不会执行。!所以如果我摆脱它,它应该是好的@BellashSession变量在浏览器窗口打开时(如果未手动编辑)保持不变。请确保在代码中的某个位置取消设置会话,否则如果没有错误,甚至可能会显示消息。可能是输入错误,但您缺少
strlen()
在您的$name长度检查中。我知道我正在使用
将其取消设置@MarkNijboerHow您建议我检查表单是否已提交?如果提交按钮有名称,只需根据表单的方法检查$u POST['name']或$u GET['name']。我会更新答案。或者他可以使用if(!empty($\u POST)){
这意味着已经提交了任何表单。注意:不适合多表单页面…所以类似这样的内容?if(isset($\u POST['name']))
ya如果可以的话,还要确保表单设置为post而不是get。您可以使用$\u request以任何方式获取表单,但最好至少在初始检查时使用post或get。
$sessionValue = array();
$redirectTo = "register.php";
if($name === '')
{
$sessionValue[] = 'Make sure to enter a name';
}
if($name > 255)
{
$sessionValue[] = 'Enter a shorter name';
}
$impSessionVal = implode("|",$sessionValue);
if($impSessionVal!="")
{
$_SESSION["errormsg"] = $impSessionVal;
header("Location: $redirectTo");
exit();
}