0

用这个问题的标题尽力而为,但这里......

我为我正在开发的应用程序设置了一个登录页面(使用dreamweaver),如果潜在用户有兴趣,我将要求他们留下他们的电子邮件,我会将其存储在 MySQL 数据库中。

为此,在我的 index.html 页面上,我实现了以下代码:

<form action="email.php" method="post" />    
<p><input type="text" name="email1" />
<input type="submit" value="Submit" />
</p>
</form>

这将为电子邮件和提交按钮创建一个简单的文本输入框。

这当然是链接到包含以下代码的 email.php 文件:

<?php

//I replace these with the correct details    
define('DB_NAME', 'Name');
define('DB_USER', 'User');
define('DB_PASSWORD', 'PW');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . myself_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

echo 'Connected successfully';

$value = $_POST['email1'];

$sql = "INSERT INTO Emails (email) VALUES ('$value')";

if (!mysql_query($sql)) {
    die('Error: ' . mysql_error());
}

mysql_close();

?>

当我查看我的网站时,文本输入框就在那里,我可以输入我的详细信息并提交,这会将该信息发送到我的 MySQL 表,太棒了!但是,浏览器会打开 email.php 文件,即 www.domain.com/email.php,根据我上面的测试代码显示“连接成功”。

我可以在后台实现php代码吗?我不希望在我的登录页面上留下电子邮件的访问者在单击提交时被重定向到新页面,而只是在他们所在的页面上发送友好的感谢信息。

我希望我已经解释得足够好,如果这个答案之前已经在这里破解,我提前道歉。

谢谢!

4

1 回答 1

0

处理 POST 请求时的最佳做法是在保存(数据库)操作完成后将用户重定向到不同的页面。这称为 PRG 模式。 http://en.wikipedia.org/wiki/Post/Redirect/Get

<?php
    // Handle POST here
    header("Location: thankyou.html");
?>

这背后有很多原因,最重要的一个是所谓的“双重 POST 问题”。

也可以看看:

于 2013-07-12T23:38:32.280 回答