2013-02-12 51 views
2

有人可以请帮忙,我试图得到列'privellages'(我知道它的拼写错误),以更新我的表'ptb_permissions'当一个链接被点击。在链接点击时将枚举值设置为1?

基本上我已经做过这件事,其他东西的加载和它的工作很好,只是这不工作出于某种原因。

当用户发送查看其图片的请求时,会在其收件箱中通知用户。用户将有两个链接批准或删除请求。

,如果他们点击批准那么这应该更新0枚举科拉姆“privellages”设置为1

这是行不通的。我没有得到任何错误,我只是没有得到任何事情发生。请有人向我展示我要去哪里错误的感谢。

<a href="includes/approve_priv_pix.php?pix=<?php echo $pix['user_id']; ?>">Yes this is ok</a> 

approve_priv_pix.php的内容;

<?php 
require_once("session.php"); 
require_once("functions.php"); 
require('_config/connection.php'); 
approve_pix ($_GET['picture'], $_SESSION['user_id']); 
header("Location: {$_SERVER['HTTP_REFERER']}"); 
?> 

MySQL的功能:

function approve_pix($picture, $user) { 
         global $connection; 
      global $_SESSION; 
         $query = "UPDATE ptb_permissions 
            SET privellages='1' 
            WHERE id=$picture 
            AND to_user_id=$user"; 
      mysql_query($query, $connection); 
       } 

回答

0

$_GET['picture']应该$_GET['pix']

同时仔细检查您的privellages列枚举值。

0
<a href="includes/approve_priv_pix.php?pix=<?php echo $pix['user_id']; ?>">Yes this is ok</a> 

这里有pix作为重点,但在approve_priv_pix.php你是从$_GET['picture']拍照ID。假设它应该替换为$_GET['pix'] 此外,不知道为什么你有链接代码<?php echo $pix['user_id']; ?>。可能它应该是这样的<?php echo $pix['picture_id']; ?>

此外,你的代码打开sql注入。在这里:

$query = "UPDATE ptb_permissions 
      SET privellages='1' 
      WHERE id=$picture 
      AND to_user_id=$user"; 

相反的,你应该做的更好:

$query = "UPDATE ptb_permissions 
      SET privellages='1' 
      WHERE id=" .mysql_real_escape_string($picture) . " 
      AND to_user_id=" .mysql_real_escape_string($user); 

更多mysql_real_escape_string细节。看看该页面顶部的警告消息。 mysql扩展已被弃用,并且很快就会被删除。对于新项目,您最好使用PDO或MySQLi扩展。

另一注意:global $_SESSION;根本不需要。默认情况下,它可以在PHP的任何地方访问。

即时消息没有得到任何错误,我只是没有得到任何东西发生

要见你应该设置error_reporting为E_ALL(在你的ini文件,或直接在代码中)的所有错误。启用此选项后,您将看到所有通知/警告/错误。