Go Back   Novahq.net Forum > phphq.Net > phphq.Net Forums

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 03-05-2012, 04:05 AM
synchro34 is offline synchro34
Registered User

Join Date: Mar 2012
Location: Virginia
Posts: 3

Phmailer display..

Hi, I am using phMailer Version: 1.5.1.

I added 2 extra fields to phmailer, (interest and contact method) and when I submit the form,
I get Interest: 1 Contact Method: 1 then the message text..

First question is why I am getting numbers (1) after my added field names,
and the second question is can i display the entries as form, I mean can the layout be like a block or lines.

Ex:
Interest: Sale
Contact Method: Phone
Message: Something...

I try to find an answer to these questions in the forum but I couldn't really find..
Please help..
Thanks..
Reply With Quote
  #2  
Old 03-05-2012, 08:09 AM
Scott is offline Scott
Scott's Avatar
AKA. Panther

Join Date: Sep 2001
Location: Minneapolis, MN
Posts: 10,919

Can you post the code you used to add the fields?
__________________

04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq
Reply With Quote
  #3  
Old 03-05-2012, 01:50 PM
synchro34 is offline synchro34
Registered User

Join Date: Mar 2012
Location: Virginia
Posts: 3

Phmailer display..

Php part:

<?php

// This will show in the browsers title bar and at the top of the form.
$websitename="BACKSPLASHINSTALL.COM";

// Allowed file types. Please remember to keep the format of this array, add the file extensions you want
// WITHOUT the dot. Please also be aware that certain file types (such as exe) may contain malware.
$allowtypes=array("zip", "rar", "txt", "doc", "jpg", "png", "gif");

// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="backsplashinstallation@gmail.com";

// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="2";

// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments,
// 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="3";

// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$max_file_size="2048";

// Maximum file size for all attachments combined in KB. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$max_file_total="6144";

// Value for the Submit Button
$submitvalue=" Submit to Get Free Estimate ";

// Value for the Reset Button
$resetvalue=" Reset Form ";

// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="No Subject";

// Because many requested it, this feature will add a drop down box for the user to select a array of
// subjects that you specify below.
// True = Use this feature, False = do not use this feature
$use_subject_drop=true;

// This is an array of the email subjects the user can pick from. Make sure you keep the format of
// this array or you will get errors.
// Look at <http://novahq.net/forum/showthread.php?t=38718> for examples on how to use this feature.
$subjects=array("I would like to get an estimate.", "I have purchased tiles, I am ready for the backsplash installation.");

// This is an array of the email addresses for the array above. There must be an email FOR EACH
// array value specified above. You can have only 1 department if you want.
// YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly!
// The emails also must be in order for what you specify above!
// Seperate email addresses by a comma to send an email to multiple addresses.
$emails=array("backsplashinstallation@gmail.com", "backsplashinstallation@gmail.com");

// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this:
// <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";</script>
$thanksmessage="Thank you! Your free estimate form has been submitted, we will respond you shortly.";

//////////////////////////////////////////////////////////////////////////////////////

$interests=array("I would like to get an estimate.", "I have purchased tiles, I am ready for the backsplash installation.");

$contactmethods=array("E-Mail", "Phone");

//////////////////////////////////////////////////////////////////////////////////////

/*
//================================================== ==============================
* ! ATTENTION !
//================================================== ==============================
: Don't edit below this line.
*/

// Function to get the extension of the uploaded file.
function get_ext($key) {
$key=strtolower(substr(strrchr($key, "."), 1));
$key=str_replace("jpeg", "jpg", $key);
return $key;
}

// Function used to attach files to the message
function phattach($file, $name, $boundary) {

$fp=fopen($file, "r");
$str=fread($fp, filesize($file));
$str=chunk_split(base64_encode($str));
$message="--".$boundary."\n";
$message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
$message.="Content-disposition: attachment; filename=\"".$name."\"\n";
$message.="Content-Transfer-Encoding: base64\n";
$message.="\n";
$message.="$str\n";
$message.="\n";

return $message;
}

