954,568 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

pdf upload - validation ok, BUT error msg wont display!?!

Hey!
I have this script for Uploading PDF's to the DB.

I tjecks if the document ends on .pdf - and excludes everything that doesnt - which is fine.

BUT I have set a size limit on 1 MB for uploading, and it seems to be working. BUT if I try to upload a PDF BIGGER than 1 MB, I have an error message ($pdf_error[3]) saying so - BUT I dont get tht error message displayed, I get another error message every single time: ($pdf_error[4]).

How come the validation works, and I CANT display the correct error message when it is set?

Is my order in the script messy?

Handling the errors array in a wrong way?
PHP processing code:

<?php
$pdf_errors = array();

if(isset($_POST['submit'])){	

if(empty($_POST['title'])){
	$pdf_errors[1] = '<small style="color:red;">Husk at indtaste en titel!</small>';	
}else{
	$t = mysqli_real_escape_string($connection, strip_tags($_POST['title']));	
	}
if(empty($_POST['description'])){
	$pdf_errors[2] = '<small style="color:red;">Husk at indtaste noget i description!</small>';	
}else {
	$d = mysqli_real_escape_string($connection, strip_tags($_POST['description']));	
	}
	
if(is_uploaded_file($_FILES['pdf']['tmp_name']) && ($_FILES['pdf']['error']) == UPLOAD_ERR_OK){
$file = $_FILES['pdf'];
}
$size = round($file['size']);
if($size > 1048576 ){// 1MB in BYTES
	$pdf_errors[3] = '<small style="color:red;">Filen var for stor - max størrelse er 1000K!</small>';	
<strong>// THIS ERROR MESSAGES[3] IS NOT BEING REGISTERED, BUT CODE SEEMS TO WORK!</strong>
		}	
if(($file['type']!= 'application/pdf') && (substr($file['name'],-4)!='.pdf'))
	{
	$pdf_errors[4] = '<small style="color:red;">Det skal være et PDF dokument, prøv igen!</small>';	
	}
}

if(isset($_POST['submit']) && empty($pdf_errors)){
	$destination = 'PDFS_DIR' .$tmp_name.'_tmp';
	$tmp_name = sha1($file['name'].uniqid('', true));
	
	move_uploaded_file($tmp_name, $destination);
	
	// MOVING THE FILE:
	if(move_uploaded_file($file['tmp_name'], $destination)){
		$_SESSION['pdf']['tmp_name'] = $tmp_name;
		$_SESSION['pdf']['size'] = $size;
		$_SESSION['pdf']['file_name'] = $file['name'];
			$upload_succes = '<h4>The file has been uploaded!</h4>';
			}else {
				trigger_error('<p>The file could not be moved!</p>');
				unlink($file['tmp_name']);	
			}				
			
// Add pdf to database:
$fn = mysqli_real_escape_string($connection, $_SESSION['pdf']['file_name']);
$tmp_name = mysqli_real_escape_string($connection, $_SESSION['pdf']['tmp_name']);
$size = mysqli_real_escape_string($connection, $_SESSION['pdf']['size']);
$query = "INSERT INTO pdfs(tmp_name,title,description,file_name,size)
VALUES
('$tmp_name','$t','$d','$fn','$size')";
$result = mysqli_query($connection, $query);

$succes = '<p>The file has been succesfully uploaded to the db!</p>';
}
?>
// THE FORM FURTHER DOWN THE PAGE WITH THE ERROR MSG THAT DOESNT DISPLAY:
<?php if(!empty($succes)){
echo $succes;
}?>
<form action="add_pdf_to.php" method="post" enctype="multipart/form-data" accept-charset="utf-8">
<input type="hidden" name="MAX_FILESIZE" value="1048576" />
<p><b>Title:</b></p>
<input type="text" name="title" id="title" />

<?php if(!empty($pdf_errors[1])){echo $pdf_errors[1];} ?>

<p><b>Description:</b></p>
<textarea name="description" cols="40" rows="10"></textarea>

<?php if(!empty($pdf_errors[2])){echo $pdf_errors[2];} ?>

<p><b>Vælg PDF:</b></p>
<input type="file" name="pdf" id="pdf" />
<small>PDF only, 1MB Limit!</small>			

<?php if(!empty($pdf_errors[3])){echo $pdf_errors[3];} ?> 
<?php // THIS MSG WONT SHOW UP ?>
<?php if(!empty($pdf_errors[4])){echo $pdf_errors[4];} ?> 
<?php // THIS MSG SHOWS UP NO MATTER WHAT ERROR ?>

<input type="submit" name="submit" id="submit" value="Add This PDF" />
</form>

Anyone?

I hope someone has got time to tjeck it out as it is urgent for me to get it working properly.

Regards, 
Klemme
klemme
Posting Whiz in Training
265 posts since Mar 2011
Reputation Points: 18
Solved Threads: 7
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: