我需要一些帮助才能在我的网站上显示成功消息。
应该发生什么: 您提交一份表格,然后将其发送到我的电子邮箱(所有工作完美无瑕)然后它会带您到我的主页并显示此
[php]
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script>
<style>
#panel,#flip
{
padding:2px;
text-align:center;
background-color:#00BFFF;
border:solid 1px #c3c3c3;
}
#panel
{
padding:20px;
display:none;
}
</style>
<body>
<div id="flip"><b>Submitted!</b> (Click for more)</div>
<div id="panel">Your form has been submitted. If your form required being contacted, you will be contacted ASAP.</div>
</body>
</html>
[/php]
问题是,我需要^才会在您提交表单时出现。截至目前,即使您没有提交表格,也会出现。
在某些人的帮助下,我被告知只有在您单击提交按钮时才使用PHP会话显示它。
编译完我的代码后,我们得到了下面的代码。 &#34;主页:&#34;代表提交按钮带你去的地方,以及它显示&#34;成功的地方!&#34;形成。 &#34;提交表单页面:&#34;是会话启动的页面。有人请告诉我这里有什么问题。
主页:
[php]
<!-- PHP session beginning -->
<?php
session_start();
if (isset($_SESSION["sent"])) {
// Start
?>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script>
<style>
#panel,#flip
{
padding:2px;
text-align:center;
background-color:#00BFFF;
border:solid 1px #c3c3c3;
}
#panel
{
padding:20px;
display:none;
}
</style>
<body>
<div id="flip"><b>Submitted!</b> (Click for more)</div>
<div id="panel">Your form has been submitted. If your form required being contacted, you will be
contacted ASAP.</div>
</body>
</html>
<?php
session_start();
// terminate the session
session_destroy();
?>
<!-- PHP Session end. Displays sent information only when sent -->[/php]
联系提交页面:
[php]
<?php
session_start();
$_SESSION["sent"] = true; // or any value really
?>
[/php]
我真的很感谢你读这篇文章。你可以忽略[php]括号,
联系表格(按要求)
<!--Form start-->
<form name="htmlform" method="post" action="html_form_send.php">
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="first_name">Name *</label>
</td>
<td valign="top">
<input type="text" name="first_name" maxlength="30" size="20">
</td>
</tr>
<tr>
<td valign="top"">
<label for="last_name">Username *</label>
</td>
<td valign="top">
<input type="text" name="last_name" maxlength="30" size="20">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">Skype Username *</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="30" size="20">
</td>
</tr>
<tr>
<td valign="top">
<label for="telephone">Previous Staff Rank</label>
</td>
<td valign="top">
<input type="text" name="telephone" maxlength="30" size="20">
</td>
</tr>
<tr>
<td valign="top">
<label for="comments">Why should we hire you? *</label>
</td>
<td valign="top">
<textarea name="comments" maxlength="1000" cols="25" rows="3"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form><br><br><br>
<!--Form end-->
&#34; html_form_send&#34;是处理这个的代码,这是我开始PHP会话的地方。
答案 0 :(得分:1)
确保在任何内容之前初始化会话。这是错的:
<!-- PHP session beginning -->
<?php
session_start();
必须是:
<?php
session_start();
删除<?php
和session_start();
之间的空格(如果有)。例如,这个:
<?php session_start();
也无效。
答案 1 :(得分:0)
您可以这样做:
文件格式:
<?php
session_start();
if(isset($_POST['email'])){
//sent e-mail etc.
$_SESSION['success_message'] = 'Sent!';
}
?>
<form>
<input type="text" name="email">
...
</form>
主页:
<?php session_start(); ?>
... your content
<?php if(isset($_SESSION['success_message'])): ?>
<p>Message was sent</p>
<?php unset($_SESSION['success_message']; ?>
<?php endif; ?>