Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单操作不起作用_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 表单操作不起作用

Javascript 表单操作不起作用,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有以下html代码: <form action="connect.php" method="get" name="registerForm"> <h3>Not a member yet? Sign Up!</h3> <p>Username:</p><input type="text" name="name" id="registerinput_username">

我有以下html代码:

<form action="connect.php" method="get" name="registerForm">
            <h3>Not a member yet? Sign Up!</h3>
            <p>Username:</p><input type="text" name="name" id="registerinput_username">
                <div id="usernamereq2"><p>Field is required.</p><img src="ximg.png" alt="x"></div>
            <p>Email:</p><input type="text" name="email" id="registerinput_email">
                <div id="emailreq"><p>Field is required.</p><img src="ximg.png" alt="x"></div>
            <p>A password will be e-mailed to you.</p>
            <input type="submit" name="submit" value="Register" id="registersubmit">
</form>
然后我运行一个php函数将输入发布到我的数据库中:

<?php
$con=mysqli_connect("localhost","root","","photoalbum");

$username=$_GET['name'];
$email=$_GET['email'];

$sql="INSERT INTO registration (UserName, Email)
VALUES ('$username', '$email')";

mysqli_close($con);
?>
但是,由于我同时也在运行javascript函数来检查输入是否有效,因此connect.php不会运行

下面是javascript:

function validateFormRegister()
    {
        var email=document.forms["registerForm"]["email"].value;
        var atpos=email.indexOf("@");
        var dotpos=email.lastIndexOf(".");
        var name=document.forms["registerForm"]["name"].value;
        var x=name.length;
            if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
                {
                    alert("Email is invalid.");
                }
            if(x<5){
                    alert("Username is too short! Must be at least 5 characters.");
                }
            if(atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length && x<5)
            {
            return false;
            }
    }
将表单的action参数设置为PHP脚本,并在Submit上的JavaScript事件中执行任何JavaScript处理:

提交表单时,它将触发JavaScript函数,然后验证输入字段并返回布尔结果true或false。表单提交仅在返回值为true时发生,在这种情况下,值被发送到PHP脚本connect.PHP进行进一步处理


还请注意,您的查询容易受到攻击。我建议您在代码中了解并使用它,这样您的代码就不会受到SQL注入攻击

将这些更改为缺少$result=$con->query$sql

$con=mysqli_connect("localhost","root","","photoalbum");    
$username=$_GET['name'];
$email=$_GET['email'];
$sql="INSERT INTO registration (UserName, Email)
VALUES ('$username', '$email')";
$result = $con->query($sql);
mysqli_close($con);
?>

function validateFormRegister()
    {
        var email=document.forms["registerForm"]["email"].value;
        var atpos=email.indexOf("@");
        var dotpos=email.lastIndexOf(".");
        var name=document.forms["registerForm"]["name"].value;
        var x=name.length;
            if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
                {
                    alert("Email is invalid.");
                }
            if(x<5){
                    alert("Username is too short! Must be at least 5 characters.");
                }
            if(atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length && x<5)
            {
            return false;
            }
    return true;
    }

<form action="connect.php" method="get" name="registerForm" onsubmit="return validateFormRegister()">

您的connect.php中的mysqli_查询在哪里?您的问题是什么?顺便说一句:您的查询容易受到SQL注入的攻击您没有调用validateFormRegister函数。
$con=mysqli_connect("localhost","root","","photoalbum");    
$username=$_GET['name'];
$email=$_GET['email'];
$sql="INSERT INTO registration (UserName, Email)
VALUES ('$username', '$email')";
$result = $con->query($sql);
mysqli_close($con);
?>

function validateFormRegister()
    {
        var email=document.forms["registerForm"]["email"].value;
        var atpos=email.indexOf("@");
        var dotpos=email.lastIndexOf(".");
        var name=document.forms["registerForm"]["name"].value;
        var x=name.length;
            if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
                {
                    alert("Email is invalid.");
                }
            if(x<5){
                    alert("Username is too short! Must be at least 5 characters.");
                }
            if(atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length && x<5)
            {
            return false;
            }
    return true;
    }

<form action="connect.php" method="get" name="registerForm" onsubmit="return validateFormRegister()">