I'm pretty new to PHP, and by new, I mean I have never done it or any other form of coding before starting my job a month or so ago. I've basically been manually trying to pick up PHP as I go. The website that I am working on had its core built, but I am trying to add functionality to it.
The website already had the contact for that you can see here: http://www.janova.us/index.php/contact
The form would submit an email to an email address based on which subject was picked.
I have since added a simple file upload field. My problem, however, is tying in the form to the email. I need to upload it and then send it as an attachment with the email.
Here is what I am working with currently:
<div id="breadCrumbs">
<a href="index.php">MAIN</a>
>
<a href="index.php/contact">CONTACT</a>
</div>
<?
$user =& JFactory::getUser();
$user_id = $user -> get('id');
$user_name = $user -> get('name');
$db = JFactory::getDBO();
$query = "SELECT jos_content.introtext, jos_content.fulltext FROM jos_content WHERE catid = 68 AND sectionid = 5 LIMIT 0,3";
$db->setQuery($query);
$rows = $db->loadRowList();
?>
<div id="contactTop">
<div id="contactBanner"></div>
<div id="contactInfo">
<?
echo $rows[0][0];
echo $rows[0][1];
?>
</div>
</div>
<div id="contactGreeting">
<?
echo $rows[1][0];
echo $rows[1][1];
?>
</div>
<?
if($user_id > 0)
{
$query = "SELECT jos_users.name, jos_users.email FROM jos_users WHERE id = ".$user_id;
$db->setQuery($query);
$user_data = $db->loadRow();
}
if(isset($_POST["submit"]))
{
$error = false;
$subjectError = false;
$messageError = false;
$nameError = false;
$emailError = false;
if(!isset($_POST["subject"]) || empty($_POST["subject"]))
{
$error = true;
$subjectError = true;
}
if(!isset($_POST["message"]) || empty($_POST["message"]))
{
$error = true;
$messageError = true;
}
if(!isset($_POST["name"]) || empty($_POST["name"]))
{
$error = true;
$nameError = true;
}
if(!isset($_POST["email"]) || empty($_POST["email"]))
{
$error = true;
$emailError = true;
}
else if(!ereg("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$",$_POST["email"]))
{
$error = true;
$emailError = true;
echo $_POST["email"];
}
if(!$error)
{
$to = $_POST["subject"]."@janova.us";
$from = $_POST["email"];
$subject = $_POST["subject"]." by: ".$_POST["name"];
$message = $_POST["subject"]."\n\r\n\r".$_POST["message"]."\n\r\n\r-".$_POST["name"];
$headers = "From: $from";
<!----------BEGIN ADDED CODE------------------------->
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
<!-----------END ADDED CODE---------------->
mail($to,$subject,$message,$headers);
echo "Your request has been submitted.";
}
else
{
?>
<form action="#" id="contactForm" method="post">
<div id="contactFormLeft">
<?
if($user_id > 0)
{
?>
<label>
Your name<?
if($nameError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<input type="text" name="name" value="<?=$user_data[0];?>"/><br/>
<label>
Your email<?
if($emailError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<input type="text" name="email" value="<?=$user_data[1];?>"/><br/>
<?
}
else
{
?>
<label>
Your name<?
if($nameError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<input type="text" name="name" value="<?=$_POST["name"];?>"/><br/>
<label>
Your email<?
if($emailError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<input type="text" name="email" value="<?=$_POST["email"];?>"/><br/>
<?
}
?>
<label>
Subject<?
if($subjectError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<select name="subject">
<option value="support" <? if($_POST["subject"]=="support") { echo "selected ";}?>>Support</option>
<option value="training" <? if($_POST["subject"]=="training") { echo "selected ";}?>>Training</option>
<option value="hr" <? if($_POST["subject"]=="hr") { echo "selected ";}?>>HR</option>
<option value="sales" <? if($_POST["subject"]=="sales") { echo "selected ";}?>>Consultation</option>
</select>
<br/>
<input type="submit" id="submit" name="submit" value=""/><br/>
</div>
<div id="contactFormRight">
<label>
Message<?
if($messageError)
{
?><span class="formError">*</span><?
}?>
</label><br/>
<textarea name="message"><?=$_POST["message"];?></textarea><br/>
</div>
</form>
<?
}
}
else
{
?>
<!--Request More Info AKA Contact Page-->
<!--Intro Text from Article-->
<form action="#" id="contactForm" method="post">
<div id="contactFormLeft">
<?
if($user_id > 0)
{
?>
<label>
Your name
</label><br/>
<input type="text" name="name" value="<?=$user_data[0];?>"/><br/>
<label>
Your email
</label><br/>
<input type="text" name="email" value="<?=$user_data[1];?>"/><br/>
<?
}
else
{
?>
<label>
Your name
</label><br/>
<input type="text" name="name" value="<?=$_POST["name"];?>"/><br/>
<label>
Your email
</label><br/>
<input type="text" name="email" value="<?=$_POST["email"];?>"/><br/>
<?
}
?>
<label>
Subject
</label><br/>
<select name="subject">
<option value="support" <? if($_POST["subject"]=="support") { echo "selected ";}?>>Support</option>
<option value="sales" <? if($_POST["subject"]=="sales") { echo "selected ";}?>>Consultation</option>
<option value="training" <? if($_POST["subject"]=="training") { echo "selected ";}?>>Training</option>
<option value="hr" <? if($_POST["subject"]=="hr") { echo "selected ";}?>>HR</option>
</select>
<br/>
<input type="submit" id="submit" name="submit" value=""/>
</div>
<div id="contactFormRight">
<label>
Message
</label><br/>
<textarea name="message"><?=$_POST["message"];?></textarea><br/>
<!-----------ADDED FILE UPLOAD BOX ------------------>
<label>
Attach File:
</label>
<br/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input type="file" name="fileatt" />
<br/>
<!------------END FILE UPLOAD BOX--------------------->
</div>
</form>
<?
}
?>
I have commented the changes I have added to the original code so that you can see what I have done. Any input on this would be greatly appreciated. Thanks.