防止 php 在 Javascript 验证失败后执行代码,并防止某些字符使用 JS
Prevent php from executing code after Javascript validation fails and prevent some characters with JS
我有一个用户注册表,在用户填写完所有信息后,我提交输入的值:
<?php if (isset($_POST['submit'])) {
echo '<script type="text/javascript">CheckPassword(document.userform.password);</script>';
## connect mysql server
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
# check connection
if ($mysqli->connect_errno) {
echo "<p>Fehler Nummer {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
## query database
# prepare data for insertion
$username = $_POST['username'];
$password = $_POST['password'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
# check if username and email exist else insert
// u = username, e = emai, ue = both username and email already exists
//the rest of the code is not important for this question
在第一行(echo '<script...
)上,我调用以下javascript函数:
<script type="text/javascript">
function CheckPassword(inputtxt)
{
var passw = /^(?=.*'d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/;
if(inputtxt.value.match(passw))
{
alert("check");
return true;
}
else{
alert("!check");
return false;
}
}
</script>
调用工作正常,但如果用户输入了无效的密码,我不想运行其余的 php 代码。
此外,我想防止用户输入特殊字符,例如:",",",..如何在 Javascript 中执行此操作?
你不能这样做,你需要将你的js验证函数移动到表单提交,因为php运行服务器端,而js运行在客户端。当你的js函数执行时,你的php已经在服务器上执行了。
执行此操作的正确方法是在表单提交时调用您的函数。
例:
<form name="test_frm" id="test_frm" action="abc.php" onsubmit="return CheckPassword();">
注意:这只是一个例子
相关文章:
- Regex匹配除“”之外的所有字符;.js”;
- 无法呈现js unicode字符“u1F310”
- 在List.js中使用非英语字符
- node.js可以识别字符模式,但不能识别数字模式
- Javascript键代码捕获非拉丁字符?(还需要在selectize.js中工作)
- js中的字符计数器
- 如何删除↵JS字符串中的字符
- 如何使用JS在中间输入文本中动态插入字符
- 如何替换 js 中的特殊字符
- 用js更改字符代码并显示新字符
- 使用JS找出字符串中字符重复的最简单方法是什么
- JS Regex只允许数字、分号和连字符
- 如何在JS中使用特殊字符,如重音字符
- codemirror js-replaceSelection,只能在我键入字符后看到更改
- d3.js和加载具有特殊字符的数据
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- 在JS中至少匹配1个字符
- 为什么在物质中需要这个字符.js
- 如何从正则表达式中删除第一个字符[JS]
- 使用连字符.js在 dompdf 中进行连字