dws*_*ein 0 html php 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']))
{echo "<b>You're all signed up!</b>}
?></form>
Run Code Online (Sandbox Code Playgroud)
在auto_mail.php我有的文件中:
// 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;
?>
Run Code Online (Sandbox Code Playgroud)
我已经查看了其他一些SO问题(使用$ _SESSION来传输数据),但这不是我想要的.
我想要的只是让用户在输入有效的电子邮件时看到"你们都已注册"; 电子邮件确认电子邮件在后台发送.这段代码感觉笨拙和尴尬.它还会auto_mail.php短暂闪烁页面.
我试图设置<form action="index.php"...,但它不起作用,因为我设置了auto_mail.php你不能直接访问它.
如何使用代码auto_mail.php,这将检查一个有效的电子邮件地址,并发送电子邮件确认,没有既处理$_POST和$_SESSION,或至少使用它们更好?
如果您不希望任何页面重新加载,则必须使用AJAX发送表单,而不是使用表单POST.
如果您使用的是jQuery或Mootools,它们都内置了包装来处理ajax调用.如果没有帮助程序库,您将不得不考虑自己创建XMLHttpRequest.
除此之外,传统上,则可以将用户重定向到"表单提交"页面,或交替,已经形式action发送到同一个页面(在你的情况,index.php以及如果接收有PHP代码来处理表单数据) .