显示基于PHP会话的内容

时间:2014-12-16 17:20:38

标签: php web

我需要一些帮助才能在我的网站上显示成功消息。

应该发生什么: 您提交一份表格,然后将其发送到我的电子邮箱(所有工作完美无瑕)然后它会带您到我的主页并显示此

[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会话的地方。

2 个答案:

答案 0 :(得分:1)

确保在任何内容之前初始化会话。这是错的:

<!-- PHP session beginning -->
<?php
session_start();

必须是:

<?php
session_start();

删除<?phpsession_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; ?>