您好,我正在尝试将数据传输到mysql后重定向到下一页。我到目前为止
<?php
$name = "";
$email = "";
$msg_to_user = "";
if ($_POST['name'] != "") {
include_once "newsletter/connect_to_mysql.php";
// Be sure to filter this data to deter SQL injection, filter before querying database
$name = $_POST['name'];
$email = $_POST['email'];
$sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'");
$numRows = mysql_num_rows($sql);
if (!$email) {
$msg_to_user = '<br /><br /><span style="font color="FF0000">Please type an email address ' . $name . '.</span>';
} else if ($numRows > 0) {
$msg_to_user = '<br /><br /><font color="FF0000">' . $email . ' is already in the system.</font>';
} else {
$sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime)
VALUES('$name','$email',now() )") or die (mysql_error());
$msg_to_user = '<br /><br /><div style="color=#F47926;">Thanks ' . $name . ', Now lets select what you need.</div>';
$name = "";
$email = "";
}
header("Location: order.php");
}
?>
这会将数据发送到我的数据库,一切都运行良好,但我想将它发送到order.php的另一个页面,已经创建了以继续。我现在得到的表格就在这里
<form style="border:0;padding-left:10px;" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset style="text-align:left;" id="free">
<span style="text-align:left;font-size:30px;color:#F47926;">
Ready to get started?
</span>
<div class="centerForm">
Name:<br />
<input name="name" type="text" maxlength="36" size="35" value="" /><br />
Email:<br />
<input name="email" type="text" maxlength="36" size="35" value="" /><br />
<br /><br /><div style="width:179px;margin-left:auto;margin-right:auto;"><input type="image" src="continue-to-selection.png" name="mySubmitBtn" alt="continue to selection" /></div>
</fieldset>
</form>
电子邮件功能之前有效,但在我开始更改时它停止了工作。我相信这很简单,我相信我能解决它。我的问题是我在向mysql提交数据后尝试重定向,用户转到页面order.php。我需要做的更改应该在表单内还是通过标题:我正在尝试使用的位置。谢谢 注意:我缩短了网址,以便在帖子预览中查看它,所以我知道order.php必须是完整路径。如果我错了,请纠正我,但只是让大家知道我知道,这不是问题。
答案 0 :(得分:0)
我建议您尝试2个方法。 第一个(个人首选)是使用ajax和jquery提交表单,然后显示感谢信息而不刷新页面。之后使用settimeout函数延迟重定向x秒,然后重定向到订单页面。
第二个approche:数据在会话中保存在数据库存储中的成功消息之后。然后在订单页面的标题中,使用基于会话的if语句。如果成功或为真,则在订单页面中显示消息谢谢消息。
如果您想查看所提供解决方案的示例,请与我们联系。
感谢
答案 1 :(得分:0)
这是一个很好的规则 - 避免从php回显HTML。关闭脚本标记编写HTML并继续PHP
同样@vidit是对的。 试试这个
else {
$sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime)
VALUES('$name','$email',now() )") or die (mysql_error());
$msg_to_user = '<br /><br /><div style="color=#F47926;">Thanks ' . $name . ', Now
lets select what you need.</div>';
//$name = "";
//$email = "";
session_start();
$_SESSION['name'] = $name;
$_SESSION['email']=$email;
}
在下一个文件中,您可以使用
获取电子邮件和名称session_start();
$email = $_SESSION['email'];
$name= $_SESSION['name'];
如果您使用PHP&gt; 5.1
,还可以选择PDO作为替代方案此外,添加一些您可以学习的会话处理也不会有什么坏处 这里
干杯!