0

私はphpを初めて使用します。私はphpで配列を作成し、それをJSONにエンコードしようとしています。これはxmlhttprequest、クライアント側でを使用して受信されます。

しかし問題がある。配列に変数を書き込むことができません。

これが私がやろうとしていることです。

$name=$_GET['username'];
if ( strcmp( $name, 'harry' ) ) {
  $arr['status'] = 'success';
  $arr['name'] = $name;
  echo json_encode($arr);
}

しかし、私がクライアント側でリクエストを行うとき。変数の代わりにnull値を取得します。この値を除いて、配列内の他のすべては問題ありません。

私が得る応答テキストは

{"status":"success","username":null}

値の割り当てで何か間違ったことをしていますか?

ありがとうございました

4

4 に答える 4

2

クライアント側に送信する配列には「username」キーがありません。代わりに $arr['name'] を使用する必要があります

于 2012-05-17T05:56:58.537 に答える
1

このシナリオで strcmp() を使用する利点はわかりませんが、これで問題が解決します

if ( strcmp( $name, 'harry' ) === 0) {

strcmp() の使用法は、ここでは少し直感的であるため、使用できます

if ( $name === 'harry' ) {
于 2012-05-17T05:59:06.860 に答える
0
$name=$_GET['username'];
if ( strcmp( $name, 'harry' )===0 ) {
  $arr['status'] = 'success';
  $arr['username'] = $name; <---------- changed the index in $arr from 'name' to 'username'
  echo json_encode($arr);
}

strcmp2つの文字列が等しい場合は0を返します(大文字と小文字が区別されることに注意してください

于 2012-05-17T06:10:36.823 に答える
0

次のコードは私にとってはうまくいきます...チェックしてください

$name=$_GET['username'];
if(strcmp($name,'harry')==0)
{
$arr['status']= 'success';
$arr['name']=$name;
echo json_encode($arr);
}
于 2012-05-17T06:01:13.323 に答える