LearningPHPMySQL
asked on
help with modifying a PHP upload script
hello, I wonder if i could get some help modifying this upload script please.
At the moment I have it so a user can upload a document to the server.
What i need to be able to do now though is
1. The user selects a course from a dropdown list on the form, and then uploads the document. That dropdown list is populated from a table in my mysql database called leaders. the column names are ID, course , email.
2. When a user selects a course from the dropdown list and submits the document, i would like to send an email to the address attached to course, and in the email there will be a link to the new uploaded document on the server.
As i say the uploading of the document works at the moment but need some help modifying it with the above modifications. Could somebody help me please?.
Regards,
LPHP
At the moment I have it so a user can upload a document to the server.
What i need to be able to do now though is
1. The user selects a course from a dropdown list on the form, and then uploads the document. That dropdown list is populated from a table in my mysql database called leaders. the column names are ID, course , email.
2. When a user selects a course from the dropdown list and submits the document, i would like to send an email to the address attached to course, and in the email there will be a link to the new uploaded document on the server.
As i say the uploading of the document works at the moment but need some help modifying it with the above modifications. Could somebody help me please?.
Regards,
LPHP
<?PHP
require_once("Session.class");
$sess = new Session();
if($sess->getVariable("auth") != "yes")
{
header("Location: ../login-OOtest.php");
exit();
}
include('header.html');
echo("<center><h1>Paper Submissions</h1>");
echo("Please rename paper to delegate name. i.e joe_bloggs.pdf");
echo("<br />");
echo("<form action=\"./upload1.php\" method=\"post\" enctype=\"multipart/form-data\"/>");
echo("<label for=\"file\">Select a file:</label>
<input type=\"file\" name=\"userfile\" id=\"file\"/>
<button>Upload File</button></center>");
include('footer.html');
?>
<?PHP
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
echo 'Your file upload was successful, view the file <a href="' . $upload_path . $filename . '" title="Your File">here</a>';
// It worked.
else
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
?>
ASKER
would i do this?
bear with me please, I'm new to all this :'(
bear with me please, I'm new to all this :'(
upload.php
<?PHP
require_once("includes/account.class");
require_once("includes/database.class");
try {
$db = new Database("includes/vars.inc");
// use database "test"
$db->useDatabase("test");
// create new account.
$conn = new connection($db->getConnection(), "leaders");
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
include('header.html');
$list = mysql_query("SELECT * FROM leaders");
echo("<center><h1>Paper Submissions</h1>");
echo("Please rename paper to delegate name. i.e joe_bloggs.pdf");
echo("<br />");
echo("<form action=\"./upload1.php\" method=\"post\" enctype=\"multipart/form-data\"/>");
echo("<label for=\"file\">Select a file:</label>
<input type=\"file\" name=\"userfile\" id=\"file\"/>
<select name=\"list\" size=\"10\"></select>
<option value=\"$list['course']\"></option>
<button>Upload File</button></center>");
include('footer.html');
?>
upload1.php
<?PHP
/**
require_once("includes/account.class");
require_once("includes/database.class");
try {
$db = new Database("includes/vars.inc");
// use database "test"
$db->useDatabase("test");
// create new account.
$conn = new connection($db->getConnection(), "leaders");
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$course_details = mysql_query("SELECT * FROM leaders WHERE ID=" .
$_REQUEST['courseID']);
$email_message = "A user has just submitted a file for the course " .
mysql_result($course_details,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename
$email_address = mysql_result($course_details,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
else
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
?>
Are you asking for help with accessing your MySQL database? In other words, are you asking about the code in lines 6 - 16?
ASKER
I am reusing code from another script (my login script) to connect to the database. I have spotted the error on line 11 which should be new Account.
Now the connection is there though i need help with the form, so it populates the listbox so i can pick a course, and then upload document and click submit. Then it runs upload1.php and hopefully when done uploads the document to a directory and also sends an email with the link to the email associated with that course.
Now the connection is there though i need help with the form, so it populates the listbox so i can pick a course, and then upload document and click submit. Then it runs upload1.php and hopefully when done uploads the document to a directory and also sends an email with the link to the email associated with that course.
Personally, I use a different method for connecting to and accessing the database. With your connection method, I'm not sure if my code will work, but let's give it a shot. If it doesn't work, let me know and I'll show you my connection method... but you'll need to know your database's address and your logon name and password.
<!-- You'll want to put this code up top, where you've
currently got your try/catch block //-->
<?php
//connect to MySQL and select database
$db = new Database("includes/vars.inc");
mysql_select_db("test",$db) or die("Cannot select database");
if($_REQUEST['courseID']=="") {
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResult);
} else {
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
?>
<!-- Add this code wherever you want your listbox to appear //-->
<?php
//print dropdown select box of courses
echo "<select name='courseID'>";
for($i=0;$i<$numCourses;$i++) {
echo "<option value='" .
mysql_result($courseResult,$i,"ID") . "'>";
echo mysql_result($courseResult,$i,"course");
echo "</option>";
}
echo "</select>";
?>
<!-- The following is an adapted version of the first code block
I posted in response to your question; my same notes and suggestions
from my first post apply //-->
<?php
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$email_message = "A user has just submitted a file for the course " .
mysql_result($courseDetails,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename
$email_address = mysql_result($courseDetails,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
} else {
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
}
?>
ASKER
thank you, I will try have a go at this now. Thank you for helping me , I need it :o
It's my pleasure. I love this stuff! :-)
ASKER
have i got the first page correct .. upload.php?
and in the 2nd page upload1.php phpedit is showing an error on this line
$email_address = mysql_result($courseDetail s,0,"email "); saying unexpectid T variable ??
and in the 2nd page upload1.php phpedit is showing an error on this line
$email_address = mysql_result($courseDetail
<?PHP
try {
//connect to MySQL and select database
$db = new Database("includes/vars.inc");
mysql_select_db("test",$db) or die("Cannot select database");
if($_REQUEST['courseID']=="") {
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResult);
} else {
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
include('header.html');
echo("<center><h1>Paper Submissions</h1>");
echo("Please rename paper to delegate name. i.e joe_bloggs.pdf");
echo("<br />");
echo("<form action=\"./upload1.php\" method=\"post\" enctype=\"multipart/form-data\"/>");
echo("<label for=\"file\">Select a file:</label>");
echo("<input type=\"file\" name=\"userfile\" id=\"file\"/>");
//print dropdown select box of courses
echo("<select name='courseID'>");
for($i=0;$i<$numCourses;$i++) {
echo("<option value='" . mysql_result($courseResult,$i,"ID") . "'>");
echo mysql_result($courseResult,$i,"course");
echo("</option>");
}
echo ("</select>");
echo ("<button>Upload File</button></center>");
include('footer.html');
?>
<?PHP
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$email_message = "A user has just submitted a file for the course " .
mysql_result($courseDetails,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename
$email_address = mysql_result($courseDetails,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
} else {
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
}
?>
Sorry, I wasn't looking very closely, and I assumed all the code was in one page. Your code for the first page looks ok... because you're not doing everything in one page, though, you can remove that conditional at the top and just stick with:
As for your second page, you need to access your database again. Use the following code at the beginning of the file, just like you do in the first page. The way you've got it above, it shouldn't work. However, if after you update it as below, you still get that "unexpected T variable" error, check to make sure your field name is correct (i.e. are you sure the field is called "email"?).
About editing your previous post to remove your name... I don't have the foggiest. Sorry!
try {
When you load it up, does the list populate ok?
//connect to MySQL and select database
$db = new Database("includes/vars.in c");
mysql_select_db("test",$db ) or die("Cannot select database");
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResul t);
}$db = new Database("includes/vars.in
mysql_select_db("test",$db
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResul
As for your second page, you need to access your database again. Use the following code at the beginning of the file, just like you do in the first page. The way you've got it above, it shouldn't work. However, if after you update it as below, you still get that "unexpected T variable" error, check to make sure your field name is correct (i.e. are you sure the field is called "email"?).
About editing your previous post to remove your name... I don't have the foggiest. Sorry!
<?php
try {
//connect to MySQL and select database
$db = new Database("includes/vars.inc");
mysql_select_db("test",$db) or die("Cannot select database");
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
?>
ASKER
I am still getting the unexpected T variable" error on phpedit.
after $filename and before $email_address is their suppost to be a semi-colon or something ?
The first script is loading fine and populating the box, so looks like i just need to fix this error and then i will beable to test.
after $filename and before $email_address is their suppost to be a semi-colon or something ?
The first script is loading fine and populating the box, so looks like i just need to fix this error and then i will beable to test.
"http://www.mydomainname.com/uploads/" . $filename
$email_address = mysql_result($courseDetails,0,"email");
You're right-- we're missing a semicolon there. Haha, listen to me saying "we." Yes, I left out that semicolon. Add that in after $filename, and you should be good. I'm an idiot for not looking right there when you told me you had a parse error.
ASKER
Ok I am getting somwhere i think. I have got rid of that error, and now the file is being uploaded correctly but error messages are appearing also.
Notice: Undefined variable: courseDetails in /var/www/vhosts/numyspace. co.uk/web_ users/home /~unn_r031 923/public _html/Test ing/upload 1TEST.php on line 47
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/numyspace. co.uk/web_ users/home /~unn_r031 923/public _html/Test ing/upload 1TEST.php on line 47
Notice: Undefined variable: courseDetails in /var/www/vhosts/numyspace. co.uk/web_ users/home /~unn_r031 923/public _html/Test ing/upload 1TEST.php on line 51
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/numyspace. co.uk/web_ users/home /~unn_r031 923/public _html/Test ing/upload 1TEST.php on line 51
my table is definitely leaders and the 3 columns are
"courseID"
"course"
"email"
My list box is populating ok, then i search for the document and submit and then it shows a link on the page saying the the document was uploaded successfully, but with those 3 errors underneath.
Notice: Undefined variable: courseDetails in /var/www/vhosts/numyspace.
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/numyspace.
Notice: Undefined variable: courseDetails in /var/www/vhosts/numyspace.
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/numyspace.
my table is definitely leaders and the 3 columns are
"courseID"
"course"
"email"
My list box is populating ok, then i search for the document and submit and then it shows a link on the page saying the the document was uploaded successfully, but with those 3 errors underneath.
<?PHP
try {
//connect to MySQL and select database
// Connects to your Database
mysql_connect("localhost", "xx", "xx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResult);
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
include('header.html');
echo("<center><h1>Paper Submissions</h1>");
echo("Please rename paper to delegate name. i.e joe_bloggs.pdf");
echo("<br />");
echo("<form action=\"./upload1TEST.php\" method=\"post\" enctype=\"multipart/form-data\"/>");
echo("<label for=\"file\">Select a file:</label>");
echo("<input type=\"file\" name=\"userfile\" id=\"file\"/>");
//print dropdown select box of courses
echo("<select name='courseID'>");
for($i=0;$i<$numCourses;$i++) {
echo("<option value='" . mysql_result($courseResult,$i,"ID") . "'>");
echo mysql_result($courseResult,$i,"course");
echo("</option>");
}
echo ("</select>");
echo ("<button>Upload File</button></center>");
include('footer.html');
?>
ASKER
<?PHP
try {
//connect to MySQL and select database
// Connects to your Database
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$email_message = "A user has just submitted a file for the course " .
mysql_result($courseDetails,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename;
$email_address = mysql_result($courseDetails,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
} else {
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
}
?>
Okay, you're missing the code from that last block of code I posted. Instead of what you put in your last post, it needs to be as below. Do you see where $courseDetails is assigned a recordset result? That's what's missing above.
<?PHP<?php
try {
//connect to MySQL and select database
$db = new Database("includes/vars.inc");
mysql_select_db("test",$db) or die("Cannot select database");
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
?>
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$email_message = "A user has just submitted a file for the course " .
mysql_result($courseDetails,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename;
$email_address = mysql_result($courseDetails,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
} else {
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
}
?>
Grrr... See below. Sorry, typo in last.
<?PHP
try {
//connect to MySQL and select database
$db = new Database("includes/vars.inc");
mysql_select_db("test",$db) or die("Cannot select database");
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
// Configuration - Options
// These will be the types of file that will pass the validation.
$allowed_filetypes = array('.doc','.txt','.pdf');
// Maximum filesize in BYTES.
$max_filesize = 2000000;
// The place the files will be uploaded to (currently /uploads/ directory).
$upload_path = './uploads/';
// Get the name of the file (including file extension).
$filename = $_FILES['userfile']['name'];
// Get the extension from the filename.
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
// Check if the filetype is allowed, if not DIE and inform the Delegate.
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
// Check the filesize, if it is too large then DIE and inform the Delegate.
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
// Check if we can upload to the specified path, if not DIE and inform the Delegate.
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
// Upload the file to your specified path.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) {
echo 'Your file upload was successful, view the file <a href="' .
$upload_path . $filename . '" title="Your File">here</a>';
$email_message = "A user has just submitted a file for the course " .
mysql_result($courseDetails,0,"course") .
". That file can be downloaded here: " .
"http://www.mydomainname.com/uploads/" . $filename;
$email_address = mysql_result($courseDetails,0,"email");
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","joe@mydomainname.com");
ini_set("SMTP","mail.mydomainname.com");
mail($email_address, "joe@mydomainname.com", "New File Upload!", $email_message);
// It worked.
} else {
// It failed :(.
echo 'There was an error during the file upload. Please try again.';
}
?>
ASKER
I have changed my code now, and it is the same as yours other than i am using this for connection below.
Now i am getting the following error
Cannot execute details query
Which is something to do with the SQL query ?
Now i am getting the following error
Cannot execute details query
Which is something to do with the SQL query ?
try {
//connect to MySQL and select database
// Connects to your Database
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
With the code you just posted, add in an echo statement so we can see if there's something wrong with the SQL you're trying to execute. Let's make sure we're getting good data from that courseID.
try {
//connect to MySQL and select database
// Connects to your Database
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
//get details for selected course
$courseQuery = "SELECT * FROM leaders WHERE ID = " . $_REQUEST['courseID'];
echo "<p>" . $courseQuery ."<p>";
$courseDetails = mysql_query($courseQuery) or die("Cannot execute details query");
}
ASKER
SELECT * FROM leaders WHERE ID =
Cannot execute details query
Cannot execute details query
Yep, you're not getting any data from that drop down menu (listbox). First thing, load up your initial page and right click to show the source. Make sure that when your list is populating, it's actually getting values (i.e. make sure each <option> tag has a value in the value attribute). If it does, run through your entire process, making sure to pick a course that you know the value for. See what your error message says then.
I've not dealt much with file upload forms, so I'm actually not sure if other form fields (like this courseID listbox) get submitted when the file itself uploads. You may need to separate that out into a separate step.
I've not dealt much with file upload forms, so I'm actually not sure if other form fields (like this courseID listbox) get submitted when the file itself uploads. You may need to separate that out into a separate step.
ASKER
<form action="./upload1TEST.php" method="post" enctype="multipart/form-data"/><label for="file">Select a file:</label><input type="file" name="userfile" id="file"/><select name='courseID'><br />
<b>Warning</b>: mysql_result() [<a href='function.mysql-result'>function.mysql-result</a>]: ID not found in MySQL result index 3 in <b>/public_html/Test/uploadTEST.php</b> on line <b>40</b><br />
<option value=''>Paper_Topic_1</option><br />
<b>Warning</b>: mysql_result() [<a href='function.mysql-result'>function.mysql-result</a>]: ID not found in MySQL result index 3 in <b>/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_r031923/public_html/Testing/uploadTEST.php</b> on line <b>40</b><br />
<option value=''>Paper_Topic_2</option></select><button>Upload File</button>
ASKER
working now, ID should be courseID on both pages : ) YaY!
Just need last query on the email.
the line
ini_set("SMTP","mail.mydom ainname.co m");
what is this ? is that like jondoh@hotmail.com ?
Just need last query on the email.
the line
ini_set("SMTP","mail.mydom
what is this ? is that like jondoh@hotmail.com ?
Can you post for me all of your code from your initial page? I think I see the problem, but I don't want to muddy the waters any further! :-)
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
It is now looks like it is working now ID has changed to courseID.
Not sending the email though, I not sure how to configure it though
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","jonblabl a@hotmail. com");
ini_set("SMTP","mail.mydom ainname.co m");
mail($email_address, "New Paper Submission", "New File Upload!", $email_message);
Not sending the email though, I not sure how to configure it though
// mydomainname.com is your domain and joe@mydomainname.com is your email
ini_set ("sendmail_from","jonblabl
ini_set("SMTP","mail.mydom
mail($email_address, "New Paper Submission", "New File Upload!", $email_message);
<?PHP
try {
//connect to MySQL and select database
// Connects to your Database
mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
//generate resultset for first visit
$courseQuery = "SELECT * FROM leaders ORDER BY course ASC";
$courseResult = mysql_query($courseQuery) or die("Cannot execute list query");
$numCourses = mysql_numrows($courseResult);
}
catch(Exception $e) {
echo $e->getMessage() . "\n <br /> ";
exit();
}
include('header.html');
echo("<center><h1>Paper Submissions</h1>");
echo("Please rename paper to delegate name. i.e joe_bloggs.pdf");
echo("<br />");
echo("<form action=\"./upload1TEST.php\" method=\"post\" enctype=\"multipart/form-data\"/>");
echo("<label for=\"file\">Select a file:</label>");
echo("<input type=\"file\" name=\"userfile\" id=\"file\"/>");
//print dropdown select box of courses
echo("<select name='courseID'>");
for($i=0;$i<$numCourses;$i++) {
echo("<option value='" . mysql_result($courseResult,$i,"courseID") . "'>");
echo mysql_result($courseResult,$i,"course");
echo("</option>");
}
echo ("</select>");
echo ("<button>Upload File</button></center>");
include('footer.html');
?>
ASKER
sorry : ) Only just saw your new message. I will try your suggestions now Thank You
ASKER
ini_set("SMTP","smtp.uk.ao l.com"); that is my server address but it is not working
Yeah, there's probably no chance you would be able to send mail from either a hotmail or an aol address. But try removing both ini_set lines and just using the mail() function with your email address. It may work, who knows? Just depends how your server's setup. If not, try that ini_set("SMTP","localhost" );
ASKER
I have tried all sorts here but cannot send the mail.
I have tried the ini_set("SMTP", "localhost");
Tried it with just the mail() function,
I have echo'd $email_address and it is picking out the correct address just somehow will not send the email. This is frustrating, I want to bury my head in the sand : (
I have tried the ini_set("SMTP", "localhost");
Tried it with just the mail() function,
I have echo'd $email_address and it is picking out the correct address just somehow will not send the email. This is frustrating, I want to bury my head in the sand : (
May I ask how your website is hosted? Is it a shared hosting deal-- an account you have with a company where you get X mb of space on their machine? Or is it on a dedicated server you have direct access to?
Unfortunately, this mailing issue is especially tricky because of all the variables involved, especially now that the web community is cracking down so hard on spammers.
Unfortunately, this mailing issue is especially tricky because of all the variables involved, especially now that the web community is cracking down so hard on spammers.
ASKER
its a university account http://www.numyspace.co.uk/ I think they pay these for the web hosting ? but i am not sure.
The tricky thing here-- what I'm assuming you're mainly asking about-- is the mail component of it. If not, let me know. What's tricky is that it all depends on how your mail server is setup. Are you using shared hosting? Do you have a dedicated server? Does your domain, in fact, have its own separate mail server?
The code below is fairly standard and may work as is. If not, you can try:
I know that's a bit wide open. Let me know if it helps!
Open in new window