基本的PHP表单不起作用

时间:2014-09-23 09:09:32

标签: php html

<!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>

按下提交按钮后没有任何反应..如果我没有填写姓名或大学字段,则不会显示错误信息...而且数据库中没有收到填写的信息...任何将提供一些帮助..谢谢提前

4 个答案:

答案 0 :(得分:0)

你应该添加一个动作

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

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

答案 1 :(得分:0)

我认为您所拥有的问题而不是action=""如果它位于同一页面上的问题是您的查询并未说明您想要将每个值放在何处

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

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

答案 2 :(得分:0)

你应该首先检查$ _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';
        }
    ?>

答案 3 :(得分:0)

此代码存在很多问题。

你可以做以下事情来解决问题

1。将帖子特定代码包含在条件

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

2。仅在设置

时显示错误变量

在未发布页面时,未设置$nameerr$collegeerr等表单中使用的错误vraibales。因此,只有在设置它们时才必须显示它们。将它们包裹在if(isset())条件下。

3。删除无用的

不需要的行

正如巴尔默在评论中所说,像$name;$college;这样的行没有用。它们不用于变量声明的目的。你可以删除它们。

4。在

上打开error_reporting

您没有看到这些错误,因为您可能已在php.ini中关闭了错误报告。最好打开它,因为它有助于调试代码。您可以通过访问php.ini并在{.p>上设置display_errors属性来完成此操作

<!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>