我有这个表格,它应该将信息发送到数据库进行用户名搜索。我正在为学生宿舍里的私人服务器提供搜索功能。我们有一个用户名<lol>
的家伙,似乎我们无法搜索他。其他用户名搜索就好了。我错过了什么?
这是form.php文件:
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="//cdn.jsdelivr.net/jquery.validation/1.13.1/jquery.validate.js"></script>
<script src="//cdn.jsdelivr.net/jquery.validation/1.13.1/jquery.validate.min.js"></script>
<script src="//cdn.jsdelivr.net/jquery.validation/1.13.1/additional-methods.js"></script>
<script>
$(document).ready(function() {
$('#checkForm').validate({
rules: {
IpSearch: {
ipv4:true,
require_from_group: [1, ".required_group"]
},
UserName: {
minlength: 3,
require_from_group: [1, ".required_group"]
}
},
submitHandler: function(form) {
console.log( $("#checkForm").serialize());
$('#results').text( $("#checkForm").serialize());
$.post('file.php', $("#checkForm").serialize(), function(data) {
$('#checkResult').html(data);
});
}
});
});
</script>
</head>
<body>
<form role="form" id="checkForm" name="checkForm" method="post">
<div class="form-group">
<label>Internal IP:</label>
<input id="IpSearch" name="IpSearch" placeholder="Enter IP" class="form-control optional required_group" type="text">
</div>
<div class="form-group">
<label>Username</label>
<input id="UserName" name="UserName" value="<?php if(!empty ($_POST) && isset($_POST['checkThis'])){echo $_POST['checkThis']; } else{}?>" placeholder="admin" class="form-control optional defaultInvalid required_group" type="text">
</div>
<button id="search" name="search" value="doSearch" class="btn btn-info">Search</button>
</form>
<div id="results"></div>
<div id="checkResult"></div>
</body>
</html>
这是file.php的开头:
<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";
// .... continues but irrelevant since I'm not getting any post data
点击按钮后,我在浏览器控制台中看到了这个:
"IpSearch=&UserName=%3Clol%3E&search=doSearch"
在#results上我得到: IpSearch =安培;用户名=%3Clol%3E&安培;搜索= doSearch
在#checkResult上我得到了:
array(3) {
["IpSearch"]=>
string(0) ""
["UserName"]=>
string(5) ""
["search"]=>
string(8) "doSearch"
}
答案 0 :(得分:0)
尝试vardumping $ _GET
var_dump($_GET)
并在此处发布结果:)
看起来您的脚本不会阻止默认操作,并且表单仍然会被提交
答案 1 :(得分:0)
它没有显示<lol>
因为它在jquery打印时考虑了HTML标记。
你必须在打印之前转义html实体。
所以更改此行:$('#checkResult').html(data);
改为$('#checkResult').text(data);
因此,这将打印<lol>
作为文字而不是html