ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 &lt; 和 &gt; 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。 ### $_SERVER["PHP_SELF"] 它返回当前执行脚本的文件名。 ~~~ //htmlspecialchars() 在使用PHP_SELF时,防止跨站攻击 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> ~~~ ### 用户提交表单时,要做的2件事 1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行) 2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\) ~~~ //保存错误信息的字段 $nameerr=''; $name=''; //格式化处理函数 function test_input($data){ $data=trim($data); $data=stripslashes($data); return $data; } //传输模式验证 if($_SERVER['REQUEST_METHOD']=='POST'){ //非空验证 if(empty($_POST['name'])){ $nameerr='name is required'; }else{ $name=test_input($_POST['name']); //字符格式验证 if(!preg_match("/^[a-zA-Z ]*$/", $name)){ $nameerr='只允许字母和空格'; } } } } ~~~ ### $_SERVER['REQUEST_METHOD'] 请求方法判断 ### preg_match() 函数检测字符串模式 ### 储存表单输入的信息 ~~~ <input type="text" name="name" value="<?php echo $name;?>"> <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> ~~~ ~~~ <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method='post'> <input type="text" name='name' value="<?php echo $name ?>"><?php echo $nameerr ?> <button>提交</button> </form> ~~~