0

テーブルを0または1に設定するクエリのページがあります。1に設定しても機能しますが、0に戻されません。これはこれまでのコードのスニペットです。誰かが何が悪いのかわかりますか?

ページ:

<p><? if($_SESSION['user_level'] >= GUARDIAN_LEVEL) { if ($row_settings['profile_list'] == 0) {?> 
                    <a onclick='$.get("dos.php",{ cmd: "sprofile", setp:$("1").val(),id: "<?php echo $row_settings['id']; ?>" } ,function(data){ $("#msgp").html(data); });' href="javascript:void(0);">List</a>
                <?php } else if ($row_settings['profile_list'] == 1) {?>
                    <a onclick='$.get("dos.php",{ cmd: "sprofile", setp:$("0").val(),id: "<?php echo $row_settings['id']; ?>" } ,function(data){ $("#msgp").html(data); });' href="javascript:void(0);">Unlist</a>
                <?php } else {echo "N/A";}} else {echo "N/A";} ?></p>

更新コード:

if($get['cmd'] == 'sprofile')
{
mysql_query("update users set profile_list='$get[setp]' where id='$get[id]'");
echo "Profile Listing Changed";
//header("Location: $ret");  
// exit();
}

編集

更新コード:

if($_GET['cmd'] == 'sprofile')
{
$set = mysql_real_escape_string($_GET['setp']);
$id = mysql_real_escape_string($_GET['id']);
mysql_query("update users set profile_list='" . $set . "' where id='" . $id . "'");
echo "Profile Listing Changed";
//header("Location: $ret");  
// exit();
}

これにより、0に設定され、正しいコードが表示されますが、何らかの理由で1に戻されません。

4

3 に答える 3

2

そうでは$_GETありません$get

そして、少なくとも使用してください

$param = mysql_real_escape_string($_GET['your_param_which_goes_to_building_mysql_query']);
$param2 = //similar..
$query = "update users set profile_list='$param1' where id='$param2'"

または、さらに良いことに、プリペアドステートメントを使用します。

于 2012-06-26T09:23:10.740 に答える
1

更新コード:

  1. (1行目と3行目)$_GETの代わりに使用$get

  2. この行を1行目として使用します。

    if ($_GET['cmd'] == 'sprofile')
    
  3. 3行目のmysql_queryに次の行を使用します。

    mysql_query("update users set profile_list='" . mysql_real_escape_string($_GET['setp']) . "' where id='" . mysql_real_escape_string($_GET['id']) . "';");
    
于 2012-06-26T09:27:45.493 に答える
0

setp:$("1").val()setp: "1"どこからでも値を取得することは想定されていないため、に変更する必要があります

作品$getへの変更も$_GET

于 2012-06-28T02:06:30.137 に答える