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>

mySQL db と対話する 'giveaway_execute.php' の php を次に示します (すべてが送信されます。セキュリティのためにパスワードと 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 エラーが発生しないようにするには、フィールドでを使用することをお勧めします。

最後に、古い mysql_* 拡張機能PDOなどのライブラリを使用することをお勧めします。mysqli

于 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 に答える