2

このコードが機能しない理由を何日も探しています。同じ問題の投稿を検索して、コードを複数回調整しました。

問題: 私の php ファイルは、POST メソッドを介して単純な HTML フォーム (w.bootstrap で作成) から必要な値を取得していないようです。issit 関数を使用して、送信ボタンがクリックされたかどうかを確認し、その後、フォームが完全に入力されたかどうかを確認します。

私はphpに比較的慣れていないことに注意してください。単純なタイプミスではないことを願っています。

PHP コード (bootstrap/php/boeking.php)

<?php

//<!--debug-->

error_reporting(E_ALL);
ini_set('display_errors', '1');


//<!--connectie-->

mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());


//<!--boeking info verzenden-->

if(isset($_POST['send']))

{

if (isset($_POST['achternaam'])) 
{
   $anaam = $_POST['achternaam'];
   // do whatever here
}

if(isset($_POST['voornaam']))
{
$vnaam =  $_POST['voornaam'];

}

}



$anaam = mysql_real_escape_string($anaam);
$vnaam = mysql_real_escape_string($vnaam);


$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";

mysql_query($boek);

?>

HTML コード:

<form id="newbook" method="POST" action="bootstrap/php/boeking.php" class="form-horizontal">
  <legend>Nieuwe boeking</legend>
   <div class="control-group">
      <label class="control-label" for="voornaam">Voornaam</label>
      <div class="controls">
        <input type="text" name="voornaam" id="voornaam" placeholder="Voornaam">
      </div>
   </div>
   <div class="control-group">
      <label class="control-label" for="achternaam">Achternaam</label>
      <div class="controls">
        <input type="text" name="achternaam" id="achternaam" placeholder="Achternaam">
      </div>
    </div>
   <div class="control-group">
      <div class="controls">
        <button type="submit" name="send" class="btn">Sign in</button>
      </div>
   </div>
  </form>

前もって感謝します!

アップデート:

私のphpコードを変更しました。

未定義のインデックス エラーが発生しなくなりました。
Var_dump($vnaam); および var_dump($anaam); 文字列がphpに渡されることを示していますが、その後、クエリが起動されたときに、物事がdbに送信されないようです。

これは私のクエリで問題になる可能性がありますか?

(すでにヒントをありがとう:ボタンに値を与え、var_dumpを使用しました)

これは私の新しいコードです:

<?php

//<!--debug-->

error_reporting(E_ALL);
ini_set('display_errors', '1');


//<!--connectie-->

mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());


$anaam = '';
$vnaam = '';


if(!isset($_POST['send'])) { 

} 
 else
{

if (isset($_POST['achternaam'])) 
{
   $anaam = $_POST['achternaam'];
   // do whatever here

}

if(isset($_POST['voornaam']))
{
$vnaam =  $_POST['voornaam'];


}
var_dump($vnaam);
var_dump($anaam);


    $anaam = mysql_real_escape_string($anaam);
    $vnaam = mysql_real_escape_string($vnaam);

}

var_dump($vnaam);


$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";

mysql_query($boek);

?>
4

5 に答える 5

1

$_POST 変数を var_dump() で出力してデバッグし、何かあるかどうかを確認できます。

何もない場合、値を検索しようとしているページにブラウザーをリダイレクトしていませんか?

何かが設定されている場合、おそらく isset($_POST["send"]) は false を返します。

また、間もなく非推奨となる不適切な mysql_ 関数の代わりに PDO を使用してください。

于 2013-04-23T01:11:14.993 に答える
1

元の投稿で書いた更新に見られるようにコードを調整することで、未定義のインデックスの問題を解決しました。その問題が解決された後、PRIMARY KEY の重複が原因で、クエリは起動を拒否し、データベースにデータを配置しました。これを解決した後、それは魅力のように機能しました。この情報は、同じ問題に直面している人々を助けるのに十分ですか?

とにかく、すべてのレスポンダーに感謝します!

于 2013-04-23T21:52:14.350 に答える