简体   繁体   English

PHP MySQLi插入数据验证

[英]php mysqli inseting data validation

I am working on a simple PHP code to insert data to the database, and I want to show a popup message that there are empty inputs, I tried using java script function as shown below but it didn't work, when I click insert it only shows this error: Undefined index: fname, and it insert empty value in the database. 我正在研究一个简单的PHP代码以将数据插入数据库,并且我想显示一条弹出消息,提示输入为空,我尝试使用Java脚本函数,如下所示,但是当我单击插入时它没有用仅显示以下错误:未定义的索引: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();
}
?> 

Where do you use your validateForm() function? 您在哪里使用validateForm()函数? I suppose you use it in a submit button with onclick method, or something like this. 我想您可以在带有onclick方法或类似方法的提交按钮中使用它。 But your return false doesn't work in function because form still send all the data. 但是您的return false在函数中不起作用,因为表单仍会发送所有数据。 You should add return in method like this: 您应该在以下方法中添加return

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

So your form will get return false from function validateForm and will stop sending a form. 因此,您的表单将从validateForm函数return false ,并将停止发送表单。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM