2012-05-10 4 views
1

このエラーを介してアンドロイドI camを介してPHPサーバにデータを送信すると、「注意:未定義インデックス:C:\ xampp \ htdocs \ hello.php in 4行目」。数時間後にそれをぶち壊して私は私の問題を解決することができません。AndroidからPHPへのエラー - 未定義のインデックス

hello.php:アンドロイドで

<?php 
mysql_connect("localhost","user","pass"); 
mysql_select_db("mmo"); 
$r=mysql_query("update players set X = '".$_REQUEST['IT']."' where 22=22"); 
if(!$r) 
echo "Error in query: ".mysql_error(); 
mysql_close(); 
header('Refresh: 0.01; URL=http://localhost/hello.php'); 
?> 

更新方法:

public void UpdateSeverWithPlayer() 
{List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("IT","3")); 
try{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://10.0.2.2/hello.php"); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    HttpResponse response = httpclient.execute(httppost); 
    HttpEntity entity = response.getEntity(); 
    is = entity.getContent(); 
    }catch(Exception e){ 
     Log.e("log_tag", "Error in http connection"+e.toString()); 
    }} 

私はアンドロイドのエミュレータ上で作業し、インターネットのアクセス許可を持っているのです。いつものように助けていただければ幸いです。 EDIT 1:問題はアンドロイドにあり、PHPコードではないようです。

+0

パケットスニッファは... ...? –

+0

あなたが投稿したものを見るにはprint_r($ _ POST)を試してください。 );) – Robbie

+0

こんにちは、print_r($ _ POST)がArray()を返すようです。探してくれてありがとうございました。 – jersam515

答えて

1

何らかの理由でクエリ文字列が何らかの理由で送信されていないため、PHP側には$_REQUEST['IT']が存在しません。 var_dump($_REQUEST)を実行して、何が通過しているかを確認します。あるいは、$ _REQUESTを使わない方が良いでしょう。それはやや不安です。あなたのHTTPメソッド_GETまたは_POSTに直接関係するスーパーグローバルを使いやすくする。

また、Refreshヘッダーは非標準です。それは働くだろうが、あなたはそれに頼るべきではない。 HTTPレベルのリダイレクトはLocation:ヘッダーを使用します。リフレッシュ:ノンスタンダードの旧式のNetscape拡張です。

+0

var_dump($ _ REQUEST)はarray(0){}を返します。 – jersam515

+0

次に、クエリパラメータ/フォーム値は送信されません。つまり、エラーはandroid-sideです。 –

+0

ありがとうございます、コードでどう思いますか? – jersam515

関連する問題