4

評価システムを作成していて、情報が$_GET変数を介して送信されていません。コードは以下のとおりです

    if (isset($_GET['item'], $_GET['rating'])){
echo 'Works!';
}

変数は以下のこのコードに入力されています

  <?php echo number_format( 
        $article['rating'],1); ?>
        <div class = "rate">
            Rate:
            <?php
            for ($x =1; $x<= $maximum_rating; $x++){
            ?>
                <a href="prestige.php?item=<?php echo $article['id']; ?>&rating=<?php echo $x;?>">
                <?php echo $x; ?></a>
            <?php
            }
            ?>

私はプログラミングにかなり慣れていないので、アイデアやヒントをいただければ幸いです。

4

2 に答える 2

4

あなたがしなければならないことがいくつかあります。

1. 代わりに

prestige.php?item=<?php echo $article['id']; ?>&rating=<?php echo $x;?>

使用する

prestige.php?<?= http_build_query(array('item' => $article['id'], 'rating' => $x), '&amp;') ?>

これにより、パラメータがエスケープされます。変数$article['id']および$xHTMLまたはURLを壊す文字を含めることができます。

2. Firebug/Chrome開発ツールバーの[ネット]タブを確認します。リダイレクトはありますか?どのヘッダーが送信されますか?

また、アドレスバーを見て、prestige.phpにGETパラメーターが実際にロードされているかどうかを確認します。

3. XDebug などのデバッグツールを使用して、コードをステップ実行します。$_GETvarsをリセットするコードがあるかもしれません。個人的にはIDEPHPedを使用していますが、少し高価です。

于 2012-10-04T21:00:18.047 に答える
2

あなたが投稿したコードは機能します。したがって、問題は投稿しなかったコードに含まれている必要があります。

  1. prestige.phpページにPHPエラーがあり、何も表示できない可能性があります。だけを含む空のファイルから始めます<?php echo 'OK so far'; ?>
  2. このページには、$ _ GETを強制終了するコード(セキュリティチェック、フレームワークなど)が含まれている可能性があります。(インクルード/必須なしで、ページを最小限の作業ケースに縮小します)
  3. ページは機能するかもしれませんob_end_clean()、実際の出力が開始される前に「ページをクリーンアップ」することを目的としたタイムリーでない出力が表示されます。(ページを最小限の作業ケースに縮小します)
  4. ページが機能している可能性があります。文字列「Works」はありますが、HTMLマークアップ、CSS、またはその他のレンダリングの問題のために表示されません(ページソースを確認してください)
  5. アイテムコードに無効なURL文字が含まれているため、URLが壊れている可能性があります(ブラウザのアドレスバーに表示される内容を確認してください)
  6. 干渉するURL書き換えスキームがある可能性があります(.htaccessとサーバーログを確認してください)
  7. URLの国際文字でこのようなことが起こったことを思い出しました。ASCIIクリーンなアイテムコードを試して、何が起こるかを確認してください。
  8. auto_prepend念のために言っておきますが、干渉する可能性のあるファイルがないことを確認してください。

次に、それはまた、一緒に作用する上記の1つ以上である可能性があります。多くの場合、デバッグ時に意図せずに一部のコードが破損し、最初のバグを修正した後でも、コードが再び機能し始めません。これは、修正が無効であったことを意味するものではありません。

ごめんなさい-私は私の選択肢の終わりにいます。その理由を知るのを本当に楽しみにしています。(通常、私が蓄積する説明が多ければ多いほど、本当の答えは「上記のどれでもない」になる傾向があります。それが私に起こったとき、時々私はグレムリンを信じ始めるかどうか疑問に思います:-()。

于 2012-10-04T21:05:23.003 に答える