0

しばらくの間、phpの結果を動的に並べ替えようとしていますが、何らかの理由で何も実行されません。ドロップダウンの並べ替えフィールドを変更しようとしても、何も起こらず、理解できません。 。

これがphpコードです

        $sortorder = "ASC";
$sortfield = "addon_name";

if(isset($_GET["sortorder"])) {
$sortorder = $_GET["sortorder"];
}
if(isset($_GET["sortfield"])) {
$sortfield= $_GET["sortfield"];
}

        $small_statement = "`addons` WHERE addon_size='small' ORDER BY $sortfield $sortorder";

そしてここにhtmlコードがあります

   <select name="sortorder" onChange="MM_jumpMenu('parent',this,0)">
<option value="?sortorder=ASC">Ascending</option>
<option value="?sortorder=DSC">Descending</option>
</select>

<select name="sortfield" onChange="MM_jumpMenu('parent',this,0)">
<option value="?sortfield=addon_name">Name</option>
<option value="?sortfield=addon_rank">Rank</option>
</select></div><!---end browse_header--->
    <div id="small" class="tab_content">

    <?php 
          $browse_small_query = mysql_query("SELECT * FROM {$small_statement} LIMIT {$startpoint_small} , {$limit}");

          while($row_small = mysql_fetch_assoc($browse_small_query)) : ?>
            <?php extract($row_small);?>

                <div class="addon_wrapper" onclick="location.href='addon_detail.php?eid=<?php print "$estate_id";?> &aid=<?php print "$addon_id";?>';"><div class="addon_header"><?php print "$addon_name";?><?php print "$addon_id";?></div><!---end addon_wrapper---><div class="addon_browse_image"></div><!---end addon_browse_image---></div><!---end addon_wrapper--->
        <?php endwhile ?>

ありとあらゆる助けをありがとう

4

1 に答える 1

0

あなた<option>のは間違った値を持っています。変数の名前は、によって暗示されるため、必要ありません<select name="XXX"。値は次のようになります

<option value="ASC">Ascending</option>
<option value="DESC">Descending</option>

他の2つについても同様です。

内にある値を確認することで、これを自分でデバッグすることもできます$_GET

最後に、このコードはSQLインジェクションに対して脆弱です。これは、2つのパラメーターに必要な値を使用して、誰でも要求を送信できるためです。ホワイトリストを使用するか、標準的な防御アプローチの1つを使用して自分自身を保護する必要があります。

于 2012-06-27T22:15:00.930 に答える