企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
不管是什么类型的编程语言,安全性始终是最重要的,特别是用户在提交数据的时候,如果上传了有破坏性的字符串,当这个字符串被插入到数据库中的时候,就会影响网站的正常的运行,所以非常有必要给用户提交的字符串进行转义处理。 html代码: <form action="" method="post"> 账号:<input type="text" name="user_name"> 密码:<input type="password" name="upwd"> <input type="submit" value="提交"> </form> php代码: //接收上面html代码传进来的值 <?php $user_name = $_POST['user_name']; echo $user_name; ?> 如果用户输入的账号是【fxxy'】,就会出问题,因为php中的单双引号都是成对出现的,现在只有一个单引号字符,插入到数据库就会出错。 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 预定义字符包括:单引号、双引号、反斜杠、NULL。 解决这个问题有2个方法: 1、在php环境中进行相应的配置: 打开php.ini这个文件,找到magic_quotes_gpc,如果它的值是Off,说明默认没有开启字符串自动转义,只需要修改为On即可。 2、如果购买的是虚拟空间,没有权限修改php配置环境,那么接收到用户提交的数据,在插入到数据库之前需要进行判断,如果字符串没有被转义,那么就使用php函数对其进行转义。 <?php /* addslashes() 在预定义字符串前添加反斜杠 get_magic_quotes_gpc() 获得php.ini中是否开启自动转义 */ if(!get_magic_quotes_gpc()){ $user_name = addslashes($_POST['user_name']); } echo $user_name; ?>