...

View Full Version : Upload file not working properly



PRodgers4284
03-06-2008, 12:52 PM
work with an edit record form, I have the script working for an add record form and it sends the file to the database and the file directory folder fine, it just wont work when i try to edit the file, i think the update statement must be wrong but im not sure where exactly, can anyone see the problem or provide some advice on this?

My script for the edit file upload is:


$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);
}



$update = mysql_query("UPDATE job SET username='" . $_POST["username"] . "',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='$fileName',type='$fileType',size='$fileSize',path='$filePath' WHERE username='$username' AND id='$id'");


?>

abduraooft
03-06-2008, 01:37 PM
note that it is your responsibility to die() if necessary! good luck :)

digitalfiz
03-07-2008, 06:46 AM
take "username='$username'" out of the where statement because it will be false if the person changes there username which I assume you are allowing because you are updating it. That might be part of your problem.

PRodgers4284
03-07-2008, 10:01 AM
take "username='$username'" out of the where statement because it will be false if the person changes there username which I assume you are allowing because you are updating it. That might be part of your problem.

Hey thanks for the reply, i tried what you suggested but it still doesnt want to work, everything else updates fine, just not the file upload, its being deleted from the database when i edit the record. I cant understand why its not working, i have the another edit form with basically the same code. Can anyone help or provide some advice on what the problem could be?

My full code is now:


<?php
$username = $_GET['username'];
$id = $_GET['id'];

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 = trim($_POST['jobtitle']);
$jobcatergory = trim($_POST['jobcatergory']);
$joblocation = trim($_POST['joblocation']);
$employmenttype = trim($_POST['employmenttype']);
$salary = trim($_POST['salary']);
$date = trim($_POST['date']);
$educationallevel = trim($_POST['educationallevel']);
$description = trim($_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*';
}

$description = $_POST['description'];
$description = trim($description);

if (strlen($description) > 150){
$error_stat = 1;
$description_message = '*Job Title must be 150 characters or less*';
}




// 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 = 'applicationform/';

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);
}



mysql_query("UPDATE job SET 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='$fileName', type='$fileType', size='$fileSize', path='$filePath' WHERE id='$id'");


?>

<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">&nbsp;<a href="test.php" onclick="NewWindow(this.href,'name','200','200','yes');return false"><font face="Verdana" size="2">Help/Assistance</a></p>
</font>
</fieldset>
<fieldset>
<label for="cvtitle">Edit Job</label><fieldset>
<p align="right">&nbsp;</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 $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>

<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 = $account['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 = $account['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 $account['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 $account['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 = $account['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>
Job Description -<br />
</fieldset>

<fieldset>
<textarea rows="2" name="description" cols="20"><?php echo $account["description"]; ?></textarea><p></p>
<span class="redboldtxt"><?php echo "$description_message";?></span></fieldset>

<fieldset>
<label for="skills">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="EditJob" />

</fieldset>
</form>
<?php
}
?>

abduraooft
03-07-2008, 10:18 AM
You can test the intermediate code by applying echo to your variables before passing in to mysql_query, say

.............
$result = move_uploaded_file($tmpName, $filePath);
echo 'filepath: '.$filePath;
..........

PRodgers4284
03-07-2008, 11:06 AM
You can test the intermediate code by applying echo to your variables before passing in to mysql_query, say

.............
$result = move_uploaded_file($tmpName, $filePath);
echo 'filepath: '.$filePath;
..........


abdurarooft i tried echo the filePath and it just display the "/upload" but there is no file, the file does same to be getting sent.

abduraooft
03-07-2008, 11:22 AM
$uploadDir = 'applicationforms/';
................
$fileName = $_FILES['userfile']['name'];
...............
$filePath = $uploadDir . $fileName;


i tried echo the filePath and it just display the "/upload" but there is no file, the file does same to be getting sent.
:confused:

PRodgers4284
03-07-2008, 11:55 AM
:confused:

Sorry i was testing it was another edit form im using, i ment to say /applicationform, sorry for the confusion there :o

PRodgers4284
03-07-2008, 12:18 PM
I have another edit form and this works fine:

The code is:


<?php
if (isset($_POST['submit'])) {

$error_stat = 0;
$jobcatergory_message = '';
$recentjob_message = '';
$employmenttype_message = '';
$careerlevel_message = '';
$educationallevel_message = '';
$skills_message = '';
$bio_message = '';
$filesize_message = '';
$filetype_message = '';

$jobcatergory = trim($_POST['jobcatergory']);
$recentjob = trim($_POST['recentjob']);
$employmenttype = trim($_POST['employmenttype']);
$careerlevel = trim($_POST['careerlevel']);
$educationallevel = trim($_POST['educationallevel']);
$skills = trim($_POST['skills']);
$bio = trim($_POST['bio']);



// Job Category 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*';
}

// Current/Most Recent Job Title check)
if (!$recentjob) {
//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
$recentjob_message = '*Please enter a job title*';
}

else if (ctype_digit($recentjob)) {
$error_stat = 1;
$recentjob_message .= '*Invalid job title*';
}

if (strlen($recentjob) > 20){
$error_stat = 1;
$recentjob_message = '*Job title must be 20 characters or less*';
}

// Job Category 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 a Employment Type *';
}

// Career Level Check)
if ($careerlevel == 'Please Select'){
//Set the error_stat to 1, which means that an error has occurred
$error_stat = 1;
$careerlevel_message = '*Please select a Career Level *';
}

// 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 an Educational Level *';
}

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 = 'upload/';

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);
echo 'filepath: '.$filePath;



