0

我需要重定向提交,以免用户进入空白屏幕。

这是我的表单的代码::

<form action="giveaway_execute.php" method="post">
    First Name:
    <input type="text" name="firstname" /><br />
    Last Name:
    <input type="text" name="lastname" /><br />
    etc...
    ...
    ...
    <p><input type="submit" value="Submit"/>
    </p>
    </form>

这是'giveaway_execute.php'的php,它与mySQL db交互(一切都提交;为安全起见,删除了密码和数据库名称)::

<?php 

define ( 'DB_NAME','xxxx');
define ( 'DB_USER','xxxx');
define ( 'DB_PASSWORD','xxxx');
define ( 'DB_HOST','localhost');

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

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

$db_selected = mysql_select_db(DB_NAME, $link);

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

$value1 = $_POST['firstname'];
$value2 = $_POST['lastname'];
$value3 = $_POST['phone'];
$value4 = $_POST['street'];
$value5 = $_POST['city'];
$value6 = $_POST['state'];
$value7 = $_POST['zip'];
$value8 = $_POST['email'];
$value9 = $_POST['weddingdate'];

$sql = "INSERT INTO entrants (firstname, lastname, phone, street, city, state, zip, email, weddingdate) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7', '$value8', '$value9')";


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

mysql_close();
?>

我已经尝试对 PHP 文件进行重定向,但没有任何效果。任何建议将不胜感激。

谢谢你。

4

3 回答 3

1

完成数据库操作后,您可以只是include另一个页面,或者按照建议您可以使用header调用,但请务必使用绝对 url。

另外值得注意的是,您的代码极易受到SQL injection.

isset如果未设置字段,最好在字段上使用以避免收到通知和 SQL 错误。

最后,建议使用诸如PDOmysqli超过旧的 mysql_* 扩展的库。

于 2012-07-20T23:34:32.850 回答
0
// process.php
$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
if(isset($_POST['value'])){
  error_log(print_r($_POST,1),0);
  $db->query('INSERT INTO test (id, value) VALUES (NULL, "'.$_POST['value'].'")');
  header('Location: http://google.com');
  exit();
}
else {
  echo "$_POST is not set.";
}

// form.php
<form action="process.php" method="post">
  <input type="text" name="value">
  <input type="submit" id="submit-btn" value="Submit">
</form>

尝试一些更简单的东西并从那里构建。另请阅读:http ://www.php.net/manual/en/pdo.prepared-statements.php

于 2012-12-14T01:15:13.413 回答
0

尝试

header('location:page2.php');

在文件的末尾。

将 page2.php 替换为您要将它们发送到的实际页面

于 2012-07-20T23:30:11.700 回答