首页 > 解决方案 > 未定义的索引错误PHP,验证不起作用

问题描述

在将公司详细信息添加到数据库之前,我正在验证一个表单,但我不断收到一个未定义的错误,并且在一个小时没有取得任何进展后我放弃了。数据验证似乎也不起作用,但无论它是否通过验证,数据仍然会插入到数据库中。任何帮助将不胜感激!

表单页面:

    <?php 
$comName_err = $comAddress_err = $comProvince_err = $comCity_err = $comZIP_err = $comStatus_err = $comChecked_err = "";
$comName_err = $_SESSION['comName'];
$comProvince_err = $_SESSION['comProvince'];
$comAddress_err = $_SESSION['comAddress'];
$comCity_err = $_SESSION['comCity'];
$comStatus_err = $_SESSION['comStatus'];
$comZIP_err = $_SESSION['comZIP'];
$comGridCheck_err = $_SESSION['comCheck'];
?>
...
<form class="needs-validation" method="post" name="addcom" action="auth_company.php" novalidate accept-charset="utf-8">
<div class="form-row">
<div class="form-group col-md-6">
<label for="companyname">Company Name</label>
<p style="font-size:14px; color:red;"><?php echo $comName_err ?></p>
<input type="text" class="form-control" name="name" placeholder="Company Name" required>
</div>
<div class="form-group col-md-6">
<p style="font-size:14px; color:red;"><?php echo $comProvince_err ?></p>
<label for="password">Province</label>
<select name="province" class="form-control" required>
<option value="" selected>Choose Province...</option>
<option value="Limpopo">Limpopo</option>
<option value="Gauteng">Gauteng</option>
</select>
</div>
</div>
<div class="form-group">
<label for="address">Address</label>
<p style="font-size:14px; color:red;"><?php echo $comAddress_err ?></p>
<input type="text" class="form-control" name="address" placeholder="1234 Main St, Unit, Building, or Floor" required>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="city">City</label>
<p style="font-size:14px; color:red;"><?php echo $comCity_err ?></p>
<input type="text" class="form-control" name="city" placeholder="City" required>
</div>
<div class="form-group col-md-4">
<label for="state">Company Status</label>
 <p style="font-size:14px; color:red;"><?php echo $comStatus_err ?></p>
<select name="status" class="form-control" required>
<option value="" selected>Choose...</option>
<option value="Active">Active</option>
<option value="InActive">InActive</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="zip">Zip code</label>
<p style="font-size:14px; color:red;"><?php echo $comZIP_err ?></p>
<input type="text" class="form-control" name="code" placeholder="00000" required>
</div>
</div>
<div class="form-group">
<div class="form-check">\
<p style="font-size:14px; color:red;"><?php echo $comGridCheck_err ?></p>
<input class="form-check-input" type="checkbox" name="gridCheck" required>
<label class="form-check-label" for="gridCheck">Check me out</label>
<p>    <?php echo $error_message ?></p>
</div>
</div>
<button type="submit" name="addcom" class="btn btn-primary"><i class="fas fa-save"></i> Save</button>
</form>

认证页面

<?php
session_start();
include("includes/dbconnection.php");
if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["addcom"])) {
    $comName = $_POST["name"];
    $comProvince = $_POST["province"];
    $comAddress = $_POST["address"];
    $comCity = $_POST["city"];
    $comStatus = $_POST["status"];
    $comZIP = $_POST["code"];
    $comCheck = $_POST["gridCheck"];
    $AddisValid = true;

    //VALIDATION
    if (empty($comName)) {
        $AddisValid = false;
        $error_message = "Please enter a Company name.";
        $_SESSION['comName'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && $_POST['province'] ="") {
        $isValid = false;
        $error_message = "Please select a province.";
        $_SESSION['comProvince'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && empty($comAddress)) {
        $isValid = false;
        $error_message = "Please enter an address.";
        $_SESSION['comAddress'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && $_POST['status'] ="") {
        $isValid = false;
        $error_message = "Please enter an status.";
        $_SESSION['comStatus'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && empty($comZIP)) {
        $isValid = false;
        $error_message = "Please enter a ZIP code.";
        $_SESSION['comZIP'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && $_POST['status'] ="") {
        $isValid = false;
        $error_message = "Please enter an status.";
        $_SESSION['comStatus'] = $error_message;
        header("location:add-company.php");
    }
    elseif ($AddisValid && $_POST['gridCheck'] ="") {
        $isValid = false;
        $error_message = "Please confirm by clicking 'Check me Out'.";
        $_SESSION['comCheck'] = $error_message;
        header("location:add-company.php");
    }
    else{
    // PREPARE THE INSERT STATEMENT
    $sql = "INSERT INTO tblcompanies (comName,comAddress, comCity, comProvince, comZip, comStatus) VALUES (?, ?, ?, ?, ?, ?)";
    if($stmt = mysqli_prepare($con, $sql)){

    // BIND VARIABLES TO THE BINDED PARAMETERS
    mysqli_stmt_bind_param($stmt, "ssssss", $comName,$comAddress, $comCity, $comProvince, $comZIP, $comStatus);

    // EXECUTE THE PREPARED STATEMENT
    if(mysqli_stmt_execute($stmt)){
    header("location:dashboard.php");
    } else{
    echo "ERROR: Could not execute query: $sql. " . mysqli_error($con);
    }
    } else{
    echo "ERROR: Could not prepare query: $sql. " . mysqli_error($con);
    }
    //CLOSE STATEMENT
    mysqli_stmt_close($stmt);
    } 
}
?>

标签: phphtml

解决方案


推荐阅读