2009-05-06 20 views
0

PHPスクリプトからmysqlテーブルに行を挿入する簡単で安全なスクリプトを探しています。 http://www.myserver.com/addtosometable.php?1=asdf&2=asdfを呼び出すことによってURL変数をmysqlデータベースに挿入するPHPスクリプトですか?

....

私は

...むしろ私は、これが例のスクリプトを作成し、ベストプラクティスに日付にそれを維持するための良いプラットフォームかもしれないと思った、どのように具体的に求めていませんよ

乾杯

+0

私は、変数のクリーニングなどを含むサンプルスクリプトを開発するかもしれないと思った... – Danny

答えて

2

すべてのURL変数は(変数をGET)配列としてPHPの変数$_GETに入れています。

スクリプトは次のようになり、アレイへのアクセスを持っているでしょうmyfile.php?1=asdf&2=asdf上記のあなたの例を使用する:

array(
    1 => "asdf" 
    2 => "asdf" 
) 

あなた自身のためにこれを見たい場合は、ちょうどあなたのファイルでこれを置く:

print_r($_GET); 

注射を避け、INSERT文を作成するための変数をクリーニングするという簡単な作業が、である必要があります。私はあなたのテーブル構造とそれに特化したものを詳しく知る必要があります。 mysql_real_escape_stringのドキュメントを参照してください。

+1

あなたが渡すコンテンツに特殊文字が含まれている場合は、urlencode/decode関数を見てください。 <スペース、等。 参照:http://br2.php.net/manual/en/function.urlencode.php – Macaubas

+0

私は変数がすでに$ _GETにあるときにデコードされると信じています – nickf

0

MySQL 5を使用している場合、準備された文を使用すると、ほとんどの形式のSQL注入を回避できます。

 

$stmt = $db->prepare("INSERT INTO table (col1, col2) values (?, ?); 
// check for errors 
$result = $stmt->execute($_GET['1'], $_GET['2']); 
// check for errors 

私はあなたがまだXSS(クロスサイトスクリプティング)攻撃を心配する必要が信じているが、それは私の県を超えています。

+0

これはですしかし、DBフレームワークを使用して、右か? – nickf

+0

提供されている例は、実際にはDBフレームワークであるMDB2を使用しています。 mysqli-> prepare()も同様に使うことができますが、MDB2(prepare、execute、fetch)で3に比べて多くのステートメント(prepare、bind_param、execute、bind_result、fetch)が使用されます。 – hapes

+0

MDB2は、 PEARモジュールをインストールすることもできます。 – hapes

関連する問題