//Little bit of security from people forging headers. People are mean sometimes
function clean_msg($key) {
$key=str_replace("\r", "", $key);
$key=str_replace("\n", "", $key);
$find=array(
"/bcc\:/i",
"/Content\-Type\:/i",
"/Mime\-Type\:/i",
"/cc\:/i",
"/to\:/i"
);
$key=preg_replace($find, "", $key);
return $key;
}

// Initilize some variables
$error="";
$sent_mail=false;

// When the form is submitted
If($_POST['submit']==true) {
extract($_POST, EXTR_SKIP);

// Check the form for errors
If(trim($contactmethods)=="") {
$error.="Please choose preferred contact method!<br />";
}

If(trim($yourname)=="") {
$error.="You did not enter your name!<br />";
}

If(trim($youremail)=="") {
$error.="You did not enter your email!<br />";
} Elseif(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/", $youremail)) {
$error.="Invalid email address.<br />";
}

If(trim($emailsubject)=="") {
$emailsubject=$defaultsubject;
}

If(trim($yourmessage)=="") {
$error.="You did not enter a message!<br />";
}

// Verify Attchment info
If($allowattach > 0) {

// Get the total size of all uploaded files
If((array_sum($_FILES['attachment']['size'])) > ($max_file_total*1024)) {

$error.="The max size allowed for all your files is ".$max_file_total."kb<br />";

} Else {

//Loop through each of the files
For($i=0; $i <= $allowattach-1; $i++) {

If($_FILES['attachment']['name'][$i]) {

//Check if the file type uploaded is a valid file type.
If(!in_array(get_ext($_FILES['attachment']['name'][$i]), $allowtypes)) {

$error.= "Invalid file type for your file: ".$_FILES['attachment']['name'][$i]."<br />";

//Check the size of each file
} Elseif(($_FILES['attachment']['size'][$i]) > ($max_file_size*1024)) {

$error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big.<br />";

} // If in_array

} // If Files

} // For

} // Else array_sum($_FILES['attachment']['size'])

} // If Allowattach

If($error) {

$display_message=$error;

} Else {

If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
$subject_count=count($subjects);
$email_count=count($emails);

If($subject_count==$email_count) {

$myemail=$emails[$emailsubject];
$emailsubject=$subjects[$emailsubject];

} // If $subject_count

} // If $use_subject_drop

$boundary=md5(uniqid(time()));

//Headers
$headers="Return-Path: <".clean_msg($youremail).">\n";
$headers.="From: ".clean_msg($yourname)." <".clean_msg($youremail).">\n";
$headers.="X-Mailer: PHP/".phpversion()."\n";
$headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
$headers.="X-Priority: ".$priority."\n";
$headers.="MIME-Version: 1.0\n";
$headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$headers.="This is a multi-part message in MIME format.\n";

//Message
$message = "--".$boundary."\n";
$message.="Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message.="Content-Transfer-Encoding: quoted-printable\n";
$message.="\n";
$message.="$yourmessage \n\n";
$message.="Interest: $_POST[interest]";
$message.="\n";
$message.="Contact Method: $_POST[contactmethod]";
$message.="\n";
$message.=clean_msg(nl2br(strip_tags($yourmessage) ));
$message.="\n";

//Add attachments to message
If($allowattach > 0) {

For($i=0; $i <= $allowattach-1; $i++) {

If($_FILES['attachment']['tmp_name'][$i]) {

$message.=phattach($_FILES['attachment']['tmp_name'][$i], $_FILES['attachment']['name'][$i], $boundary);

} //If $_FILES['attachment']['name'][$i]

} //For

} // If

// End the message
$message.="--".$boundary."--\n";

// Send the completed message
If(!mail($myemail, clean_msg($emailsubject), $message, $headers)) {

Exit("An error has occured, please report this to the website administrator.\n");

} Else {

$sent_mail=true;

}

} // Else

} // $_POST


-------------------------------------------------------------------------

Part of the html that i changed :

