不会执行validation.php文件的Include

不会执行validation.php文件的Include,php,mysql,validation,post,Php,Mysql,Validation,Post,我在submit_form_company.php中有一个表单(add_company_form.php),它从POST中获取值,并通过pdo连接将它们发送到mysql。但是我无法让validation.php验证输入。我希望用户保持在同一页上,这就是为什么我在表单中没有操作的原因。代码本身并不完整,还有很多改进可以做,但我现在仍停留在验证上。。通过像我的db.php一样在前面添加validation.php,我是否走上了正确的道路 提交_form_company.php <?php i

我在submit_form_company.php中有一个表单(add_company_form.php),它从POST中获取值,并通过pdo连接将它们发送到mysql。但是我无法让validation.php验证输入。我希望用户保持在同一页上,这就是为什么我在表单中没有操作的原因。代码本身并不完整,还有很多改进可以做,但我现在仍停留在验证上。。通过像我的db.php一样在前面添加validation.php,我是否走上了正确的道路

提交_form_company.php

<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    try {
        include('db.php');
        include('validation.php');

        if(empty($_SESSION["error_message"]) && $_POST['submit_company']) {

            $STH = $conn->prepare("
                    INSERT INTO companies (Name,Notes,OrganizationNumber)
                    VALUES (:Name,:Notes,:OrganizationNumber)");
            $STH->bindParam(':Name', $_POST['Name'], PDO::PARAM_STR);
            $STH->bindParam(':Notes', $_POST['Notes'], PDO::PARAM_STR);
            $STH->bindParam(':OrganizationNumber', $_POST['OrganizationNumber'], PDO::PARAM_INT);
            $STH->execute();
        } elseif ($_SESSION["error_message"] && $_POST['submit_edit']) {
            foreach ($_POST['company'] as $i => $value) {
                $STH = $conn->prepare("
                        UPDATE companies
                        SET Name = :Name,Notes = :Notes,OrganizationNumber = :OrganizationNumber
                        WHERE Id = :Id");
                $STH->bindParam(':Id', $value['Id'], PDO::PARAM_INT);
                $STH->bindParam(':Name', $value['Name'], PDO::PARAM_STR);
                $STH->bindParam(':Notes', $value['Notes'], PDO::PARAM_STR);
                $STH->bindParam(':OrganizationNumber', $value['OrganizationNumber'], PDO::PARAM_INT);
                $STH->execute();
            }

        }
        if(empty($_SESSION["error_message"])){
            echo "<meta http-equiv='refresh' content='0'>";
        }


    }

    catch (PDOException $e) {
        echo $e->getMessage();
    }

}

require("add_company_form.php"); 
$DBH = null;
?>

一个愚蠢的建议,但是尝试使用完整的
你是否尝试过通过在if语句之间回音来调试文件到达的代码步骤?我使用xdebug,这样我就可以跟踪它跳入文件的时间,从我所能看到的情况来看,它没有进入验证。php..它是否输入此if语句:
if($\u SERVER['REQUEST\u METHOD']==“POST”)
?是的,它一路输入所有ifs以执行并输入db。。但由于某些原因,它没有进入validation.php。我不知道我遗漏了什么..它永远不会到达
validation.php
的第一行吗?你能展示一下
db.php
文件的内容吗。我知道这是一件我看不见的简单事情。非常感谢。
<div class="row">
<form class="col-md-4 navbar-form" method="POST" action="" enctype="multipart/form-data">
    <div class="form-group">
        <label class="sr-only" for="Name">Name:</label> <input type="text" class="form-control" name="Name" placeholder="Name"><br />
        <label class="sr-only" for="Notes">Notes:</label> <input type="text" class="form-control" name="Notes" placeholder="Notes"><br />
        <label class="sr-only" for="OrganizationNumber">OrganizationNumber:</label> <input type="text" class="form-control" name="OrganizationNumber" placeholder="OrganizationNumber"><br />
        <input type="submit" name="submit_company" class="btn btn-default" value="Submit">
    </div>
</form>
    <?php
if(!empty($_SESSION["error_message"])){
    echo'<div id="error_message" class="col-md-8">';
    print_alert_error($_SESSION["error_message"]);
    $_SESSION["error_message"] = ""; 
    echo'</div>';   
} ?>-
<?
$error = "";

if(isset($_POST['submit_company'])) {
    $name = $_POST['Name'];
    $notes = $_POST['Notes'];
    $organization_number = $_POST['OrganizationNumber'];

    if (!ctype_alpha(str_replace(array("'", "-"), "",$name))) { 
        $error .= '<p class="error">Name should be alpha characters only.</p>';
    }

}

//Add error message to session
if (!empty($error)){
    $_SESSION["error_message"] = $error;
}
?>
<?php 
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "test";
$conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);