2
$submit=$_POST['submit'];
$fullname=$_POST['fullname'];
$phone=preg_replace('/[^0-9]/', '', $_POST['phone']);
$phone =  (int) $phone;
$adress=$_POST['city']  . ' ' .  $_POST['district'] . ' ' . $_POST['adress'];
$friends=$_POST['friends'];
$school=$_POST['school'];
$info=$_POST['info'];
$dob = $_POST['year']."-". $_POST['month']."-".$_POST['day'];

最近、私は自分のページに追加しました:

foreach ($_POST as $key => $value) { 
$_POST[$key] = mysql_real_escape_string($value);
}   

すべての $_POST ( http://prntscr.com/22uot ) ID 20mysql_real_escape_string()を自分のページに追加する前に、ID 22 を後でサニタイズしたいと考えています。私のページはすべての変数を db テーブルのフィールドに入れますが、変数に追加したいときmysql_real_escape_string()はフィールドに何も入れません。どうすればいいのかわからない。

4

2 に答える 2

6

マニュアルに明確に示されているように(疑わしい場合は、最初に閲覧する必要があります):

mysql_real_escape_string() を使用する前に MySQL 接続が必要です。そうしないと、レベル E_WARNING のエラーが生成され、FALSE が返されます。link_identifier が定義されていない場合、最後の MySQL 接続が使用されます。

この関数を使用する前に、データベースに接続していることを確認してください。

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
于 2011-06-17T10:39:05.337 に答える
3

この関数を使用するには、次のように、事前にデータベースへの接続を開いておく必要があります。

mysql_connect(...);
$fullname=mysql_real_escape_string($_POST['fullname']);
etc ...
于 2011-06-17T10:38:13.623 に答える