0

次のエラーが表示されます: エラー: SQL 構文にエラーがあります。3 行目の '.98.229)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私のPHPコードでは、次のとおりです。

<?php
$con = mysql_connect("****", "****", "****");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("****", $con);
$ip=$_SERVER['REMOTE_ADDR'];

$sql="INSERT INTO users (fname, lname, email, password, ip)
VALUES
('$_POST[fname]', '$_POST[lname]', '$_POST[email]', '$_POST[password]', $ip)";

if (!mysql_query($sql,$con))
  {
die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con);
?>

何かアドバイス?:)

4

3 に答える 3

3

$ipおそらく'$ip'文字列にする必要があります。

パラメーター化された入力でmysqliまたはPDOを使用する必要があるとあなたに言うのは、私が最後ではないと確信しています。ユーザー入力がクエリ文字列の一部になることを許可することは、セキュリティ上の大きな問題です。

于 2013-02-06T21:57:30.070 に答える
1

あなたは実際にPDOを使用し、あなたがすることをする前にあなたのPOSTをチェックするべきです。あなたはSQLインジェクションに対して完全に脆弱です。

PDOのプリペアドステートメントはSQLインジェクションを防ぐのに十分ですか?

于 2013-02-06T22:00:47.293 に答える
0

IPスキーマの列はどのタイプのフィールドですか?ステートメント内の他の文字列と同じように引用する必要があると思います。

SQLインジェクションPDOに精通していますか?

また、IPアドレスをデータベースに最適に保存する方法について少し調べたいと思うかもしれません。

于 2013-02-06T21:58:57.723 に答える