1

Androidを介してPHPサーバーにデータを送信すると、「通知:未定義のインデックス:4行目のC:\ xampp\htdocs\hello.phpのIT」というエラーが表示されます。数時間いじった後、問題を解決できません。

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');
?>

Androidの更新方法:

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コードではなくアンドロイドにあるようです。

4

1 に答える 1

1

どういうわけかクエリ文字列を適切に送信していないため$_REQUEST['IT']、PHP 側にはありません。を実行して、var_dump($_REQUEST)何が起こっているかを確認します。または、$_REQUEST を使用しないでください。やや不安です。HTTP メソッド、_GET または _POST に直接関連するスーパーグローバルを使用することをお勧めします。

同様に、Refreshヘッダーは非標準です。それは機能しますが、それに依存するべきではありません。HTTP レベルのリダイレクトは Location: ヘッダーを使用します。Refresh: 非標準の古い学校の Netscape 拡張機能です。

于 2012-05-10T02:54:24.323 に答える