<script type="text/javascript">
var error="";
e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

function Checkit(theform) {
if(theform.yourname.value=="") {
error+="You did not enter your name\n";
}

if(theform.contactmethods.value=="") {
error+="Please choose preferred contact method\n";
}

if(theform.youremail.value=="") {
error+="You did not enter your email\n";
} else if(!e_regex.test(theform.youremail.value)) {
error+="Invalid email address\n";
}

if(theform.yourmessage.value=="") {
error+="You did not enter your message\n";
}

if(error) {
alert('**The form returned the following errors:**\n\n' + error);
error="";
return false;
} else {
return true;
}
}
</script>

</head>
<body>
<?If($display_message) {?>

<div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />

<?}?>

<?If($sent_mail!=true) {?>

<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">
<table align="center" class="table">
<tr>
<td colspan="2" class="table_header" width="100%"><?=$websitename;?></td>
</tr>
<?If($allowattach > 0) {?>
<tr>
<td width="100%" class="attach_info" colspan="2">
<b>Valid Attachment Types:</b> <?=implode($allowtypes, ", ");?><br />
<b>Max size per file:</b> <?=$max_file_size?>kb.<br />
<b>Max combined file size:</b> <?=$max_file_total?>kb.
</td>
</tr>
<?}?>

<tr>
<td width="50%" class="table_body">Interest? </td>
<td width="50%" class="table_body">

<select name="interest" size="1">
<?while(list($key,$val)=each($interests)) {?>

<option value="<?=intval($key);?>"><?=htmlspecialchars(str ipslashes($val));?></option>

<?}?>
</select>

</td>
</tr>

<tr>
<td width="50%" class="table_body">Contact Method? </td>
<td width="50%" class="table_body">

<select name="contactmethod" size="1">
<?while(list($key,$val)=each($contactmethods)) {?>

<option value="<?=intval($key);?>"><?=htmlspecialchars(str ipslashes($val));?></option>

<?}?>
</select><span class="error_message">*</span>

</td>
</tr>


<tr>
<td width="50%" class="table_body">Name:</td>
<td width="50%" class="table_body"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname) );?>" /><span class="error_message">*</span></td>
</tr>

<tr>
<td width="50%" class="table_body">Phone:</td>
<td width="50%" class="table_body"><input name="phone" type="text" size="30" value="<?=stripslashes(htmlspecialchars($phone));? >" /><span class="error_message">*</span></td>
</tr>

<tr>
<td width="50%" class="table_body">Your Email:</td>
<td width="50%" class="table_body"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail ));?>" /><span class="error_message">*</span></td>
</tr>
<tr>
<td width="50%" class="table_body">Subject:</td>
<td width="50%" class="table_body">

<?If($use_subject_drop AND is_array($subjects)) {?>
<select name="emailsubject" size="1">
<?while(list($key,$val)=each($subjects)) {?>

<option value="<?=intval($key);?>"><?=htmlspecialchars(str ipslashes($val));?></option>

<?}?>
</select>


<?} Else {?>

<input name="emailsubject" type="text" size="30" value="<?=stripslashes(htmlspecialchars($emailsubj ect));?>" />

<?}?>

</td>
</tr>
Reply With Quote
  #4  
Old 03-08-2012, 08:45 PM
synchro34 is offline synchro34
Registered User

Join Date: Mar 2012
Location: Virginia
Posts: 3

Hi again..
I still need help to get the entry selections as block, (each field and responses should be separate line.)
I could not solve this problem by myself..
And still i am having the array responds as numbers..
Reply With Quote
  #5  
Old 03-09-2012, 12:29 PM
Scott is offline Scott
Scott's Avatar
AKA. Panther

Join Date: Sep 2001
Location: Minneapolis, MN
Posts: 10,919

Just sent you a PM. You need to remove the intval functions for the key values during the while loops. You should also use the security functions for the message body.
__________________

04' Dodge SRT-4, Mopar Stage 3, 406whp/436wtq
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 08:43 AM.




Powered by vBulletin®