2012-06-26 24 views
0

我有一個頁面查詢,將設置爲0或1的表。設置爲1正在工作,但它不會設置爲0.這是代碼片段遠。任何人都可以看到有什麼不對?數據庫沒有更新的「獲取」PHP

頁:

<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(); 
} 

這將設置我t爲0並顯示正確的代碼,但由於某些原因不會回到1。

+1

除了在GET上執行破壞性操作的**巨大**設計缺陷之外, –

+0

@ IgnacioVazquez-Abrams請解釋一下嗎? – dpDesignz

回答

0

setp:$("1").val()需要改變,以setp: "1",因爲它是不應該拉來自任何地方的值

還將$get更改爲$_GET作品

2

它是$_GET而不是$get

並請ATLEAST使用

$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'" 

或者更好的是,使用prepared statements.

+1

可能是'$ get'是自定義數組! @dpDesignz:什麼是$ get? – adatapost

+0

我認爲,但也有可能。可能是他的意思(它有很好的可能性)HTTP/GET。兩種方式,OP必須以適當的解釋更新他的文章。 – SuperSaiyan

+0

謝謝。我從來不知道與$ get和$ _GET有什麼不同。 :)。請參閱編輯的代碼。還是行不通。將變爲0,但不會再回來。 – dpDesignz

1

更新代碼:

  1. 使用$_GET代替$get(1 & 3號線)

  2. 使用該行第一行:

    if ($_GET['cmd'] == 'sprofile') 
    
  3. 使用此線爲您的mysql_query在第三行:

    mysql_query("update users set profile_list='" . mysql_real_escape_string($_GET['setp']) . "' where id='" . mysql_real_escape_string($_GET['id']) . "';"); 
    
+0

謝謝。我從來沒有逃過,但我現在就做。 :)。請參閱編輯的代碼。還是行不通。將變爲0,但不會再回來。 – dpDesignz