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