2016-04-01 11 views
0

通常、私は$ _POSTまたは$ _GETで文字列を送ることができますが、文字列は非常に長くなります(10000値のように)どうすればC#でPHPに非常に長い文字列を送ることができますか?

私はこのエラーを取得します: URL(またはそのようなもの)ので、私のオプションが何であるか教えていただけますか?

私がしたいことは、その文字列を受け取ってデータベース(mysqli)のテーブルに挿入できるようにすることです(私の文字列は次のようになります: "1,4,0​​,5,6,9、.. ..」ここ

は、私が使用してと思っていたPHPスクリプトです:

$conn = mysqli_connect("localhost",$username, $password, $dbname); 

$str = mysqli_real_escape_string($conn,$_POST['arraytile']); 
$numerDeTiles = $_POST['ntiles']; //verylongstting 
$contador = $_POST['contador']; //number of database 
$array = explode(",", $numerDeTiles); 


$query = "insert into grid".$contador." values (NULL,(?));"; 

$stmt = $conn->prepare($query); 
$stmt ->bind_param("s" , $one); 
$conn->query("START TRANSACTION"); 
foreach ($array as $one){ 
$stmt->execute(); 
} 
$stmt->close(); 
$conn->query("COMMIT"); 
mysqli_close($conn); 
?> 

私は、これはOKだと思います(テストされていない)が、私の問題は、私はこの非常に大きな文字列

を受け取る方法です

ありがとうございました!

+0

申し訳ありませんが、私はコードのコメントに間違いを犯しました!非常に長い文字列はntilesではなく「配列タイル」です – MichCAn

+0

あなたのコードはSQLインジェクションに対して脆弱です。また、訂正についてはコメントしないでください。代わりにそれらを質問に編集してください。 – Siguza

+3

大きなデータを送信する正しい方法は 'POST'です。 –

答えて

1

あなたが414を取得しているという事実は、あなたのウリが長すぎるということを意味します。 POSTを使用する代わりにGETリクエストをしていると思われます。 POST変数はURI内にあるのではなく、要求の本文にあるべきです。 Apache/phpはリクエスト本体のサイズにいくつかのサイズ制限を適用するかもしれませんが、10kはうまくいくはずです(確かめたい場合は.iniを調べるか、phpinfo()を実行してください)。

要するに、POSTを使用してください!

関連する問題