基本 PHP 表单不起作用


basic php form not working

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style1.css">
        </head>
    <body>
    <?php
        $name; 
        $college;
        if(empty($_POST["name"])){
            $nameerr="NAME IS REQUIRED";
        }
        else{
            $name=$_POST["name"];
        }
        $course=$_POST["course"];
        if(empty($_POST["college"])){
            $collegeerr="NAME OF COLLEGE IS REQUIRED";
        }else{
            $college=$_POST["college"];
        }
        $email=$_POST["email"];
        $abc=mysqli_connect('localhost','root','','generalinfo') or die('ERROR:COULD NOT          CONNECT TO DATABASE');
        $query="INSERT INTO studentinfo VALUES ('$name','$course','$college','$email')";
        $final=mysqli_query($abc,$query) or die('ERROR ENTERING THE DATA IN DATABASE');
        mysqli_close($abc);
        echo'THANKYOU FOR SUBMITTING THE FORM';
    ?>
    <div id="b">
        <form action=""  method="post">
            <label for="name"><div id="a">name</div></label>
            <input type="text" name="name"></br>
            <div id="c"><?php echo $nameerr; ?></div>
            <label for="course"><div id="a">course</div></label>
            <input type="text" name="course"></br>
            <label for="email"><div id="a">email</div></label>
            <input type="text" name="email"></br>
            <label for="college"><div id="a">college</div></label>
            <input type="text" name="college"></br>
            <div id="d"><?php echo $collegeerr; ?></div>
            <input type="submit" value="submit" name="sub"></br>
        </form>
    </div>
    </body>
</html>

我按下提交按钮后没有任何反应..如果我不填写姓名或大学字段,则不会出现错误消息。此外,数据库中也没有收到填写的信息...任何形式的帮助都将不胜感激..提前致谢

你应该添加一个动作

<form action="form.php" method="post">

然后将表单.php包含在您网站的文件夹中。

我认为如果它们都在同一页面上,您遇到的问题而不是action=""问题是您的查询没有说您希望每个值去哪里

$query="INSERT INTO studentinfo (name, course, college, email) VALUES ('$name','$course','$college','$email')";

尝试将您的查询更改为该查询,但请确保字段名称正确,我只是使用您的变量猜测

您应该首先检查 $_POST 是否为空。然后,您应该保存数据。因此,请使用以下代码:

 <?php
  $collegeerr = $nameerr = '';
  if(isset($_POST) && !empty($_POST)) {
            $name = ''; 
            $college = '';
            if(empty($_POST["name"])){
                $nameerr="NAME IS REQUIRED";
            }
            else{
                $name=$_POST["name"];
            }
            $course=$_POST["course"];
            if(empty($_POST["college"])){
                $collegeerr="NAME OF COLLEGE IS REQUIRED";
            }else{
                $college=$_POST["college"];
            }
            $email=$_POST["email"];
            $abc=mysqli_connect('localhost','root','','generalinfo') or die('ERROR:COULD NOT          CONNECT TO DATABASE');
            $query="INSERT INTO studentinfo(name, course, college, email) VALUES ('$name','$course','$college','$email')";
            $final=mysqli_query($abc,$query) or die('ERROR ENTERING THE DATA IN DATABASE');
            mysqli_close($abc);
            echo'THANKYOU FOR SUBMITTING THE FORM';
        }
    ?>

这段代码有很多问题。

您可以执行以下操作来解决此问题

1. 将帖子特定代码包装在条件中

即使页面未发布,您也在执行后处理代码块。 用于处理 POST 操作的代码必须包装在 if 条件下,该条件检查 POST 数组是否为 empy

2. 仅在设置错误变量时显示错误变量

未发布页面时,不会设置表单侧面(如$nameerr$collegeerr(中使用的错误 vraibal。因此,您必须仅在设置后显示它们。将它们包裹在if(isset())条件下。

3.删除无用的不需要的行

正如Barmer在评论中所说,像$name;$college;这样的台词是没有用的。它们不用于变量声明的目的。您可以删除它们。

4. 打开error_reporting

您没有看到这些错误,因为您可能已在 php.ini 中关闭了错误报告。最好打开它,因为它对调试代码有很大帮助。您可以通过转到 php.ini 并将display_errors属性设置为 on 来执行此操作。

法典

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style1.css">
        </head>
    <body>
    <?php       
        if(!empty($_POST)) {
        
            if(empty($_POST["name"])){
                $nameerr="NAME IS REQUIRED";
            }
            else{
                $name=$_POST["name"];
            }
            $course=$_POST["course"];
            if(empty($_POST["college"])){
                $collegeerr="NAME OF COLLEGE IS REQUIRED";
            }else{
                $college=$_POST["college"];
            }
            if(!isset($nameerr) && !isset($collegeerr)){
                $email=$_POST["email"];
                $abc=mysqli_connect('localhost','root','','test') or die('ERROR:COULD NOT          CONNECT TO DATABASE');
                $query="INSERT INTO studentinfo VALUES ('$name','$course','$college','$email')";
                $final=mysqli_query($abc,$query) or die('ERROR ENTERING THE DATA IN DATABASE');
                mysqli_close($abc);
                echo 'THANKYOU FOR SUBMITTING THE FORM';
            }
        }
    ?>
    <div id="b">
        <form action=""  method="post">
            <label for="name"><div id="a">name</div></label>
            <input type="text" name="name"></br>
            <div id="c"><?php if(isset($nameerr)) echo $nameerr; ?></div>
            <label for="course"><div id="a">course</div></label>
            <input type="text" name="course"></br>
            <label for="email"><div id="a">email</div></label>
            <input type="text" name="email"></br>
            <label for="college"><div id="a">college</div></label>
            <input type="text" name="college"></br>
            <div id="d"><?php if(isset($collegeerr)) echo $collegeerr; ?></div>
            <input type="submit" value="submit" name="sub"></br>
        </form>
    </div>
    </body>
</html>