使用PHP会话显示状态消息
我试图在我的联系人表单上方显示提交状态,所以我的计划是使用会话,但它无法正常工作。表单成功提交,页面成功重定向回demo.htm页面(在重定向到index2.php之后),但从未显示任何状态消息 我还打算使用该会话在空白字段上显示必填标记,因为iOS不支持“required”输入标记(html表单的巨大注释块将替换当前表单字段以处理iOS上的必填字段) 更新:echo有点奇怪。。。。它可能与php.ini文件有关(如果是,是什么?) 输入#1: 输入#2: PHP:使用PHP会话显示状态消息,php,html,session,Php,Html,Session,我试图在我的联系人表单上方显示提交状态,所以我的计划是使用会话,但它无法正常工作。表单成功提交,页面成功重定向回demo.htm页面(在重定向到index2.php之后),但从未显示任何状态消息 我还打算使用该会话在空白字段上显示必填标记,因为iOS不支持“required”输入标记(html表单的巨大注释块将替换当前表单字段以处理iOS上的必填字段) 更新:echo有点奇怪。。。。它可能与php.ini文件有关(如果是,是什么?) 输入#1: 输入#2: PHP: HTML: *东西*
HTML:
*东西*
HTML页面不会解析PHP数据/语法,除非通过.htaccess
、httpd.conf
或一些类似的服务器级关联方法明确告知
您正试图在HTML页面中显示PHP会话
数据,除非您告诉HTML页面解释PHP代码,否则这是不会发生的
如果您的demo.htm
只是一个无法处理PHP的HTML页面,那么您将看到输出(包括所有PHP代码),就好像它只是HTML一样
例如:
demo.html(来自您的问题):
*东西*
另外,您在哪里设置$\u会话['status']
?“它工作不正常”?问题是什么?当我粘贴代码时,格式被弄乱了,session_start在两者中都有,并且我在if/else中的php代码末尾设置了“status”。当我提交表单(已成功提交)时,没有显示任何内容。您能否编辑您的问题,为我们提供关于哪些页面是.php
页面以及哪些页面是.htm
页面的指南?我不太清楚您的意思。我将页面标记为PHP/HTML。将其改为.PHP文件会有任何问题吗?如果它不会破坏其他任何东西的功能,我觉得这很好。(当它是.php时,它确实可以很好地工作,谢谢)。只要站点其他部分上的锚定链接具有正确的锚定链接目标名称(file.php
,而不是file.htm
),那么就不会产生任何问题@DJD97好的,很好。谢谢哦,我注意到了一件事。php文件将无法加载,如果页面上任何地方有任何打字错误,因为它不再是html。有没有什么办法可以防止这种情况发生——也就是说,有没有办法让拼写错误所在的元素看起来被破坏,而不是阻止整个页面呈现?另外,我还有一个相关的问题。如果输入不正确,如何防止它清除输入字段?我现在设置的方式是,如果任何字段不正确,index.php文件末尾的else将执行,然后demo.php文件将清空所有字段(以及需要更正的任何字段旁边的通知)@Martin1)请继续阅读。整个页面无法加载,因为PHP发现了致命错误,导致脚本停止运行(或者可能是您的数据处理逻辑有缺陷)。
<p>Text Here</p>
<p><?php echo($_SESSION['status']); ?></p>
<p>Temp</p>
<p id="status">
<?php
if(isset($_SESSION['status'])){
echo("<br/>"$_SESSION['status']."<br/>");
unset($_SESSION['status']);
}
?>
</p>
<p>More text here</p>
Text Here
Temp
"$_SESSION['status']."
"); unset($_SESSION['status']); } ?>
More text here
<?php echo strcmp("Hello world!","Hello world!")."<br/>"; ?>
"; ?>
<?php
session_start();
$firstName = $lastName = $email = $companyName = $jobTitle = $phoneNumber = $comments = "";
$noErrors = true;
if($_POST['submit']) {
if(empty($_POST["firstname"])) { $_SESSION["nameErr"] = "First name is required"; $noErrors=false;}
else { $firstName = $_POST['firstname']; }
if(empty($_POST["lastname"])) { $_SESSION["lastErr"] = "Last name is required"; $noErrors=false;}
else { $lastName = $_POST['lastname']; }
if(empty($_POST["email"])) { $_SESSION["emailErr"] = "Email is required"; $noErrors=false;}
else { $email = $_POST['email']; }
if(empty($_POST["companyname"])) { $_SESSION["companyErr"] = "Company name is required"; $noErrors=false;}
else { $companyName= $_POST['companyname']; }
if(empty($_POST["position"])) { $_SESSION["jobErr"] = "Job title is required"; $noErrors=false;}
else { $jobTitle = $_POST['position']; }
if(empty($_POST["number"])) { $_SESSION["phoneErr"] = "Phone number is required"; $noErrors=false;}
else { $phoneNumber = $_POST['number']; }
$comments = $_POST['comments'];
$header = "From: xxxxx.com";
$to = 'xxxxx.com';
$subject = 'Demo request';
$message = "From: \r\n
Name: $firstName $lastName\r\n
E-mail: $email\r\n
Company Name: $companyName\r\n
Job Title: $jobTitle\r\n
Phone Number: $phoneNumber\r\n
Comments: $comments";
if(($noErrors == true) && mail ($to, $subject, $message, $header)) {
$_SESSION['status'] = "Your message has been sent!";
header('Location: demo.htm');
} else {
$_SESSION['status'] = "Something went wrong, please try again";
header('Location: demo.htm');
}
exit();
}
?>
<?php
session_start();
?>
<!DOCTYPE html><html>
<head>*stuff*</head><body>
<p id="status">
<?php
if(isset($_SESSION['status'])){
$echo $_SESSION['status'];
unset($_SESSION['status'];
}
?>
</p>
<div id="requestADemo">
<p style="line-height: 2%; font-size: 24px; font-weight: 200;">Request A Demo</p>
<p style="line-height: 2%; font-style:italic; font-size: 13px;">*indicates required field</p>
<form method="post" action="index2.php">
<!--p class="demo" style="margin:0;">First Name:*</p>
<input type ="name" name="firstname" required>
<span><?php
if(isset($_SESSION['nameErr'])){
$echo $_SESSION['nameErr'];
unset($_SESSION['nameErr'];
}
?></span>
<p class="demo">Last Name:*</p>
<input type ="name" name="lastname" required>
<span><?php
if(isset($_SESSION['lastErr'])){
$echo $_SESSION['lastErr'];
unset($_SESSION['lastErr'];
}
?></span>
<p class="demo">Email:*</p>
<input type ="email" name="email" required>
<span><?php
if(isset($_SESSION['emailErr'])){
$echo $_SESSION['emailErr'];
unset($_SESSION['emailErr'];
}
?></span>
<p class="demo">Company Name:*</p>
<input type ="name" name="companyname" required>
<span><?php
if(isset($_SESSION['companyErr'])){
$echo $_SESSION['companyErr'];
unset($_SESSION['companyErr'];
}
?></span>
<p class="demo">Job Title:*</p>
<input type ="name" name="position" required>
<span><?php
if(isset($_SESSION['jobErr'])){
$echo $_SESSION['jobErr'];
unset($_SESSION['jobErr'];
}
?></span>
<p class="demo">Phone Number:*</p>
<input type ="number" name="number" required>
<span><?php
if(isset($_SESSION['phoneErr'])){
$echo $_SESSION['phoneErr'];
unset($_SESSION['phoneErr'];
}
?></span>
<p class="demo">Comments:</p>
<textarea name="comments" placeholder="Type Here" rows ="10" columns="50"></textarea>
<p class="demo"><input type="submit" value="Submit" name="submit"></p-->
<p class="demo">First Name:*<br/><input type ="name" name="firstname" required></p>
<p class="demo">Last Name:*<br/><input type ="name" name="lastname" required></p>
<p class="demo">Email:*<br/><input type ="email" name="email" required></p>
<p class="demo">Company Name:*<br/><input type ="name" name="companyname" required></p>
<p class="demo">Job Title:*<br/><input type ="name" name="position" required></p>
<p class="demo">Phone Number:*<br/><input type ="number" name="number" required></p>
<p class="demo">Comments:<br/><textarea name="comments" placeholder="Type Here" rows ="10" columns="50"></textarea></p>
<p class="demo"><input type="submit" value="Submit" name="submit"></p>
</form>
</body>
</html>
<?php
session_start();
?>
<!DOCTYPE html><html>
<head>*stuff*</head><body>
<p id="status">
<?php
if(isset($_SESSION['status'])){
echo $_SESSION['status'];
unset($_SESSION['status'];
}
?>
</p>