提交到PHP mySQL数据库后的表单重定向

时间:2012-07-20 23:28:03

标签: php mysql html forms redirect

我需要重定向提交内容,以便用户不会进入空白屏幕。

这是我的表单::

的代码
<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数据库交互(一切都提交;删除密码和数据库名称以确保安全性)::

<?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文件但没有任何工作。任何建议都将不胜感激。

谢谢。

3 个答案:

答案 0 :(得分:1)

完成数据库操作后,您可以include另一个页面,或者建议您使用header来电,但请务必使用绝对网址。

另外值得注意的是,您的代码极易受SQL injection攻击,并且不会进行任何验证。

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

最后,建议在较旧的mysql_ *扩展名上使用PDOmysqli等库。

答案 1 :(得分:0)

尝试

header('location:page2.php');

在文件的末尾。

将page2.php替换为您要将其发送到

的实际页面

答案 2 :(得分: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