John
John

Reputation: 4944

HTML form only submits free of errors if every field is completed

The form below works regardless of whether or not all of the fields are filled out. This is what I want. However, if I leave some fields blank, I get some "Filename cannot be empty" errors. How can I eliminate those error messages?

echo '<form enctype="multipart/form-data" action="http://www...com/.../submit2a.php" method="post"> 
    <input type="hidden" value="'.$_SESSION['loginid'].'" name="uid">  

    <div class="submissiontitle"><label for="title">Blog Post Title:</label></div> 
    <div class="submissionfield"><input class="checkMax3" name="title" type="title" id="title" maxlength="80"></div>  

    <div class="texttitle"><label for="text1">Blog Post Text 1:</label></div> 
    <div class="textfield"><textarea class="checkMax" name="text1" type="comment" id="text1" maxlength="10000"></textarea></div>

    <div class="imagetitle"><label for="image1">Image 1:</label></div> 
    <div class="imagefield"><input type="file" name="image1" /></div>   

    <div class="hyperlinktitle"><label for="url1">Hyperlink 1:</label></div> 
    <div class="hyperlinkfield "><input name="url1" type="title" id="url1" maxlength="200"></div>

    <div class="texttitle2"><label for="text2">Blog Post Text 2:</label></div> 
    <div class="textfield2"><textarea class="checkMax" name="text2" type="comment" id="text2" maxlength="10000"></textarea></div>

    <div class="imagetitle2"><label for="image2">Image 2:</label></div> 
    <div class="imagefield2"><input type="file" name="image2" /></div>  

    <div class="hyperlinktitle2"><label for="url2">Hyperlink 2:</label></div> 
    <div class="hyperlinkfield2"><input name="url2" type="text" id="url2" maxlength="200"></div>

    <div class="texttitle3"><label for="text3">Blog Post Text 3:</label></div> 
    <div class="textfield3"><textarea class="checkMax" name="text3" type="comment" id="text3" maxlength="10000"></textarea></div>

    <div class="imagetitle3"><label for="image3">Image 3:</label></div> 
    <div class="imagefield3"><input type="file" name="image3" /></div>  

    <div class="hyperlinktitle3"><label for="url3">Hyperlink 3:</label></div> 
    <div class="hyperlinkfield3"><input name="url3" type="text" id="url3" maxlength="200"></div>

    <div class="texttitle4"><label for="text4">Blog Post Text 4:</label></div> 
    <div class="textfield4"><textarea class="checkMax" name="text4" type="comment" id="text4" maxlength="10000"></textarea></div>

    <div class="imagetitle4"><label for="image4">Image 4:</label></div> 
    <div class="imagefield4"><input type="file" name="image4" /></div>  

    <div class="hyperlinktitle4"><label for="url4">Hyperlink 4:</label></div> 
    <div class="hyperlinkfield4"><input name="url4" type="text" id="url4" maxlength="200"></div>

    <div class="submissionbutton"><input name="submit" type="submit" value="Submit"></div> 
</form>
';

EDIT: In case it might help, here is most of submit2a.php:

$remove_array = array('http://www.', 'http://', 'https://', 'https://www.', 'www.');

$uid = $_POST['uid'];

$title = $_POST['title'];

$text1 = $_POST['text1'];

$image1 = $_POST['image1'];

$image1 = $_FILES['image1'];

$url1 = $_POST['url1'];



$text2 = $_POST['text2'];

$image2 = $_POST['image2'];

$image2 = $_FILES['image2'];

$url2 = $_POST['url2'];



$text3 = $_POST['text3'];

$image3 = $_POST['image3'];

$image3 = $_FILES['image3'];

$url3 = $_POST['url3'];



$text4 = $_POST['text4'];

$image4 = $_POST['image4'];

$image4 = $_FILES['image4'];

$url4 = $_POST['url4'];







$cleanurl1 = str_replace($remove_array, "", $_POST['url1']);
$cleanurl1 = strtolower($cleanurl1);
$cleanurl1 = preg_replace('/\/$/','',$cleanurl1);
$cleanurl1 = stripslashes($cleanurl1);
$cleanurl1 = mysql_real_escape_string(trim($cleanurl1));

