PHP表单不会产生错误

时间:2015-09-15 20:03:53

标签: php mysql forms

我有一个表格,用户输入数据然后提交。然后,这将在表项目的数据库中创建一个条目。

如果用户输入所有细节,一切都运行良好,并且想法是如果有任何错误,则将其存储到数组中并打印给用户。

代码如下:

   <?php
// This script performs an INSERT query to add a record to the users table.

$page_title = 'Create Project';
include('includes/header.php');

//check if user is logged in:
require('includes/login_functions.inc.php');
$loggedIn = false;

if ((isset($_COOKIE['user_id'])) && (!empty($_COOKIE['user_id'])) ) {
   $loggedIn=true;
} else {
    //redirect user to login
    redirect_user('login.php');
}

// Check for form submission:
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $loggedIn) {
    require('includes/mysqli_connect.php'); // Connect to the db.

    //$errors = array(); // Initialize an error array.

    // Check for a project title
    if (empty($_POST['project_title'])) {
        $errors[] = 'You forgot to enter the project title.';
    } else {
        $p_title = mysqli_real_escape_string($dbc, trim($_POST['project_title'])); //we use mysqli_real_escape_string to avoid bad or malicious input
    }

    // Check for a project_description
    if (empty($_POST['project_description'])) {
        $errors[] = 'You forgot to enter the project description.';
    } else {
        $p_desc = mysqli_real_escape_string($dbc, trim($_POST['project_description']));
    }

    // Check for project members:
    if (empty($_POST['project_members'])) {
        $errors[] = 'You forgot to enter project members.';
    } else {
        $p_members = mysqli_real_escape_string($dbc, trim($_POST['project_members']));
    }

    // Check for team name
    if (empty($_POST['project_author'])) {
        $errors[] = 'You forgot to enter the name of your team!';
    } else {
        $p_author = mysqli_real_escape_string($dbc, trim($_POST['project_author']));
    }

    // Check for a project picture:
    // Check for an uploaded file:
    //===========================================================

    // Check for an uploaded file:
    if (isset($_FILES['project_pic'])) {
        /* TODO: CHECK FILE SIZE */

        // Validate the type. Should be JPEG or PNG.
        $allowed = array('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/jpg', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png');
        if (in_array($_FILES['project_pic']['type'], $allowed)) {

            // Move the file over.
            if (move_uploaded_file($_FILES['project_pic']['tmp_name'], "uploads/{$_FILES['project_pic']['name']}")) {
                echo '<p><em>The file has been uploaded!</em></p>';
                $p_pic = ($_FILES['project_pic']['name']);
                echo $pic;
            } // End of move... IF.

        } else { // Invalid type.
            echo '<p class="error">Please upload a JPEG or PNG image.</p>';
        }


    } // End of isset($_FILES['upload']) IF.


    // Check for an error:
    if ($_FILES['project_pic']['error'] > 0) {
        echo '<p class="error">The file could not be uploaded because: <strong>';

        // Print a message based upon the error.
        switch ($_FILES['project_pic']['error']) {
            case 1:
                print 'The file exceeds the upload_max_filesize setting in php.ini.';
                break;
            case 2:
                print 'The file exceeds the MAX_FILE_SIZE setting in the HTML form.';
                break;
            case 3:
                print 'The file was only partially uploaded.';
                break;
            case 4:
                print 'No file was uploaded.';
                break;
            case 6:
                print 'No temporary folder was available.';
                break;
            case 7:
                print 'Unable to write to the disk.';
                break;
            case 8:
                print 'File upload stopped.';
                break;
            default:
                print 'A system error occurred.';
                break;
        } // End of switch.

        print '</strong></p>';

    } // End of error IF.


    // End of error IF.


    //========================================================

    // Check for project goals:
    if (empty($_POST['project_goals'])) {
        $errors[] = 'You forgot to enter your project goals.';
    } else {
        $p_goals = mysqli_real_escape_string($dbc, trim($_POST['project_goals']));
    }

    // Check for team details:
    if (empty($_POST['team_details'])) {
        $errors[] = 'You forgot to enter the team details';
    } else {
        $p_teamdetails = mysqli_real_escape_string($dbc, trim($_POST['team_details']));
    }

    // Check for a project intro:
    if (empty($_POST['project_intro'])) {
        $errors[] = 'You forgot to enter the project introduction.';
    } else {
        $p_intro = mysqli_real_escape_string($dbc, trim($_POST['project_intro']));
    }

    // Check for a project_logo:
    // Check for an uploaded file:
    //=====================================================
    if (isset($_FILES['project_logo'])) {
        /* TODO: CHECK FILE SIZE */

        // Validate the type. Should be JPEG or PNG.
        $allowed = array('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/jpg', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png');
        if (in_array($_FILES['project_logo']['type'], $allowed)) {

            // Move the file over.
            if (move_uploaded_file($_FILES['project_logo']['tmp_name'], "uploads/{$_FILES['project_logo']['name']}")) {
                $p_logo = ($_FILES['project_logo']['name']);
            } // End of move... IF.

        } else { // Invalid type.
            $errors[] = "Invalid Type";
        }


    } // End of isset($_FILES['upload']) IF.


    // Check for an error:
    if ($_FILES['project_logo']['error'] > 0) {
        $errors[] = 'The file could not be uploaded!';

        // Print a message based upon the error.
        switch ($_FILES['project_logo']['error']) {
            case 1:
                $errors[] = 'The file exceeds the upload_max_filesize setting in php.ini.';
                break;
            case 2:
                $errors[] = 'The file exceeds the MAX_FILE_SIZE setting in the HTML form.';
                break;
            case 3:
                $errors[] = 'The file was only partially uploaded.';
                break;
            case 4:
                $errors[] = 'No file was uploaded.';
                break;
            case 6:
                $errors[] = 'No temporary folder was available.';
                break;
            case 7:
                $errors[] = 'Unable to write to the disk.';
                break;
            case 8:
                $errors[] = 'File upload stopped.';
                break;
            default:
                $errors[] = 'A system error occurred.';
                break;
        } // End of switch.


    } // End of error IF.
    print_r($errors);


    //==========================================================

    // Check for project email
    if (empty($_POST['project_email'])) {
        $errors[] = 'You forgot to enter a contact email.';
    } else {
        $p_email = mysqli_real_escape_string($dbc, trim($_POST['project_email']));
    }

    if (empty($errors)) { // If everything's OK.
        echo 'test';
        // Register the project in the database...
        $user_id = $_COOKIE['user_id'];
        echo 'TEST!';
        // Make the query:

        $q = "INSERT INTO projects (project_title, project_description, project_members,
            project_pic,project_goals,project_intro,project_logo,project_email, user_id,
            created_at, updated_at, team_details, project_author) VALUES ('$p_title', '$p_desc', '$p_members', '$p_pic', '$p_goals',
            '$p_intro', '$p_logo', '$p_email','$user_id', NOW(), NOW(), '$p_teamdetails', '$p_author')";

        $r = @mysqli_query($dbc, $q); // Run the query.
        if ($r) { // If it ran OK.

            // Print a message:
            echo '<h1>Thank you!</h1>
        <p>You are now registered. In Chapter 12 you will actually be able to log in!</p><p><br /></p>';

        } else { // If it did not run OK.

            // Public message:
            echo '<h1>System Error</h1>
            <p class="error">You could not be registered due to a system error. We apologize for any inconvenience.</p>';

            // Debugging message:
            echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>';

        } // End of if ($r) IF.


        // Include the footer and quit the script:


    } else { // Report the errors.

        echo 'test';
    }
    // End of if (empty($errors)) IF.


} // End of the main Submit conditional.
?>
    <section class="container">
        <div class="row" id="forms">
            <div class="col-lg-12"><h2 class="cs-heading">Create Project</h2></div>
        </div>
        <div class="row">
            <div class="col-lg-8 col-md-8">
                <h3 class="cs-heading">Enter your details below:</h3>
                <form role="form" enctype="multipart/form-data" action="createproject.php" method="post">
                    <!-- Hidden field to represent MAX FILE SIZE -->
                    <input type="hidden" name="MAX_FILE_SIZE" value="524288" />

                    <div class="form-group">
                        <label for="project_title">Title</label>
                        <input type="text" class="form-control" name="project_title" size="20" maxlength="60" placeholder="Enter Project Title">
                    </div>
                    <div class="form-group">
                        <label for="project_intro" class="col-sm-2 control-label">Project Introduction</label>
                        <div class="col-sm-10">
                            <textarea class="form-control extra-space" name="project_intro" rows="3" placeholder="Enter Project Intro... Hook your audience!"></textarea>
                        </div>
                    </div>
                    <!--
                    <div class="form-group text-align-center">
                        <label for="FileUpload">Upload Profile Image</label> <br/>
                        <div class="fileUpload">
                            <span>Upload</span>
                            <input type="file" name="project_pic" id="FileUpload" class="upload" />
                        </div>
                        -->
                    <div class="form-group">
                        <label for="project_pic" class="col-sm-2 control-label">Project Picture</label>
                        <div class="col-sm-10">
                    <p><b>File:</b> <input type="file" name="project_pic" /></p>
                            </div>
                    </div>
                    <div class="form-group">
                        <label for="project_goals" class="col-sm-2 control-label">Project Goals</label>
                        <div class="col-sm-10">
                            <textarea class="form-control extra-space" name="project_goals" rows="3" placeholder="Enter Project Goals"></textarea>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="project_description" class="col-sm-2 control-label">Project Description</label>
                        <div class="col-sm-10">
                            <textarea class="form-control extra-space" name="project_description" rows="3" placeholder="Describe Your Project!"></textarea>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="project_author">Team Name</label>
                        <input type="text" class="form-control" name="project_author" size="20" maxlength="120" placeholder="What is your team called?">
                    </div>

                    <div class="form-group">
                        <label for="team_details" class="col-sm-2 control-label">Team Details</label>
                        <div class="col-sm-10">
                            <textarea class="form-control extra-space" name="team_details" rows="3" placeholder="Describe your team!"></textarea>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="project_members">Team Members</label>
                        <input type="text" class="form-control" name="project_members" size="20" maxlength="100" placeholder="Enter Relevant Team Members">
                    </div>


                  <!--  <div class="form-group text-align-center">
                        <label for="FileUpload">Upload Team Logo</label> <br/>
                        <div class="fileUpload">
                            <span>Upload</span>
                            <input type="file" name="project_logo" id="FileUpload" class="upload" />
                        </div>
                    </div> -->
                    <div class="form-group">
                        <label for="project_logo" class="col-sm-2 control-label">Team Logo</label>
                        <div class="col-sm-10">
                            <p><b>File:</b> <input type="file" name="project_logo" /></p>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="project_members">Contact Email</label>
                        <input type="text" class="form-control" name="project_email" size="40" maxlength="80" placeholder="Enter Contact Email">
                    </div>

                    <div>
                        <input type="submit" name="submit" class="btn btn-primary" value="Create">
                    </div>
            </div>
        </div>
    </section>


<?php include ('includes/footer.html'); ?>

但问题是,即使我提交没有条目的表单,也不会显示任何错误。数据库中没有创建任何行,但是我最终只得到了一个空白页面,并且仍然像预期的那样在createproject.php URL上。

0 个答案:

没有答案