php
2010-12-06 6 views 0 likes 
0

$ kの終わりから$ _GET ['id']値を取り除く必要があります。例name=address158、158はidです。$ _GET ['id']を参照として 'address'からstrlens 158に移動しますか?strlenを文字列の末尾に使用する

foreach($_POST as $k=>$v){ 
     @$select.=" `".mysql_real_escape_string($k)."` = '".mysql_real_escape_string($v)."',"; 
} 
$select = rtrim($select,','); 
$select = "UPDATE load_test SET".$select." WHERE Id=".$_GET['id']; 
mysql_query($select); 
+0

なぜstrlenを使用しますか? – EboMike

+0

2行目のエラーを抑止するのはなぜですか? –

+1

あなたがしていることは、そのような質問に未加工の未化成データを許可しないでください!そのコードはハッキングされるよう求めています。 Googleの「SQLインジェクション」では、クエリで使用するためにデータをサニタイズする方法を学習します。 –

答えて

1

これはおそらく何か?

$k = substr($k, 0, -strlen($_GET['id'])); 

私は識別子が常に文字列の最後にあると仮定しています。あなたの入力がどのように厳密に応じて、ここでのアプローチの

+0

はい、それはいつも最後にあります。ありがとう、私はこれを試してみます。 – acctman

0

たくさん、。

あなたは=文字で分割したい場合は:あなたは=文字を見つけるためにstrposを使用することができ、またはあなたがキーと値を分割するexplodeを使用することができます。

あなたがIDを使用する場合は、IDにstrrposを使用することができます。

関連する問題