Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP表单拒绝提交,错误原因未知_Php_Mysql_Mysqli - Fatal编程技术网

PHP表单拒绝提交,错误原因未知

PHP表单拒绝提交,错误原因未知,php,mysql,mysqli,Php,Mysql,Mysqli,TLDR;我重新调整了PHP注册/登录脚本的用途,以满足我的需要。现在,我犯了错误。我最初的目的是创建一个家庭作业日志,是的,但现在回想起来,这对我来说也是一次学习经验,提高了我的PHP,因为我的PHP知识相当贫乏。我知道这篇文章可能显得含糊不清,但我自己找不到解决办法,所以我来这里寻求帮助 错误是表单根本不会提交,它会显示错误 在编码中配置的给我的消息。我试图消除这个错误, 用其他的方式来摆弄它,但什么都没用。在我看来,什么 将某件事视为错误应该由编码员设置,不是吗 所以,我试图创建一个家庭作

TLDR;我重新调整了PHP注册/登录脚本的用途,以满足我的需要。现在,我犯了错误。我最初的目的是创建一个家庭作业日志,是的,但现在回想起来,这对我来说也是一次学习经验,提高了我的PHP,因为我的PHP知识相当贫乏。我知道这篇文章可能显得含糊不清,但我自己找不到解决办法,所以我来这里寻求帮助

错误是表单根本不会提交,它会显示错误 在编码中配置的给我的消息。我试图消除这个错误, 用其他的方式来摆弄它,但什么都没用。在我看来,什么 将某件事视为错误应该由编码员设置,不是吗

所以,我试图创建一个家庭作业日志,我可以通过一个表单来更新它。我对PHP不是很熟悉,但至少我有足够的编码知识来承担这个项目。由于缺乏PHP编码技能,我找到了一个PHP注册/登录表单,然后根据自己的需要重新设计了该表单。我觉得好像我做的每件事都是正确的,似乎找不到错误,所以我来到这里。我已经多次阅读了代码,并尝试了许多解决方案,但都无济于事

以下是初始PHP代码:

<?php
include_once 'dbconnect.php';
$error = false;

if ( isset($_POST['btn-signup']) ) {

    // clean user inputs to prevent sql injections
    $course_name = trim($_POST['course_name']);
    $course_name = strip_tags($course_name);
    $course_name = htmlspecialchars($course_name);

    $period = trim($_POST['period']);
    $period = strip_tags($period);
    $period = htmlspecialchars($period);

    $teacher = trim($_POST['teacher']);
    $teacher = strip_tags($teacher);
    $teacher = htmlspecialchars($teacher);

    $date_assigned = trim($_POST['date_assigned']);
    $date_assigned = strip_tags($date_assigned);
    $date_assigned = htmlspecialchars($date_assigned);

    $date_due = trim($_POST['date_due']);
    $date_due = strip_tags($date_due);
    $date_due = htmlspecialchars($date_due);

    $description = trim($_POST['description']);
    $description = strip_tags($description);
    $description = htmlspecialchars($description);
    // if there's no error, continue to signup
    if( !$error ) {

        $query = "INSERT INTO homework_assignments(course_name, 
                                                   period, 
                                                   teacher, 
                                                   date_assigned, 
                                                   date_due, 
                                                   description) 

                                                   VALUES(
                                                   '$course_name', 
                                                   '$period', 
                                                   '$teacher', 
                                                   '$date_assigned', 
                                                   '$date_due', 
                                                   '$description', )";
        $res = mysqli_query($dbcon, $query);

        if ($res) {
            $errTyp = "success";
            $errMSG = "Successfully registered, you may login now";
            unset($course_name);
            unset($period);
            unset($teacher);
            unset($date_assigned);
            unset($date_due);
            unset($description);
        } else {
            $errTyp = "danger";
            $errMSG = "Something went wrong, try again later...";   
        }   

    }


}
?>
php也有类似的错误,但我也“修复”了这些错误,并且仍然怀疑我是否犯了错误

以下是dbconnect.php文件:

     <?php

    // this will avoid mysql_connect() deprecation error.
    error_reporting( ~E_DEPRECATED & ~E_NOTICE );
    // but I strongly suggest you to use PDO or MySQLi.

    define('DBHOST', 'localhost');
    define('DBUSER', 'root');
    define('DBPASS', '');
    define('DBNAME', 'school');

    $conn = mysqli_connect(DBHOST,DBUSER,DBPASS);
    $dbcon = mysqli_select_db($conn, DBNAME);

    if ( !$conn ) {
        die("Connection failed : " . mysqli_error());
    }

    if ( !$dbcon ) {
        die("Database Connection failed : " . mysqli_error());
    }
顶部的警告信息来自于最初的开发人员,但是,由于我的知识有限,我实际上不知道如何将其完全转换为那个,或者我是否已经这样做了。我曾试图参考手册,但它只是一本手册,不是指南,这就是为什么我来到这里寻求体验社区的帮助


编辑1:在修复了一些愚蠢的打字错误,并将原始代码返回给我之后,我成功地阻止了错误。系统现在已完全运行。

sql insert语句中有一个错误,在值括号的末尾加了一个逗号:

'$date_assigned', 
'$date_due', 
 '$description', )";
'$date_assigned', 
'$date_due', 
'$description', )"; 
如果您在数据库连接方面有任何其他问题,您可以回显函数mysqli\u connect\u error来了解这是什么问题。它会打印整个错误消息

是的,正如一位对此问题的评论所说,还添加了ini_集合“显示错误”,1;在错误报告之后,您也可以看到常见的php错误消息。另一种方法是使用error_log函数在php控制台上编写调试消息。

1在mysqli_查询行中将$dbcon替换为$conn。因此,它必须是:

$res = mysqli_query($conn, $query);
... '$description' )";
否则,您将收到错误:

警告:mysqli_查询要求参数1为mysqli,布尔值 给定

2在sql语句中,必须删除最后一个逗号。它必须是:

$res = mysqli_query($conn, $query);
... '$description' )";

下面的答案,加上我最初错过但自己设法找到的一些额外代码,帮助我解决了这个问题


sql insert语句中出现错误,在 结束值括号:

'$date_assigned', 
'$date_due', 
 '$description', )";
'$date_assigned', 
'$date_due', 
'$description', )"; 
如果您在数据库连接方面有任何其他问题,可以回显函数mysqli\u connect\u error以了解 那是什么。它会打印整个错误消息

加 ini设置“显示错误”,1;错误报告后

1在mysqli_查询行中将$dbcon替换为$conn


请添加ini\u集合“显示错误”,1;错误报告后,请重试。如果您看到任何错误,请告诉我们,并将其作为“编辑1”发布在您的答案中。这修复了初始未编辑代码中的错误,这意味着表单在我触摸它之前的状态。我把它归结为与unset函数有关。我还发现PHP的一部分对于我来说是不需要的,所以我删除了它,并且在未编辑的版本上功能仍然成功。这个版本是这样的:我将它添加为edit1,因为它太长了。我不明白你的意思。很抱歉你看到我的答案了吗?在真正理解了你的答案的含义后,我现在意识到这个回答听起来有多疯狂。我一次应用了多个解决方案,还以为是你的解决方案让它起了作用。这种反应听起来多么疯狂。。。我的还是你的?:-最后,重要的是你的问题解决了;-祝你好运