您好,非常感谢所有阅读和回答这篇文章的人。首先,如果这个问题已经得到解答,我感到非常抱歉,但我正在整个网络上寻找这个问题的答案,比如 12 小时,但我没有发现任何问题。所以我的问题如下:我有一个表单、一个脚本和一个 php 部分。由于该网页将有许多表单页面,因此我尝试编写脚本,以便直接从字段中获取需要验证的数据。因此该函数有一个参数。现在,提交按钮被隐藏,我在最后一个字段后使用输入来自动提交表单。即使 javascript 有效(它会在空字段周围创建一个红色边框),当我按下 enter 时,表单仍然通过 php 提交。在我的菜鸟中,我认为问题在于脚本没有返回 true 或 false,或者 onSubmit 有错误,因此它没有通过 true 或 false。我在下面发布代码。非常感谢,再次!
对于表单部分:
<form action="addUser.php" method="post" name="login" onsubmit="return checkField()">
<table border="0" cellpadding="0" cellspacing="0" class="addUser">
<tr>
<td><p class="capRegister">Date de utilizator</p></td>
<td><p class="capRegister">Date de identificare</p></td>
</tr>
<tr>
<td><input class="input1" name="user" type="text" placeholder="alege-ti un nume de utilizator" tabindex="1" onblur="checkField(name)" value="<?php echo $user; ?>"/></td>
<td><input class="input1" name="nume" type="text" placeholder="numele tau" tabindex="4" onblur="checkField(name)" value="<?php echo $nume ?>" /></td>
</tr>
<tr>
<td><input class="input1" name="password" type="password" placeholder="alege-ti o parola" tabindex="2" onblur="checkField(name)" /></td>
<td><input class="input1" name="prenume" type="text" placeholder="prenumele tau" tabindex="5" onblur="checkField(name)" value="<?php echo $prenume; ?>"/></td>
</tr>
<tr>
<td><input class="input1" name="confirma" type="password" placeholder="confirma parola" tabindex="3" onblur="checkField(name)" /></td>
<td><input class="input1" name="interior" type="tel" placeholder="interior" tabindex="6" onblur="checkField(name)" value="<?php echo $interior ?>"/></td>
</tr>
<tr>
<td> </td>
<td><input class="input1" name="mobil" type="tel" placeholder="mobil" tabindex="7" onblur="checkField(name)" value="<?php echo $mobil; ?>"/></td>
</tr>
</table>
<p><input class="submitButton" name="login2" type="submit" value="" /></p>
</form>
现在是脚本部分:
function checkField(x) {
//initializeaza o variabila care pe baza argumentului functiei verifica campurile dupa nume (argumentul contine numele campului)
var continutCamp=document.getElementsByName(x)[0].value;
//variabila pentru footer
var msgJos;
//variabila pentru parola
var tempParola=document.getElementsByName('password')[0].value;
msgJos="";
document.getElementById('bottomBar').innerHTML=msgJos;
document.getElementsByName(x)[0].style.borderStyle='none';
//verifica daca campul este gol
if (continutCamp==null || continutCamp=="")
{
// inconjoara cu o margine rosie eroarea
document.getElementsByName(x)[0].style.borderColor='#FF0000';
document.getElementsByName(x)[0].style.borderStyle='solid';
document.getElementsByName(x)[0].style.borderRadius='4px';
// scrie un mesaj in campul de jos
msgJos='<p id="footerInfo">nu ai completat campul '+ x +'</p>';
document.getElementById('bottomBar').innerHTML=msgJos;
//return false pentru a impiedica procesarea formularului
return false;
}
//daca nu se potriveste parola cu confirmarea
if((name=="confirma")&&(continutCamp!=tempParola))
{
//coloreaza ambele campuri de parola si confirmare cu rosu
document.getElementsByName('confirma')[0].style.borderColor='#FF0000';
document.getElementsByName('confirma')[0].style.borderStyle='solid';
document.getElementsByName('confirma')[0].style.borderRadius='4px';
document.getElementsByName('password')[0].style.borderColor='#FF0000';
document.getElementsByName('password')[0].style.borderStyle='solid';
document.getElementsByName('password')[0].style.borderRadius='4px';
//cod ca sa schimbe continutul footerului cu mesajul potrivit
msgJos='<p id="footerInfo">parolele nu se potrivesc</p>';
document.getElementById('bottomBar').innerHTML=msgJos;
//din nou return false ca sa nu se proceseze formularul daca parola nu e aceeasi
return false;
}
}
最后是 php 部分:
<?php
require_once("localVars.php");
$footerError;
if(isset($_POST['user']))
{
// $dbc=mysqli_connect(USER,PASS,BAZA) or die ('<p id="footerInfo"> Eroare in timp ce ma conectam </p>');
$user=$_POST['user'];
$parola=$_POST['password'];
$nume=$_POST['nume'];
$prenume=$_POST['prenume'];
$interior=$_POST['interior'];
$mobil=$_POST['mobil'];
$query="INSERT INTO users (user, parola, nume, prenume, interior, mobil) VALUES ('$user','$parola','$nume','$prenume','$interior','$mobil')";
// $result=mysqli_query($dbc, $query) or die ('<p id="footerInfo"> Eroare in timp ce bagam datele </p>');
mysqli_close($dbc);
}
else{
$footerError='nu sunt date de introdus';
}
?>
为了不在数据库中发送十亿次尝试,php 对其进行了评论。$_POST 检查用户,但之前确实检查过提交或任何其他字段名称。