Hallo,

Ik ben een beginner met php en loop vast bij het maken van een blog.
De pagina's werken prima, tot het moment dat ik een blogpost schrijf en deze wil submitten.
Wanneer ik het blog heb geschreven en op de knop maak post klik krijg ik de volgende foutmelding:

Could not insert data into the database. Incorrect integer value: '' for column 'post_id' at row 1


Ik kan niet ondekken waar ik een fout heb gemaakt, hopelijk kan iemand mij hierbij helpen.
De code die ik geschreven heb is als volgt:

<?php
include_once 'inc/header.inc';

$message = "";
$titleError ="";
$blogpostError = "";

$errors = array("empty" => array("title" => "Geef uw post een titel.",
                                "blogpost" => "Schrijf iets in uw blogpost."));

if (isset($_POST['submit'])) {
    //Strip slashes en trim input voor de controle op leeg, zonder het gebruik van $_POST['submit']
    foreach($_POST as $key => $input) {
        if ($key!="submit") {
            $stripTrim[$key] = stripslashes(trim($input));
        }
    }
    
    //Controleer of de userinputs leeg zijn
    foreach($stripTrim as $key => $input) {
        if(empty($input)){
            $error[$key] = $errors['empty'][$key];
        } else {
            $error[$key] = "";
        }
    }
    
    $error = array_filter($error);
    
    if (empty($error)) {
        if ($_POST['submit'] == 'Maak post'){
            if (create_post($connect, NULL, $_SESSION['user_id'], $stripTrim['title'], $stripTrim['blogpost'], False)) {
                unset($_POST);
                header("Location: index.php?page=editposts");
                exit();
            }
        } elseif ($_POST['submit'] == 'Wijzig post') {
            
            if(create_post($connect, $_SESSION['postID'], $_SESSION['user_id'], $stripTrim['title'], $stripTrim['blogpost'], True)) {
                unset($_POST);
                header("Location: index.php?page=editposts");
                exit();
            }
        }
    }
} 

if (isset($_GET['editPID']) && isset($_SESSION['user_id'])) {
    $postID = $_SESSION['postID'] = $_GET['editPID'];
    
    //Ophalen post titel en inhoud
    $retrieveQuery = "SELECT * FROM posts WHERE post_id = $postID";
    $retrieveResult = mysqli_query($connect, $retrieveQuery) or die("Kon geen toegang tot de database krijgen " . mysqli_error($connect));
    
    if (mysqli_num_rows($retrieveResult) == 1) {
        $retrieveData = mysqli_fetch_assoc($retrieveResult);
        $postTitle = $retrieveData['post_title'];
        $postContent = $retrieveData['post_content'];
    }
}

if (isset($_POST['reset']) && $_POST['reset'] == "Legen") {
    unset($_POST);
}

if (isset($_POST['reset']) && $_POST['reset'] == "Wijzigingen ongedaan maken"){
    header("Location: post.php?editPID=" . $_SESSION['postID'] ."");
    exit();
}
?>
<div class="wrapper">
    <div class="side-wrapper">
        <div class="small-wrapper">
            <div class="panel-head">
                <h3>Bloggers</h3>
            </div>
            <div class="bloggers side-content">
                <ul>
                <?php
                    get_bloggers($connect);
                ?>
                </ul>
            </div>
        </div>
    </div>
    <div class="main-content">
    <?php if (isset($_SESSION['user_id'])) {?>
        <span class="message"><?php echo $message;?></span>
        <div class="form post">
            <h2>Your blogpost</h2>
            <form method="POST" action="post.php">  
                <span class = error><?php if(isset($error['title'])) { echo $error['title'];}?></span>
                <label for="form-title">Title:</label>
                <input type="text" id="form-title" name="title" value="<?php if(isset($_POST['title'])){echo htmlentities($_POST['title']);}elseif(isset($_GET['editPID'])){echo $postTitle;} else{ echo "";}?>">
                
                <span class = error><?php if(isset($error['blogpost'])){echo $error['blogpost'];}?></span>
                <label for="form-blogpost">Blog post:</label>
                <textarea rows="15" cols="50" name="blogpost"><?php if(isset($_POST['blogpost'])){ echo htmlentities($_POST['blogpost']);}elseif(isset($_GET['editPID'])){ echo $postContent; }else{ echo "";}?></textarea>
                
                <input class="btn" type="submit" name="submit" <?php if (!isset($_GET['editPID'])){ echo "value=\"Maak post\"";}else{echo "value=\"Wijzig post\"";}?>>
                <input class="btn" type="submit" name="reset" <?php if (!isset($_GET['editPID'])){ echo "value=\"Legen\"";}else{echo "value=\"Wijzigingen ongedaan maken\"";}?>>
            </form>
        </div>
        <?php } else {?>
        <span class="message">U moet ingelogd zijn om een post te maken!</span>
    <?php }?>
    </div>
</div>
<?php 
include_once 'inc/footer.inc';
?>

Ik ga er naar kijken, ben even afwezig geweest. Bedankt voor de informatie!

Reageren