【发布时间】:2016-10-30 22:16:33
【问题描述】:
我正在尝试在我的联系表单上方显示提交状态,因此我的计划是使用会话,但它无法正常工作。表单成功提交,页面成功重定向回 demo.htm 页面(在重定向到 index2.php 之后),但没有显示任何状态消息。
我还打算使用会话来在空白字段上显示所需的标签,因为 iOS 不支持“必需”输入标签(巨大的 html 表单注释块将替换当前表单字段来处理iOS 上的必填字段)。
更新:echo 发生了一些奇怪的事情......可能是 php.ini 文件的问题(如果是,是什么?)?
输入#1:
<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>
输出#1:
Text Here
Temp
"$_SESSION['status']."
"); unset($_SESSION['status']); } ?>
More text here
输入#2:
<?php echo strcmp("Hello world!","Hello world!")."<br/>"; ?>
输出#2:
"; ?>
PHP:
<?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();
}
?>
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>
<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>
【问题讨论】:
-
你在哪里设置
$_SESSION['status']? -
“它不能正常工作”?有什么问题?
-
粘贴代码时格式混乱了,session_start 都存在,我在 if/else 的 php 代码末尾设置了“状态”。提交表单时没有任何显示(提交成功)。
-
您能否编辑您的问题以指导我们哪些页面是
.php页面以及哪些页面是.htm页面 -
我不太确定你的意思。我将页面标记为 PHP/HTML。