使用javascript进行表单验证后注册失败

使用javascript进行表单验证后注册失败,javascript,php,Javascript,Php,我不熟悉java脚本编码。我有一个登录表单,包含用户名、密码和电子邮件。它会验证其中三个,不会进入下一个“logout.php”页面,甚至不会在id已被获取时发出警报。它只验证文本框的条目。我想先验证表单中的三个条目,然后如果它们是有效的并且id是唯一的,那么点击提交“logout.php”应该会被打开。 下面是我的代码: 注册。php <form method="post" name='registration' onSubmit="return formValidation();"&g

我不熟悉java脚本编码。我有一个登录表单,包含用户名、密码和电子邮件。它会验证其中三个,不会进入下一个“logout.php”页面,甚至不会在id已被获取时发出警报。它只验证文本框的条目。我想先验证表单中的三个条目,然后如果它们是有效的并且id是唯一的,那么点击提交“logout.php”应该会被打开。 下面是我的代码:

注册。php

<form method="post" name='registration' onSubmit="return formValidation();">

<input type="text" placeholder="Id*" required=" "  name="uid">

<input type="password" placeholder="Password*" required=" " name="passid">

<input type="text" placeholder="Emailaddress*" required=" " name="uemail">

<input type="submit" value="Submit" style="font-face: 'Comic Sans MS'; font-size: larger; color: white; background-color: #FFA500; border: 3pt ridge lightgrey">
                        </form>

用于验证的Java脚本代码:

javascript

<script type="text/javascript">
function formValidation()
{
var uid = document.registration.uid;
var passid = document.registration.passid;
var uemail = document.registration.uemail;


if(userid_validation(uid,5,12))
{

if(passid_validation(passid,7,12))
{

if(ValidateEmail(uemail))
{
}
}
}
return false;
}


function userid_validation(uid,mx,my)
{
var uid_len = uid.value.length;
if (uid_len == 0 || uid_len >= my || uid_len < mx)
{
alert("User Id should not be empty / length be between "+mx+" to "+my);
uid.focus();
return false;
}
return true;
}

function passid_validation(passid,mx,my)
{
var passid_len = passid.value.length;
if (passid_len == 0 ||passid_len >= my || passid_len < mx)
{
alert("Password should not be empty / length be between "+mx+" to "+my);
passid.focus();
return false;
}
return true;
}


function ValidateEmail(uemail)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(uemail.value.match(mailformat))
{
//alert("You have entered a valid email address!");
return true;
}
else
{
alert("You have entered an invalid email address!");
uemail.focus();
return false;
}
}

函数formValidation()
{
var uid=document.registration.uid;
var passid=document.registration.passid;
var uemail=document.registration.uemail;
if(userid_验证(uid,5,12))
{
if(passid_验证(passid,7,12))
{
if(ValidateEmail(uemail))
{
}
}
}
返回false;
}
函数userid_验证(uid、mx、my)
{
变量uid\u len=uid.value.length;
如果(uid|len==0 | uid|len>=my | uid|len=my | | passid|len
PHP部分检查id是否已被获取。单击“提交”按钮后,这部分代码不会执行。这部分代码不会显示任何消息

PHP

<?php
session_start();
if(!empty($_POST)) {
    class MyDB extends SQLite3
    {
        function __construct()
        {
            $this->open('trip.db');
        }
    }
    $db = new MyDB();
    if(!$db){
        echo $db->lastErrorMsg();
    } else {

    }
    $id=null;
    $pass=null;
    $email=null;
    $id_exists=false;

    if (isset($_POST['uid'])) {
        $id = $_POST['uid'];
    }

    if (isset($_POST['passid'])) {
        $pass = $_POST['passid'];
    }

      if (isset($_POST['uemail'])) {
        $email = $_POST['uemail'];
    }



    $result= "SELECT COUNT(*) FROM Users WHERE ID = '".$id. "';" ;
    $count= $db->querySingle($result);

    if ($count > 0)
    {
        $id_exists = true;
        echo "This id is not available. Please enter a valid id. ";
    }

    else
    {
        $sql= " INSERT INTO Users (ID, PASSWORD, EMAIL)
          VALUES ('$id','$pass','$email'); " ;
        $ret = $db->query($sql);
        $_SESSION['Id'] = $id;
        header("location:logout.php");
    }


    $db->close();
}
?>  

这是示例代码

功能测试_js(){
如果(document.test\u form.id.value==“”){
警报('输入名称!');
document.test_form.id.focus();
返回;
}否则{
document.test\u form.action=“logout.php”;
文件。测试表格。提交();
}
}


我不想检查文本框是否为空,因为我的javascript代码已经处理过了。现在的问题是,在验证之后,php部分没有运行。我认为您没有用代码编写操作。我也试着用行动来做,但没用:(