Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 php mysqli插入数据验证_Javascript_Php_Mysqli - Fatal编程技术网

Javascript php mysqli插入数据验证

Javascript php mysqli插入数据验证,javascript,php,mysqli,Javascript,Php,Mysqli,我正在编写一个简单的PHP代码,将数据插入数据库,我想显示一条弹出消息,显示有空输入,我尝试使用如下所示的java脚本函数,但它不起作用,当我单击insert时,它只显示以下错误:未定义索引:fname, 并在数据库中插入空值 <script> function validateForm() { var x = document.forms["myForm"]["fname"].value; if (x == "") { alert("Name must be filled

我正在编写一个简单的PHP代码,将数据插入数据库,我想显示一条弹出消息,显示有空输入,我尝试使用如下所示的java脚本函数,但它不起作用,当我单击insert时,它只显示以下错误:未定义索引:fname, 并在数据库中插入空值

<script>
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (x == "")
{
    alert("Name must be filled out");
    return false;
}}
</script>

<form name="myForm" action="test.php" method ="post"  autocomplete="off">
<div align='center'>
<div id="main">
<br>
<b>ادخل اسمك:</b> <input type="text" name="fname" value=""><br>
</html>
<?php
if(isset($_POST['submit'])  && !empty($_POST))
{
$Name = $_POST['fname'];
$SQL = "INSERT INTO userTable (user_name) VALUES ('$Name')";

if ($conn->query($SQL) === TRUE) {

header("Location: test2.php"); /* Redirect browser */
exit();
} else {

echo '<script type="text/javascript">',
 'validateForm();',
 '</script>';
} 
$conn->close();
}
?> 

函数validateForm(){
var x=document.forms[“myForm”][“fname”].value;
如果(x==“”)
{
警告(“必须填写姓名”);
返回false;
}}

ددسسك:

在哪里使用
validateForm()
函数?我想您可以在submit按钮中使用
onclick
方法,或者类似的方法。但是您的
返回false
在函数中不起作用,因为表单仍然发送所有数据。您应该在如下方法中添加return

<form name="myForm" onsubmit="return validateForm()" action="test.php" method ="post"  autocomplete="off">


因此,您的表单将从函数validateForm中获得
return false
,并将停止发送表单。

如果未关闭
,则在已有输出时尝试重定向。不检查是否设置了
$\u POST['fname']
。也许您应该一步一步地调试代码。最重要的是:您对SQL注入非常开放:您不能在SQL查询中使用原始用户输入。看一看prepared语句我在上面的代码中关闭了表单,但仍然是相同的错误,您混合了php代码和js代码。验证函数是一个js脚本,您尝试从php执行该函数。这行不通。您必须使用php进行验证