0

PHPフォームを介してmysqlデータベースに挿入しようとしていますが、最初のフォームフィールドではなく2番目のフォームフィールドのみが入力されているという問題が発生しています。

編集

書き換え後のコードがこちら。

HTML

<form action="submit.php" method="post">
First Name: <input name="first_name" type="text" size="20" maxlength="25"><br>
Last Name: <input name="last_name" type="text" size="20" maxlength="25"><br>
</form> 

PHP

$dbhost  = 'xx';
$dbname  = 'xx';
$dbuser  = 'xx';
$dbpass  = 'xx'; 
$con = mysqli_connect($dbhost, $dbuser, $dbpass);


$first_name = mysqli_real_escape_string($con, $_POST['first_name']);
$last_name = mysqli_real_escape_string($con, $_POST['last_name']);


$query = "INSERT INTO tbl_customerinfotest VALUES ('$first_name','$last_name');";
echo $query;

mysqli_close($con)

データベースは正常に接続しています..しかし、それでも同じ問題です。名が null 値を与えています。$post に印刷すると、次のようになります。 Array ( [first_name] => [last_name] => collingwood

EDITフォーム名を_なしでfirstnameに変更しましたが、今は機能しますか?

また、これは sqli であるため、より安全ですか? セキュリティの次のステップは、準備済みステートメントを使用することですか?

4

3 に答える 3

1

私が見たところ、うまくいくはずですが、あなたが投稿していないコードの一部が混乱していると思います。

PHP のコーディング中は、常に PHP の警告を有効にする必要があります。

他の人が言ったように、データを使用する前にサニタイズする必要があります。これは、不要な入力がないかテストする必要があることを意味します (これは、正規表現関数が非常に便利な場所です)。

また、HTML コードに閉じられていないタグがあります。

<input name="first_name" type="text" size="20" maxlength="25"><br>

する必要があります

<input name="first_name" type="text" size="20" maxlength="25" /><br />
于 2013-05-30T22:23:37.053 に答える