$cleanurl2 = str_replace($remove_array, "", $_POST['url2']);
$cleanurl2 = strtolower($cleanurl2);
$cleanurl2 = preg_replace('/\/$/','',$cleanurl2);
$cleanurl2 = stripslashes($cleanurl2);
$cleanurl2 = mysql_real_escape_string(trim($cleanurl2));


$cleanurl3 = str_replace($remove_array, "", $_POST['url3']);
$cleanurl3 = strtolower($cleanurl3);
$cleanurl3 = preg_replace('/\/$/','',$cleanurl3);
$cleanurl3 = stripslashes($cleanurl3);
$cleanurl3 = mysql_real_escape_string(trim($cleanurl3));

$cleanurl4 = str_replace($remove_array, "", $_POST['url4']);
$cleanurl4 = strtolower($cleanurl4);
$cleanurl4 = preg_replace('/\/$/','',$cleanurl4);
$cleanurl4 = stripslashes($cleanurl4);
$cleanurl4 = mysql_real_escape_string(trim($cleanurl4));



//$url = $_POST['url'];

//$subcheck = (isset($_POST['subcheck'])) ? 1 : 0;
$title = mysql_real_escape_string($title);
$title = stripslashes($title);
$slug = str_replace(' ', '-', $title);




echo '-'.$site1.'-';



$site1 = 'http://' . $cleanurl1;
$site2 = 'http://' . $cleanurl2;
$site3 = 'http://' . $cleanurl3;
$site4 = 'http://' . $cleanurl4;

$displayurl = parse_url($site1, PHP_URL_HOST);




    $query = sprintf("INSERT INTO submission VALUES (NULL, '$title', '$text1', '$text2', '$text3', '$text4', '$site1', '$site2', '$site3', '$site4', NULL)");


mysql_query($query);

        $id = (int) mysql_insert_id($db);   

$submissionid = $id;        



$info1 = getImageSize($image1['tmp_name']);

$queryimage1 = sprintf(
            "insert into images (NULL, submissionid, filename, mime_type, file_size, file_data)
                values ('%s', '%s', '%s', %d, '%s')",
            $submissionid,
            mysql_real_escape_string($image1['name']),
            mysql_real_escape_string($info1['mime']),
            $image1['size'],
            mysql_real_escape_string(
                file_get_contents($image1['tmp_name'])
            )
        )or die(mysql_error());





$info2 = getImageSize($image2['tmp_name']);

$queryimage2 = sprintf(
            "insert into images (NULL, ubmissionid, filename, mime_type, file_size, file_data)
                values ('%s', '%s', '%s', %d, '%s')",
            $submissionid,
            mysql_real_escape_string($image2['name']),
            mysql_real_escape_string($info2['mime']),
            $image2['size'],
            mysql_real_escape_string(
                file_get_contents($image2['tmp_name'])
            )
        )or die(mysql_error());     




 $info3 = getImageSize($image3['tmp_name']);

$queryimage3 = sprintf(
            "insert into images (NULL, submissionid, filename, mime_type, file_size, file_data)
                values ('%s', '%s', '%s', %d, '%s')",
            $submissionid,
            mysql_real_escape_string($image3['name']),
            mysql_real_escape_string($info3['mime']),
            $image3['size'],
            mysql_real_escape_string(
                file_get_contents($image3['tmp_name'])
            )
        )or die(mysql_error());



 $info4 = getImageSize($image4['tmp_name']);

$queryimage4 = sprintf(
            "insert into images (NULL, submissionid, filename, mime_type, file_size, file_data)
                values ('%s', '%s', '%s', %d, '%s')",
            $submissionid,
            mysql_real_escape_string($image4['name']),
            mysql_real_escape_string($info4['mime']),
            $image4['size'],
            mysql_real_escape_string(
                file_get_contents($image4['tmp_name'])
            )
        )or die(mysql_error());     


//mysql_free_result($result);







header("Location: http://www...com/.../");
exit(); 

Upvotes: 0

Views: 114

Answers (1)

whostolemyhat
whostolemyhat

Reputation: 3123

It's likely to be a problem with your database - if fields can be added even when empty, then make sure all the relevant fields in the database are set to allow NULL values.

The error you're getting back is a database error - the field isn't set to accept a null value (empty field from the form).

Upvotes: 1

Related Questions