如何防止用户在输入框中键入特殊字符由PHP而不是jQuery
How to prevent user for type special charecter in input box by PHP not by jQuery?
我有一个带有 3 个输入框的表单,如下所示:
echo '<form action="" name="frm_chg_pass" method="post">';
echo '<tr ><td class="td1">Dear user</td></tr>';
echo '<tr ><td class="td1"><p>'.$prs_name." ".$prs_family.'</td></tr>';
echo '<tr><td class="td1">you will change your pass word please be careful for keeping it </td></tr>';
echo '<tr><td class="td1">you dont allow for type these charecter: & > < / "'."'".' ; : )= ( ] [ # } { ' .</p></td></tr>';
echo '<tr><td class="td1"><input type="text" id="id_pass_old" name="pass_old" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" required="required" autocomplete="off" /></td><td class="td1"><p>Old Password</p></td>';
echo '<tr><td class="td1"><input type="password" id="id_pass_new" name="pass_new" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" required="required" autocomplete="off" /></td><td class="td1"><p>New Password</p></td>';
echo '<tr><td class="td1"><input type="password" id="id_pass_conf" name="pass_conf" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" required="required" autocomplete="off"/></td><td class="td1"><p>Confirm new password</p></td>';
echo '<tr><td class="td1"><input type="submit" name="btn_change_pass" method="post" value="RegisterChang"/></td></tr>';
echo '</form>';
如您所见,我不希望用户在输入框中插入& > < / "' ; : ) = ( ] [ # } { '
并且不使用 JavaScript 进行检查。如何防止通过 PHP 键入这些内容?
您可以在表单的操作中进行服务器端验证。它应该是这样的:
if (isset($_POST['submit'])) {
if (!ctype_alnum($_POST['INPUTNAME'])) {
$error .= 'Input data should be alpha numeric characters only.';
}
}
使用mysqli_real_escape_string,您可以在 http://php.net/manual/en/mysqli.real-escape-string.php 找到有关其使用情况的信息。它直接内置在 MySQL 扩展中,专门设计用于在将查询传递到数据库服务器之前从查询字符串中转义危险字符。理想的解决方案是使用 Escape 特殊字符来处理 PHP 逻辑中的表单数据,并使用 mysqli_real_escape_string 在将表单数据传递到数据库服务器之前处理查询字符串中的表单数据。至于转义数据作为密码传递给MySQL的问题,只要您在所有数据库过程中使用转义功能,特别是保存密码以及验证密码,那么即使用户在密码中使用特殊字符,密码也会匹配,唯一的区别是,虽然用户可以输入哈希或与号作为其密码的一部分,但数据库保存密码时将使用安全转义字符串,并且每次用户键入密码并根据数据库进行检查时,只要用户提供的字符串以相同的方式转义,它就会匹配。
相关文章:
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 在搜索中考虑特殊字符的
- 清理字符串以避免特殊字符破坏php生成的javascript
- 处理 PHP/JavaScript 中带有特殊字符的 URL
- 如何将文本字段('+<>$“)中的特殊字符保存到数据库中,然后使用 PHP 检索它们
- 在 PHP 中使用邮件函数时正确转义 JavaScript 文档代码中的特殊字符
- 如何防止用户在输入框中键入特殊字符由PHP而不是jQuery
- Json_encode()给出了' '等特殊字符.我如何在PHP中替换它们
- 将特殊字符从php传递到javascript
- 尝试通过JQuery Ajax发送特殊字符到PHP脚本
- Javascript var与特殊字符与AJAX $_GET在php
- PHP中的特殊字符(如omega和beta)字符串匹配
- PHP/jQuery以提交/保存具有所有特殊字符值的输入
- 如何比较包含特殊字符的JavaScript字符串与PHP's htmlentities()编码的字符串
- HTML特殊字符和PHP
- php编码特殊字符
- 编码重音符号和特殊字符PHP
- 如何替换PHP中不需要的字符或特殊字符