-5

我有时在我的 php wap 网站上遇到一个奇怪的错误!它不是持久的,只是偶尔发生&如果我刷新页面,错误就会消失并出现正常页面。我附上错误截图-

在此处输入图像描述

fun.inc.php 的 172 行是-

return mysql_real_escape_string($str);

我将第 164 行粘贴到第 212 行以便更好地理解

function clean($str)
{
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
$str = str_replace("<",'',$str);
$str = str_replace(">",'',$str);
}
return mysql_real_escape_string($str);
}

function regchars($word){
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
for($i=0;$i<strlen($word);$i++){
$ch = substr($word,$i,1);
$nol = substr_count($chars,$ch);
if($nol==0){
return true;
}
}
return false;
}

function nospace($word){
$pos = strpos($word," ");
if($pos === false){
return false;
}else{
return true;
}
}

function checknumber($word){
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$ch = substr($word,0,1);
$sres = ereg("[0-9]",$ch);
$ch = substr($word,0,1);
$nol = substr_count($chars,$ch);
if($nol==0){
return true;
}
return false;
}

function registerform($ef)
{
$errl = "";
switch($ef)
{

是我的代码问题还是托管服务器的问题?如何防止用户显示此类代码?

4

2 回答 2

1

该函数mysql_real_escape_string需要数据库连接,以便它可以检测正在使用的字符集并正确转义。

但是,您根本不应该使用该库 - 它现在已被弃用。使用PDOmysqli,并在自己插入之前切换到参数化而不是转义值。

PHP似乎也试图以root身份连接到当前数据库。在您建立连接的地方,请记住,与 root 连接是一个坏主意。与您的应用程序工作权限可能最少的用户联系。

于 2013-08-25T14:13:08.257 回答
0

您没有连接到 MySQL。如果你不想用它做一些 SQL 查询,你可以删除这个函数。

于 2013-08-25T13:45:31.090 回答