gpt4 book ai didi

PHP elseif 语句用于表单验证并插入到数据库

转载 作者:行者123 更新时间:2023-11-30 00:51:42 25 4
gpt4 key购买 nike

我正在尝试使我的表单验证和数据库插入脚本正常工作,但再次遇到问题。我正在使用 elseif 语句来执行以下操作:

  1. 检查表单是否确实是由用户单击提交按钮提交的,并且所有数据字段均已填写,如果没有,则发出警告并重定向回表单页面(这是似乎唯一有效的部分)

  2. 如果表单已完全填写并单击提交按钮,则连接到 mysql 服务器并选择 db 或 die 并显示错误消息

  3. 如果有到数据库的连接,则将表单数据插入到表中

我可以阻止输入空字段,但仅此而已,其他一切似乎都会中断。我似乎不明白为什么。 tail -f/var/log/apache2/error.log 不显示任何内容。也许我的事情过于复杂了。我一直使用这个网站作为引用和http://www.w3schools.com/php/php_if_else.asp对于 elseif 语法,新手仍然搞砸了。

这是代码:

<?php
//Form fields passed to variables
$manu = mysql_real_escape_string($_POST['inputManu']);
$model = mysql_real_escape_string($_POST['inputModel']);
$desc = mysql_real_escape_string($_POST['inputDesc']);

//Connect to database using $conn
include ('connection.php');

//Insert record into table
$sql = "INSERT INTO gear (`id`,`manu`,`model`,`desc`)
VALUES (NULL,'$manu','$model','$desc')";

//Check for empty fields
if ($_POST['submit'])
{
foreach($_POST as $val)
{
if(trim($val) == '' || empty($val))
{
die();
echo "Please complete all form fields!";
echo "<meta http-equiv='Refresh' content='3; URL=../add.php'>";
//header("Location: ../add.php?error=empty_fields");
}
}
}
elseif (!mysqli_query($conn,$sql))
{
die('Error: ' . mysqli_error($conn));
}
else
{
//echo "1 record added";
echo "Success, You added the ".$manu." ".$model."";
echo "<meta http-equiv='Refresh' content='3; URL=../index.php'>";
}
mysqli_close($conn);
?>

最佳答案

这是有效的代码,但我确信还可以进行一些改进:

<?php
//Connect to database using $conn
include ('connection.php');

//Form fields passed to variables
$manu = mysqli_real_escape_string($conn, $_POST['inputManu']);
$model = mysqli_real_escape_string($conn, $_POST['inputModel']);
$desc = mysqli_real_escape_string($conn, $_POST['inputDesc']);

//Insert record into table
$sql = "INSERT INTO gear (`id`,`manu`,`model`,`desc`)
VALUES (NULL,'$manu','$model','$desc')";

//Check for empty fields
if (isset($_POST['submit']))
{
foreach($_POST as $val)
{
if(trim($val) == '' || empty($val))
{
// echo "Please complete all form fields!";
echo "<meta http-equiv='Refresh' content='3; URL=../add.php'>";
die('Error: Please complete all form fields!' . mysqli_error());
}
}

if (!mysqli_query($conn,$sql))
{
die('Error: ' . mysqli_error($conn));
}
else
{
//echo "1 record added";
echo "Success, You added the ".$manu." ".$model."";
echo "<meta http-equiv='Refresh' content='3; URL=../index.php'>";
}
}
else
{
echo "some error";
}

mysqli_close($conn);
?>

关于PHP elseif 语句用于表单验证并插入到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com