include("database.php");

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}




mysql_query("UPDATE users SET username='" . $_POST["username"] . "',jobcatergory='" . $_POST["jobcatergory"] . "',recentjob='" . $_POST["recentjob"] . "',employmenttype='" . $_POST["employmenttype"] . "',
careerlevel='" . $_POST["careerlevel"] . "',educationallevel='" . $_POST["educationallevel"] . "',skills='" . $_POST["skills"] . "', name='$fileName', type='$fileType', size='$fileSize', path='$filePath'
WHERE username='" . $_SESSION["username"] . "'");
?>

<br />
<a href="index.php">Back to main page</a>
<br />
<br />
<br />
You have successfully updated your account .
<?php
}
else
{
$account = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username='" . $_SESSION["username"] . "'"));
?>
<form method="post" class="cvform" action="" enctype="multipart/form-data">
<fieldset>
<p align="right">&nbsp;<a href="test.php" onclick="NewWindow(this.href,'name','200','200','yes');return false"><font face="Verdana" size="2">Help/Assistance</a></p>
</font>
</fieldset>

<fieldset>
<label for="cvtitle">Add/Edit CV details</label><fieldset>
</fieldset>

<fieldset>
<label for="username">Username:</label>
<input readonly name="username" type="text" id="username" value="<?php echo $_SESSION["username"]; ?>" /><br />
</fieldset>

<fieldset>
<label for="jobcatergory">Job Category:</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":"";
echo "<option value=\"" . $opt . "\"" . $selected . ">" . $opt . "</option>";
}
?>
</select>
<span class="redboldtxt"><?php echo "$jobcatergory_message";?></span>
</fieldset>


<fieldset>
<label for="recentjob">Current/Most Recent Job Title:</label>
<input name="recentjob" type="text" id="recentjob" value="<?php echo $account["recentjob"]; ?>" /><span class="redboldtxt"><?php echo "$recentjob_message";?></span><br />
</fieldset>

<fieldset>
<label for="employmenttype">Employment 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 = ($account["employmenttype"]) == $opt ? " selected=true":"";
echo "<option value=\"" . $opt . "\"" . $selected . ">" . $opt . "</option>";
}
?>
</select>
<span class="redboldtxt"><?php echo "$employmenttype_message";?></span>
</fieldset>


<fieldset>
<label for="careerlevel">Career Level:</label><p></p>
<select name="careerlevel">
<option value="Please Select">Please Select</option>
<?php
$careerlevel_opts = array(
"School leaver",
"Student(Graduate)",
"Entry level",
"Experienced(Non manager)",
"Manager",
"Executive",
"Senior Executive",
);
foreach($careerlevel_opts as $opt){
$selected = ($account["careerlevel"]) == $opt ? " selected=true":"";
echo "<option value=\"" . $opt . "\"" . $selected . ">" . $opt . "</option>";
}
?>
</select>
<span class="redboldtxt"><?php echo "$careerlevel_message";?></span>
</fieldset>


<fieldset>
<label for="educationallevel">Employment Level:</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 = ($account["educationallevel"]) == $opt ? " selected=true":"";
echo "<option value=\"" . $opt . "\"" . $selected . ">" . $opt . "</option>";
}
?>
</select>
<span class="redboldtxt"><?php echo "$educationallevel_message";?></span>
</fieldset>

<p></p>
<fieldset>
Additional Information -<br />
<p></p>
</fieldset>
<fieldset>
<label for="skills">Key Skills</label>
<textarea rows="2" name="skills" cols="20"><?php echo $account["skills"]; ?></textarea><p></p>
</fieldset>

<p></p>
<fieldset>
<label for="skills">Upload CV</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>

<fieldset>
<p class="submit">
<input type="submit" name="submit" value="Upload CV" />
</p>
</fieldset>

</form>



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum