mysql_real_escape_string()表示拒绝访问用户'drrifae'@'localhost'

时间:2014-06-01 11:57:17

标签: php mysql linux

我用了mysql_real_escape_string(),在我的localhost上(在我的xampp运行的计算机上)没问题,但当我将它上传到 Linux 服务器函数(mysql_real_escape_string())时说访问被拒绝用户'drrifae'@'localhost'

这是我的代码:

  if($_POST['message']!=""){
        $email=$_POST['email'];
        $name=$_POST['name'];
        $message=mysql_real_escape_string($_POST['message']);
       $ip=$ip = getenv('HTTP_CLIENT_IP')?:
getenv('HTTP_X_FORWARDED_FOR')?:
getenv('HTTP_X_FORWARDED')?:
getenv('HTTP_FORWARDED_FOR')?:
getenv('HTTP_FORWARDED')?:
getenv('REMOTE_ADDR');

include('../include/connection.php');
$sql="INSERT INTO `contact_feedback` (`type`, `ip`, `message`, `name`, `email`) VALUES ('$type', '$ip', '$message', '$name', '$email'); ";
        $result=mysql_query($sql,$con) or die(mysql_query());
        if($result){
            echo $_SESSION['message']='true';
                $mailMessage=wordwrap($message,70);
                $mailMessage.='\n \n'.$email.'\n'.$name.'\n \n'.$ip;
            if($type=='1'){
                $subject="contact";
            }else if($type=='0'){
                $subject="feedback";
             }
            mail('info@rifae.com',$subject,$mailMessage,$email);
        }else{
            $_SESSION['message']='false';
        }
    }

但我不能使用mysql_real_escape_string()

1 个答案:

答案 0 :(得分:0)

$message=mysql_real_escape_string($_POST['message']);
//...
include('../include/connection.php');

您目前使用mysql_real_escape_string() 之前include连接 - 这就是您无权访问的原因。


另请注意,mysql_*函数为officially deprecated,因此不应在新代码中使用。您可以使用PDO或MySQLi。有关详细信息,请参阅this answer on SO。 (如果你按照帖子中的链接,你也会找到关于如何使用的教程。)


mysql_既不是MySQLi也不是PDO,您应该可以通过phpinfo()查看哪些内容可用。