Php $\用于检查表单是否已提交的会话变量

Php $\用于检查表单是否已提交的会话变量,php,html,post,session-variables,Php,Html,Post,Session Variables,我有一个名为'index.php'的登录页,其格式如下: <form action="auto_mail.php" method="post"> <input id="signup" class="span8" type="text" placeholder="Your email" name="signup"> <input type="submit"> <?php if (isset($_SESSION['got_it']

我有一个名为'index.php'的登录页,其格式如下:

<form action="auto_mail.php" method="post">
   <input id="signup" class="span8" type="text" placeholder="Your email" name="signup">
   <input type="submit">
   <?php
     if (isset($_SESSION['got_it']))
     {echo "<b>You're all signed up!</b>}
   ?></form>
我已经看了一些其他的SO问题(),但这不是我想要的

我只想让用户在输入有效电子邮件时看到“你们都注册了”;通过电子邮件确认在后台发送的电子邮件。这段代码让人觉得既笨拙又笨拙。它还会短暂地闪烁
auto_mail.php
页面


我试图设置
如果您不想重新加载任何页面,那么您必须使用AJAX发送表单,而不是使用表单
POST

如果您使用的是jQuery或Mootools,它们都内置了包装器来处理ajax调用。如果没有助手库,您将不得不考虑自己创建一个助手库


除此之外,传统上,您可以将用户重定向到“表单提交”页面,或者将表单
操作
发送到同一页面(在您的情况下,
index.php
,并使用php代码处理收到的表单数据)。

如果您不想重新加载任何页面,您必须使用AJAX发送表单,而不是使用表单
POST

如果您使用的是jQuery或Mootools,它们都内置了包装器来处理ajax调用。如果没有助手库,您将不得不考虑自己创建一个助手库


<> P>除此之外,传统上,您可以将用户重定向到“表单提交”页,或者可以将表单“代码>动作<代码>发送到同一页(在您的情况下,<代码>索引.php < /代码>,并且如果接收到PHP代码,可以处理表单数据)。

< P>我认为您应该考虑使用流行的PHP框架之一。我猜您在上面的示例中没有使用任何。好的框架也提供了MVC结构,它允许以一种你们甚至无法想象的简单方式进行类似的操作

将其分解为MVC结构甚至可以使处理
post
发送和显示依赖项和结果变得极其简单。 一开始学习好的框架看起来可能是浪费时间,但相信我——它会很快得到回报


开始时,我建议你看<代码> Kohana框架< /> >或者,如果你有野心,一个代码> SyfFrand框架。

< P>我认为你应该考虑使用一个流行的PHP框架。我猜您在上面的示例中没有使用任何。好的框架也提供了MVC结构,它允许以一种你们甚至无法想象的简单方式进行类似的操作

将其分解为MVC结构甚至可以使处理
post
发送和显示依赖项和结果变得极其简单。 一开始学习好的框架看起来可能是浪费时间,但相信我——它会很快得到回报


首先,我建议你看看
Kohana框架
,或者,如果你是雄心勃勃的人-
Symfony框架
,我不能完全得到你想要的

我想你应该试着确认一个邮件地址(之后?)该表单已经发送。但是您不能通过进行验证的http访问该文件


你有没有考虑过加入auto_mail.php?

我没有完全得到你想要的

我想你应该试着确认一个邮件地址(之后?)该表单已经发送。但是您不能通过进行验证的http访问该文件


你考虑过加入auto_mail.php吗?

我用这种东西让我的网站登录,效果很好。我在jquery和传统的重载中使用ajax,这两种方式都可以。你在index.php上使用过session_start()吗?我用这种东西让我的网站登录,效果很好。我在jquery和传统的重载中使用ajax,这两种方法都有效。你在index.php上使用过session_start()吗?我尝试过使用include,但最终我只是将auto_mail.php中的HTML与index.php中的HTML一起发布。我尝试过使用include,但我最终只是发布了auto_mail.php中的HTML以及index.php中的HTML。
// code scrubbing user input...
$user_email = $_POST['signup'];
session_start();
$_SESSION['got_it'] = '1';
// code sending me an email when someone signs up.
echo <<<EOD
  </b>
  <meta http-equiv="refresh" content="0, url=index.php">
  </div>
  </body>
  </html>
EOD;
?>