PRodgers4284 Posted March 11, 2008 Share Posted March 11, 2008 I am trying to add a record to a database, i have an upload file option that i need to upload files to the database, i can add all the text fields but i can seem to get the file upload to add the file to the database, it comes up blank. I am really stuck with this, i cant seem to find the problem, can anyone help with this or provide some advice, id really appreciate it. My code is: <?php $username = $_GET['username']; $id = $_GET['id']; if (isset($_POST['submit'])) { $jobtitle = trim($_POST['jobtitle']); $jobcatergory = trim($_POST['jobcatergory']); $joblocation = trim($_POST['joblocation']); $uploadDir = 'applicationforms/'; $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; // the files will be saved in filePath $filePath = $uploadDir . $fileName; // move the files to the specified directory // if the upload directory is not writable or // something else went wrong $result will be false $result = move_uploaded_file($tmpName, $filePath); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); $filePath = addslashes($filePath); } mysql_query("INSERT INTO applications (username, jobtitle, jobcatergory, name, type, size, path) VALUES ('$username', '$jobtitle', '$jobcatergory', '$fileName', '$fileType', '$fileSize', '$filePath')"); ?> <br /> <a href="index.php">Back to main page</a> <br /> <br /> <br /> The Job record has been successfully updated. <?php } else { $account = mysql_fetch_array(mysql_query("SELECT * FROM job WHERE username='$username' AND id='$id'")); ?> <form method="post" class="addform" action="" enctype="multipart/fom-data"> <fieldset> <p align="right"> <a href="editjobhelp.htm" onclick="NewWindow(this.href,'name','640','260','yes');return false"><font face="Verdana" size="2">Help/Assistance</a></p> </font> </fieldset> <fieldset> <label for="apply">Apply for Job</label><fieldset> <p align="right"> </p> </fieldset> <label for="username">Username:</label> <input readonly name="username" type="text" id="username" value="<?php echo $account["username"]; ?>" /><br /> </fieldset> <hr class="hr_blue"/> <fieldset> <label for="jobtitle">Job Title:</label> <input name="jobtitle" type="text" id="jobtitle" value="<?php echo $account['jobtitle']; ?>"/> <span class="redboldtxt"><?php echo "$jobtitle_message";?></fieldset></span> <fieldset> <label for="jobcatergory">Job Catergory:</label><p></p> <select name="jobcatergory"> <option value="Please Select">Please Select</option> <?php $jobcatergory_opts = array( "Accountancy and Finance", "Banking and Insurance", "Construction", "Customer Service", "Engineering", "Management", "Hotel and Catering", "Information Technology", "Legal", "Marketing", "Medical", "Retail", "Sales", "Secretarial", "Transport and Distribution", "Working from home", ); foreach($jobcatergory_opts as $opt){ $selected = $account['jobcatergory'] == $opt ? " selected=true":""; print "<option value=\"{$opt}\"{$selected}>{$opt}</option>"; } ?> </select> <span class="redboldtxt"><?php echo "$jobcatergory_message";?><?php echo $error['jobcatergory']; ?></span></fieldset> <hr class="hr_blue"/> <label>Upload Application Form</label> <p></p> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="userfile" type="file" class="box" id="userfile"> </fieldset> <p></p> <fieldset> <p class="submit"><input type="submit" name="submit" value="EditJob" /> </fieldset> </form> Quote Link to comment Share on other sites More sharing options...
matto Posted March 11, 2008 Share Posted March 11, 2008 so just to confirm, you are actually wanting to store the file in the database ? Quote Link to comment Share on other sites More sharing options...
PRodgers4284 Posted March 11, 2008 Author Share Posted March 11, 2008 so just to confirm, you are actually wanting to store the file in the database ? Thanks for the reply, im storing the link to the file in the database, the actual document is being stored in a folder called "applicationforms". Quote Link to comment Share on other sites More sharing options...
dotBz Posted March 11, 2008 Share Posted March 11, 2008 hmm. just wondering.. maybe you could try print_r($_FILES['userfile']) to see if there are actually values in it.. :-\ Quote Link to comment Share on other sites More sharing options...
PRodgers4284 Posted March 11, 2008 Author Share Posted March 11, 2008 I have the upload working in another form, i cant see where the difference is accept for the query This is the code for it: <?php if (isset($_POST['submit'])) { $error_stat = 0; $jobtitle_message = ''; $jobcatergory_message = ''; $joblocation_message = ''; $employmenttype_message = ''; $salary_message = ''; $date_message = ''; $educationallevel_message = ''; $description_message = ''; $filesize_message = ''; $filetype_message = ''; $jobtitle = $_POST['jobtitle']; $jobcatergory = $_POST['jobcatergory']; $joblocation = $_POST['joblocation']; $employmenttype= ($_POST['employmenttype']); $salary = $_POST['salary']; $date = $_POST['date']; $educationallevel = $_POST['educationallevel']; $description = $_POST['description']; $name = $_POST['name']; $type = $_POST['type']; $size = $_POST['size']; $path = $_POST['path']; //Error checking // Job Title check) if (!$jobtitle) { //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; //Set the message to tell the user to enter a username $jobtitle_message = '*Please enter a job title*'; } else if (ctype_digit($jobtitle)) { $error_stat = 1; $jobtitle_message .= '*Invalid Job Title*'; } else if ( preg_match( '/\W/', $jobtitle)){ $error_stat = 1; $jobtitle_message = '*Invalid jobtitle, letters only, no spaces*'; } $jobtitle = $_POST['jobtitle']; $jobtitle = trim($jobtitle); if (strlen($jobtitle) > 30){ $error_stat = 1; $jobtitle_message = '*Job Title must be 20 characters or less*'; } // Job Catergory Check) if ($jobcatergory == 'Please Select'){ //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; $jobcatergory_message = '*Please select a Job Catergory*'; } // Job Location Check) if ($joblocation == 'Please Select'){ //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; $joblocation_message = '*Please select a Job location*'; } // Employment Type Check) if ($employmenttype == 'Please Select'){ //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; $employmenttype_message = '*Please select Employment type*'; } // Salary check) if (!$salary) { //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; //Set the message to tell the user to enter a username $salary_message = '*Please enter job salary*'; } else if (!ctype_digit($salary)) { $error_stat = 1; $salary_message .= '*Invalid salary*'; } //Date check) if (empty($date)) { //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; //Set the message to tell the user to enter a dob $date_message = '*Please enter job closing date*'; } //Check the format and explode into $parts elseif (!ereg("^([0-9]{2})/([0-9]{2})/([0-9]{4})$", $date, $parts)){ $error_stat = 1; //Set the message to tell the user the date is invalid $date_message = '*Invalid date, must be DD/MM/YYYY format*'; } elseif (!checkdate($parts[2],$parts[1],$parts[3])) { $error_stat = 1; //Set the message to tell the date is invalid for the month entered $date_message = '*Invalid date, month must be between 1-12*'; } // Job Description check) if (!$description) { //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; //Set the message to tell the user to enter a username $description_message = '*Please enter a job description*'; } // Educational Level Check) if ($educationallevel == 'Please Select'){ //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; $educationallevel_message = '*Please select Educational level required*'; } if( $_FILES['userfile']['size'] > 2000000 ){ //Set the error_stat to 1, which means that an error has occurred $error_stat = 1; $filesize_message = '*Filesize too large *'; } $fileTypes = array("application/pdf", "application/msword"); if( !in_array("{$_FILES['userfile']['type']}", $fileTypes) ){ $error_stat = 1; $filetype_message = '*Filetype not allowed *'; } $uploadDir = 'applicationforms/'; if (isset($_POST['submit']) && $error_stat == 0) { $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; // the files will be saved in filePath $filePath = $uploadDir . $fileName; // move the files to the specified directory // if the upload directory is not writable or // something else went wrong $result will be false $result = move_uploaded_file($tmpName, $filePath); include("database.php"); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); $filePath = addslashes($filePath); } } $account = mysql_fetch_array(mysql_query("SELECT * FROM employers WHERE username='" . $_SESSION["username"] . "'")); $username = $account["username"]; } $count_sql = "select * FROM job WHERE username='" . $_SESSION["username"] . "'"; $count_result = mysql_query($count_sql); $count = mysql_num_rows($count_result); if ($count >= 4) { echo "<h4>Error, You cannot add .</h4>"; echo "<h4>There are already 4 existing jobs in the database, to add another job please deleting an existing one.</h4>"; } //Then, only run the query if there were no errors (if $error_stat still equals 0) else if (isset($_POST['submit']) && $error_stat == 0) { mysql_query("INSERT INTO job (username, jobtitle, jobcatergory, joblocation, employmenttype, salary, date, educationallevel, description, name, type, size, path) VALUES ('$username', '$jobtitle', '$jobcatergory', '$joblocation', '$employmenttype', '$salary', '$date', '$educationallevel', '$description', '$fileName', '$fileType', '$fileSize', '$filePath')"); echo "<h3>Job has been successfully added to the database!</h3>"; echo "<p>Thankyou, <b>$username</b></p>"; echo "<p>Back to main page.</p>"; echo "<a href=\"index2.php\">Login</a>"; } //Then, for the form, only show it if 1) the form hasn't been submitted yet OR 2) there is an error elseif (!isset($_POST['submit']) || $error_stat == 1) { ?> <form method="post" class="addform" action="" enctype="multipart/form-data"> <fieldset> <p align="right"> <a href="addjobhelp.htm" onclick="NewWindow(this.href,'name','640','260','yes');return false"><font face="Verdana" size="2">Help/Assistance</a></p> </font> </fieldset> <fieldset> <label for="cvtitle">Add a Job</label><fieldset> <p align="right"> </p> </fieldset> <label for="username">Username:</label> <input readonly name="username" type="text" id="username" value="<?php echo $_SESSION["username"]; ?>" /><br /> </fieldset> <hr class="hr_blue"/> <fieldset> <label for="jobtitle">Job Title:</label> <input name="jobtitle" type="text" id="jobtitle" value="<?php echo $_POST['jobtitle']; ?>"/> <span class="redboldtxt"><?php echo "$jobtitle_message";?></fieldset></span> <fieldset> <label for="jobcatergory">Job Catergory:</label><p></p> <select name="jobcatergory"> <option value="Please Select">Please Select</option> <?php $jobcatergory_opts = array( "Accountancy and Finance", "Banking and Insurance", "Construction", "Customer Service", "Engineering", "Management", "Hotel and Catering", "Information Technology", "Legal", "Marketing", "Medical", "Retail", "Sales", "Secretarial", "Transport and Distribution", "Working from home", ); foreach($jobcatergory_opts as $opt){ $selected = $_POST['jobcatergory'] == $opt ? " selected=true":""; print "<option value=\"{$opt}\"{$selected}>{$opt}</option>"; } ?> </select> <span class="redboldtxt"><?php echo "$jobcatergory_message";?><?php echo $error['jobcatergory']; ?></span></fieldset> <fieldset> <label for="joblocation">Location:</label> <p></p> <select name="joblocation"> <option value="Please Select">Please Select</option> <?php $joblocation_opts = array( "Co.Antrim", "Co.Armagh", "Co.Down", "Co.Fermanagh", "Co.Londonderry", "Co.Tyrone", ); foreach($joblocation_opts as $opt){ $selected = $_POST['joblocation'] == $opt ? " selected=true":""; print "<option value=\"{$opt}\"{$selected}>{$opt}</option>"; } ?> </select> <span class="redboldtxt"><?php echo "$joblocation_message";?><?php echo $error['joblocation']; ?></span></fieldset> <fieldset> <label for="employmenttype">Job Type:</label><p></p> <select name="employmenttype"> <option value="Please Select">Please Select</option> <?php $employmenttype_opts = array( "permanent fulltime", "permanent parttime", "temporary fulltime", "temporary parttime", ); foreach($employmenttype_opts as $opt){ $selected = $_POST['employmenttype'] == $opt ? " selected=true":""; print "<option value=\"{$opt}\"{$selected}>{$opt}</option>"; } ?> </select> <span class="redboldtxt"><?php echo "$employmenttype_message";?><?php echo $error['employmenttype']; ?></span></fieldset> <fieldset> <label for="salary">Salary:</label> <input name="salary" type="text" id="salary" value="<?php echo $_POST['salary']; ?>"/> <span class="redboldtxt"><?php echo "$salary_message";?></span></fieldset> <fieldset> <label for="date">Closing Date:</label> <input name="date" type="text" id="date" value="<?php echo $_POST['date']; ?>"/> <span class="redboldtxt"><?php echo "$date_message";?></span></fieldset> <fieldset> <label for="educationallevel">Qualification Level Required:</label><p></p> <select name="educationallevel"> <option value="Please Select">Please Select</option> <?php $educationallevel_opts = array( "GCSE", "A-Level", "Third Level Certification", "Third Level Diploma", "Third Level Degree", "Post Graduate Qualification", "Masters", "PHD", "Professional Qualification", "Part Professional Qualification", "Trade Qualification", ); foreach($educationallevel_opts as $opt){ $selected = $_POST['educationallevel'] == $opt ? " selected=true":""; print "<option value=\"{$opt}\"{$selected}>{$opt}</option>"; } ?> </select> <span class="redboldtxt"><?php echo "$educationallevel_message";?><?php echo $error['educationallevel']; ?></span></fieldset> <hr class="hr_blue"/> <fieldset> <label for="description">Job Description:</label> <textarea rows="2" name="description" cols="20"><?php echo $account["description"]; ?></textarea><p></p> <span class="redboldtxt"><?php echo "$description_message";?></span> </fieldset> Upload Application Form</label> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="userfile" type="file" class="box" id="userfile"> <span class="redboldtxt"><?php echo "$filesize_message";?></span> <span class="redboldtxt"><?php echo "$filetype_message";?></span> </fieldset> <p></p> <fieldset> <p class="submit"><input type="submit" name="submit" value="Add Job" /> </fieldset> </form> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.