15.2.3 构建PHP代码及jQuery代码(2)
下面需要对从客户端以POST形式发送过来的数据进行处理,代码如下所示:foreach($_POST as $key=>$value)
{
$$key=mysql_real_escape_string($value);
}
注意,这里使用了一个循环来处理POST信息中的各个参数,并以其key命名的变量保存对应的value值,本例中,该段代码相当于以下几行。$message=mysql_real_escape_string($_POST['message']);
$action=mysql_real_escape_string($_POST['action']);
使用循环的方式处理,在需要用到的参数比较多的情况下十分有用。在一般情况下,还需要对用户输入的字符进行一些特殊处理,例如上面的mysql_real_escape_string()函数用于转义SQL语句中使用的字符串中的特殊字符,如果成功,则该函数返回被转义的字符串。如果失败,则返回false。addslashes()函数在指定的预定义字符前添加反斜杠,这些预定义字符包括单引号(')、双引号(")、反斜杠(\)、NULL等。
在默认情况下,PHP指令magic_quotes_gpc为on,对所有的GET、POST和COOKIE数据自动运行addslashes()。不要对已经被magic_quotes_gpc转义过的字符串使用addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用get_magic_quotes_gpc()函数进行检测,代码如下所示:if(!get_magic_quotes_gpc())
{
$message=addslashes($message);
}
接下来判断用户请求的事件类型,如果是"postmsg",则将服务器端得到的数据写入数据库,代码如下所示:if(@$action== "postmsg")
{
// 构建SQL语句
$query="INSERT INTO message (message, date) VALUES ('$message', current_ date)";
mysql_query($query) or die('Error, query failed. ' . mysql_error());
}
***将新添加的一条数据以XML的格式显示,代码如下所示:echo "<?xmlversion =\"1.0\"?>\n";
echo "\t\n";
echo "\t\t$message\n";
echo "\t\n";
backend.php文件的完整内容如下所示:<?php
include("config.php");
header("Content-type: text/xml");
header("Cache-Control: no-cache");
foreach($_POST as $key=>$value)
{
$$key=mysql_real_escape_string($value);
}
// 处理信息格式
if(!get_magic_quotes_gpc())
{
$message=addslashes($message);
}
if(@$action== "postmsg")
{
// 准备查询语句
$query="INSERT INTO message (message, date) VALUES ('$message', current_date)";
mysql_query($query) or die('Error, query failed. ' . mysql_error());
}
echo "<?xmlversion =\"1.0\"?>\n";
echo "\t\n";
echo "\t\t$message\n";
echo "\t\n";
?>
【责任编辑:云霞 TEL:(010)68476606】
点赞 0