Page 2 of 2
Re: Hi
Posted: Thu Feb 17, 2005 5:12 pm
by 100rk
I am so sorry - forgot about it and take a look here:
http://wiki.cmsmadesimple.org/pmwiki.ph ... tedModules
and try module 'FeedbackForm' - with all Your needs it will be good point.
Hi
Posted: Fri Feb 18, 2005 9:22 am
by Indrek
I think that I had damaged my CMS somewhere.
I reinstalled my CMS and now your code works very well.
Big big thanks to you.
But I have one little problem.
I want to use letters õ ä ö ü in the form, but it shows errors insted.
http://www.balti.ee/blc/index.php?page=Kontakt
Do you now how to fix that?
Modify the contact form
Posted: Fri Feb 18, 2005 10:26 am
by Ted
Change the encoding for your template to ISO-8859-1. It's at the bottom of the edit template screen.
Hi
Posted: Fri Feb 18, 2005 11:24 am
by Indrek
I did as you sed, but now the õ ä ö ü letters in menu show errors.
http://www.balti.ee/blc/index.php?page=Kontakt
Modify the contact form
Posted: Fri Feb 18, 2005 11:33 am
by jah
There are a number of requests for encoding and it is not so obvious for everyone what the code should be. Maybe a dropdown list would make it simpler.
E.g like this:

Hi
Posted: Fri Feb 18, 2005 12:11 pm
by Indrek
I had errors with letters õ ä ö ü in my contact form, but no errors in menu.
When I changed the encoding to ISO-8859-1 in template page, then I have no errors in contact form but there are errors in menu.
http://www.balti.ee/blc/index.php?page=Kontakt
Modify the contact form
Posted: Fri Feb 18, 2005 12:37 pm
by Ted
jah, that's a really good idea. I think I might do that.
Hi
Posted: Fri Feb 18, 2005 1:06 pm
by Indrek
Your solution solved my problem also.
Thanks.

Re: Modify the contact form
Posted: Sun Jan 18, 2009 5:18 pm
by SimonSchaufi
this is almost the same file but not encoded in hex and xhtml valid
Code: Select all
<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://cmsmadesimple.sf.net
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
function smarty_cms_function_contact_form_attachment($params, &$smarty) {
global $gCms;
if (empty($params['email'])) {
echo "Missing parameter 'email' - check plugin call";
return;
}
if (isset($_POST["cf_submit"])) {
$err = '';
$to = $params['email'];
$email = '';
if (!empty($_POST['cf_email'])) {
$email = trim($_POST['cf_email']);
if (!sendmail::Validate_email($email)) $err .= '<li>Wrong format of e-mail adress!</li>';
}
else $err .= '<li>Where is Your e-mail?</li>';
$name = '';
if (!empty($_POST['cf_name'])) $name = trim($_POST['cf_name']);
else $err .= '<li>Where is Your name?</li>';
$subject = '';
if (!empty($_POST['cf_subject'])) $subject = trim($_POST['cf_subject']);
else $err .= '<li>Where is subject of Your message?</li>';
$msg_part1 = '';
if (!empty($_POST['cf_msg_part1'])) $msg_part1 = trim($_POST['cf_msg_part1']);
else $err .= '<li>Where is part_1 of Your message?</li>';
$msg_part2 = '';
if (!empty($_POST['cf_msg_part2'])) $msg_part2 = trim($_POST['cf_msg_part2']);
// else $err .= '<li>Where is part_2 of Your message?</li>';
$msg_part3 = '';
if (!empty($_POST['cf_msg_part3'])) $msg_part3 = trim($_POST['cf_msg_part3']);
else $err .= '<li>Where is part_3 of Your message?</li>';
$file_name = '';
if (!empty($_FILES['cf_file'])) {
$file_name = "_cf_".$_FILES['cf_file']['name'];
$dest_file = $gCms->config["uploads_path"]."/".$file_name;
$try = 0;
while (file_exists($dest_file)) {
$file_name = $try."_cf_".$_FILES['cf_file']['name'];
$dest_file = $gCms->config["uploads_path"]."/".$file_name;
$try++;
}
$file_name = $dest_file;
if (!move_uploaded_file($_FILES['cf_file']['tmp_name'], $file_name)) {
$err .= "<li>Cannot move uploaded file to upload destination.</li>";
}
}
if (!empty($file_name)) {
if (($_FILES['cf_file']['error'])>0){
$err .= '<li>File is larger then limit 100kB, or there is other error with upload.</li>';
}
}
else $err .= '<li>Where is Your file?</li>';
if (empty($err)) {
$message_body = "Message part 1: ".$msg_part1;
$message_body .= ", message part 2: ".$msg_part2;
$message_body .= ", message part 3: ".$msg_part3;
$sendmail = new sendmail();
$sendmail->SetCharSet("ISO-8859-1");
$sendmail->from($name,$email);
$sendmail->to($to);
$sendmail->subject($subject);
$sendmail->text($message_body);
if (!empty($file_name)) $sendmail->attachment($file_name);
if ($sendmail->send()) {
echo '<div class="contactForm">';
echo 'Thank You for Your message.';
echo '</div>';
}
else echo '<ul class="error">Problem with sending e-mail message.</ul>';
return;
}
else {
echo '<ul class="error">'.$err.'</ul>';
}
}
echo '<div class="contactForm">';
echo '<form action="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'" method="post" enctype="multipart/form-data">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="100000" />';
echo '<p>Your name</p>';
echo '<input type="text" name="cf_name" value="'.$name.'" size="50" />';
echo '<p>Your e-mail</p>';
echo '<input type="text" name="cf_email" value="'.$email.'" size="50" />';
echo '<p>Subject</p>';
echo '<input type="text" name="cf_subject" value="'.$subject.'" size="50" />';
echo '<p>part_1 of message</p>';
echo '<input type="text" name="cf_msg_part1" value="'.$msg_part1.'" size="50" />';
echo '<p>part_2 of message</p>';
echo '<input type="text" name="cf_msg_part2" value="'.$msg_part2.'" size="50" />';
echo '<p>part_3 of message</p>';
echo '<textarea name="cf_msg_part3" cols="50" rows="10">'.$msg_part3.'</textarea>';
echo '<p>file for upload</p>';
echo '<input type="file" name="cf_file">';
echo '<p>';
echo "<input type=\"checkbox\" onclick=\"document.getElementById('cf_submit').disabled=!document.getElementById('cf_submit').disabled;\" /> ";
echo 'YES, I agree with BLABLABLABLA</p>';
echo '<input type="submit" id="cf_submit" name="cf_submit" value="SEND" disabled="disabled" />';
echo '</form>';
echo '</div>';
}
function smarty_cms_help_function_contact_form_attachment() {
?>
<h3>What does this do?</h3>
<p>Simple contact form with attachment. This can be used to allow others to send
an email message to the address specified.</p>
<h3>How do I use it?</h3>
<p>Just insert the tag into your template/page like: <code>{contact_form_attachment email="anybody@anywhere.org"}</code></p>
<h3>What parameters does it take?</h3>
<ul>
<li>email - The email address that the message will be sent to.</li>
</ul>
</p>
<?php
}
function smarty_cms_about_function_contact_form_attachment() {
?>
<p>Version: 1.0</p>
<?php
}
class sendmail {
var $emailheader = "";
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $charset = "";
var $emailsubject = "";
var $emailto = "";
var $attachment = array();
var $cc = array();
var $bcc = array();
function sendmail() {
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
$this->charset = "ISO-8859-1";
}
function SetCharSet($char) {
$this->charset = $char;
}
function Validate_email($email) {
if (!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})/i",$email)) {
return false;
}
return $email;
}
function from($name,$email) {
$this->emailheader .= 'From: '.$name.'<'.$email.'>'."\r\n";
}
function to($to) {
$this->emailto = $this->Validate_email($to);
}
function cc($cc) {
$this->cc[] = $cc;
}
function bcc($bcc) {
$this->bcc[] = $bcc;
}
function makeMimeMail() {
if(count($this->cc) > 0) {
$this->emailheader .= 'Cc: ';
for($i=0;$i<count($this->cc);$i++) {
if($i > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->cc[$i]);
}
$this->emailheader .= "\r\n";
}
if(count($this->bcc) > 0) {
$this->emailheader .= 'Bcc: ';
for($j=0;$j<count($this->bcc);$j++) {
if($j > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->bcc[$j]);
}
$this->emailheader .= "\r\n";
}
$this->emailheader .= 'MIME-Version: 1.0'."\r\n";
}
function subject($subject) {
$this->emailsubject = $subject;
}
function text($text) {
$this->textheader .= 'Content-Type: multipart/alternative; boundary="'.$this->textboundary.'"'."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/plain; charset="'.$this->charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n";
$this->textheader .= strip_tags($text)."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/html; charset="'.$this->charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n";
$this->textheader .= '<__html></__body>'.$text.'<__body></__html>'."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary.'--'."\r\n\r\n";
}
function attachment($attachfile) {
if(is_file($attachfile)) {
$attachment_header = '--'.$this->emailboundary."\r\n" ;
$attachment_header .= 'Content-Type: application/octet-stream; name="'.basename($attachfile).'"'."\r\n";
$attachment_header .= 'Content-Transfer-Encoding: base64'."\r\n";
$attachment_header .= 'Content-Disposition: attachment; filename="'.basename($attachfile).'"'."\r\n\r\n";
$file['content'] = fread(fopen($attachfile,"rb"),filesize($attachfile));
$file['content'] = base64_encode($file['content']);
$file['content'] = chunk_split($file['content'],72);
$this->attachment[] = $attachment_header.$file['content']."\r\n";
}
else {
die("File doesn't exist'!");
}
}
function send() {
$this->makeMimeMail();
$header = $this->emailheader;
if(count($this->attachment)>0) {
$header .= 'Content-Type: multipart/mixed; boundary="'.$this->emailboundary.'"'."\r\n\r\n";
$header .= '--'.$this->emailboundary."\r\n";
$header .= $this->textheader;
if(count($this->attachment) > 0) $header .= implode("",$this->attachment);
$header .= '--'.$this->emailboundary.'--';
}
else {
$header .= $this->textheader;
}
$result = mail("$this->emailto",$this->emailsubject,"",$header);
$this->deletememory();
return $result;
}
function deletememory() {
unset($this->emailheader);
unset($this->textheader);
unset($this->attachment);
}
}
?>
Re: Modify the contact form
Posted: Sun Jan 18, 2009 5:20 pm
by SimonSchaufi
this is the same file xhtml valid and not encoded
Code: Select all
<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://cmsmadesimple.sf.net
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
function smarty_cms_function_contact_form_attachment($params, &$smarty) {
global $gCms;
if (empty($params['email'])) {
echo "Missing parameter 'email' - check plugin call";
return;
}
if (isset($_POST["cf_submit"])) {
$err = '';
$to = $params['email'];
$email = '';
if (!empty($_POST['cf_email'])) {
$email = trim($_POST['cf_email']);
if (!sendmail::Validate_email($email)) $err .= '<li>Wrong format of e-mail adress!</li>';
}
else $err .= '<li>Where is Your e-mail?</li>';
$name = '';
if (!empty($_POST['cf_name'])) $name = trim($_POST['cf_name']);
else $err .= '<li>Where is Your name?</li>';
$subject = '';
if (!empty($_POST['cf_subject'])) $subject = trim($_POST['cf_subject']);
else $err .= '<li>Where is subject of Your message?</li>';
$msg_part1 = '';
if (!empty($_POST['cf_msg_part1'])) $msg_part1 = trim($_POST['cf_msg_part1']);
else $err .= '<li>Where is part_1 of Your message?</li>';
$msg_part2 = '';
if (!empty($_POST['cf_msg_part2'])) $msg_part2 = trim($_POST['cf_msg_part2']);
// else $err .= '<li>Where is part_2 of Your message?</li>';
$msg_part3 = '';
if (!empty($_POST['cf_msg_part3'])) $msg_part3 = trim($_POST['cf_msg_part3']);
else $err .= '<li>Where is part_3 of Your message?</li>';
$file_name = '';
if (!empty($_FILES['cf_file'])) {
$file_name = "_cf_".$_FILES['cf_file']['name'];
$dest_file = $gCms->config["uploads_path"]."/".$file_name;
$try = 0;
while (file_exists($dest_file)) {
$file_name = $try."_cf_".$_FILES['cf_file']['name'];
$dest_file = $gCms->config["uploads_path"]."/".$file_name;
$try++;
}
$file_name = $dest_file;
if (!move_uploaded_file($_FILES['cf_file']['tmp_name'], $file_name)) {
$err .= "<li>Cannot move uploaded file to upload destination.</li>";
}
}
if (!empty($file_name)) {
if (($_FILES['cf_file']['error'])>0){
$err .= '<li>File is larger then limit 100kB, or there is other error with upload.</li>';
}
}
else $err .= '<li>Where is Your file?</li>';
if (empty($err)) {
$message_body = "Message part 1: ".$msg_part1;
$message_body .= ", message part 2: ".$msg_part2;
$message_body .= ", message part 3: ".$msg_part3;
$sendmail = new sendmail();
$sendmail->SetCharSet("ISO-8859-1");
$sendmail->from($name,$email);
$sendmail->to($to);
$sendmail->subject($subject);
$sendmail->text($message_body);
if (!empty($file_name)) $sendmail->attachment($file_name);
if ($sendmail->send()) {
echo '<div class="contactForm">';
echo 'Thank You for Your message.';
echo '</div>';
}
else echo '<ul class="error">Problem with sending e-mail message.</ul>';
return;
}
else {
echo '<ul class="error">'.$err.'</ul>';
}
}
echo '<div class="contactForm">';
echo '<form action="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'" method="post" enctype="multipart/form-data">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="100000" />';
echo '<p>Your name</p>';
echo '<input type="text" name="cf_name" value="'.$name.'" size="50" />';
echo '<p>Your e-mail</p>';
echo '<input type="text" name="cf_email" value="'.$email.'" size="50" />';
echo '<p>Subject</p>';
echo '<input type="text" name="cf_subject" value="'.$subject.'" size="50" />';
echo '<p>part_1 of message</p>';
echo '<input type="text" name="cf_msg_part1" value="'.$msg_part1.'" size="50" />';
echo '<p>part_2 of message</p>';
echo '<input type="text" name="cf_msg_part2" value="'.$msg_part2.'" size="50" />';
echo '<p>part_3 of message</p>';
echo '<textarea name="cf_msg_part3" cols="50" rows="10">'.$msg_part3.'</textarea>';
echo '<p>file for upload</p>';
echo '<input type="file" name="cf_file">';
echo '<p>';
echo "<input type=\"checkbox\" onclick=\"document.getElementById('cf_submit').disabled=!document.getElementById('cf_submit').disabled;\" /> ";
echo 'YES, I agree with BLABLABLABLA</p>';
echo '<input type="submit" id="cf_submit" name="cf_submit" value="SEND" disabled="disabled" />';
echo '</form>';
echo '</div>';
}
function smarty_cms_help_function_contact_form_attachment() {
?>
<h3>What does this do?</h3>
<p>Simple contact form with attachment. This can be used to allow others to send
an email message to the address specified.</p>
<h3>How do I use it?</h3>
<p>Just insert the tag into your template/page like: <code>{contact_form_attachment email="anybody@anywhere.org"}</code></p>
<h3>What parameters does it take?</h3>
<ul>
<li>email - The email address that the message will be sent to.</li>
</ul>
</p>
<?php
}
function smarty_cms_about_function_contact_form_attachment() {
?>
<p>Version: 1.0</p>
<?php
}
class sendmail {
var $emailheader = "";
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $charset = "";
var $emailsubject = "";
var $emailto = "";
var $attachment = array();
var $cc = array();
var $bcc = array();
function sendmail() {
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
$this->charset = "ISO-8859-1";
}
function SetCharSet($char) {
$this->charset = $char;
}
function Validate_email($email) {
if (!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})/i",$email)) {
return false;
}
return $email;
}
function from($name,$email) {
$this->emailheader .= 'From: '.$name.'<'.$email.'>'."\r\n";
}
function to($to) {
$this->emailto = $this->Validate_email($to);
}
function cc($cc) {
$this->cc[] = $cc;
}
function bcc($bcc) {
$this->bcc[] = $bcc;
}
function makeMimeMail() {
if(count($this->cc) > 0) {
$this->emailheader .= 'Cc: ';
for($i=0;$i<count($this->cc);$i++) {
if($i > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->cc[$i]);
}
$this->emailheader .= "\r\n";
}
if(count($this->bcc) > 0) {
$this->emailheader .= 'Bcc: ';
for($j=0;$j<count($this->bcc);$j++) {
if($j > 0) $this->emailheader .= ',';
$this->emailheader .= $this->Validate_email($this->bcc[$j]);
}
$this->emailheader .= "\r\n";
}
$this->emailheader .= 'MIME-Version: 1.0'."\r\n";
}
function subject($subject) {
$this->emailsubject = $subject;
}
function text($text) {
$this->textheader .= 'Content-Type: multipart/alternative; boundary="'.$this->textboundary.'"'."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/plain; charset="'.$this->charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n";
$this->textheader .= strip_tags($text)."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary."\r\n";
$this->textheader .= 'Content-Type: text/html; charset="'.$this->charset.'"'."\r\n";
$this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n";
$this->textheader .= '<__html></__body>'.$text.'<__body></__html>'."\r\n\r\n";
$this->textheader .= '--'.$this->textboundary.'--'."\r\n\r\n";
}
function attachment($attachfile) {
if(is_file($attachfile)) {
$attachment_header = '--'.$this->emailboundary."\r\n" ;
$attachment_header .= 'Content-Type: application/octet-stream; name="'.basename($attachfile).'"'."\r\n";
$attachment_header .= 'Content-Transfer-Encoding: base64'."\r\n";
$attachment_header .= 'Content-Disposition: attachment; filename="'.basename($attachfile).'"'."\r\n\r\n";
$file['content'] = fread(fopen($attachfile,"rb"),filesize($attachfile));
$file['content'] = base64_encode($file['content']);
$file['content'] = chunk_split($file['content'],72);
$this->attachment[] = $attachment_header.$file['content']."\r\n";
}
else {
die("File doesn't exist'!");
}
}
function send() {
$this->makeMimeMail();
$header = $this->emailheader;
if(count($this->attachment)>0) {
$header .= 'Content-Type: multipart/mixed; boundary="'.$this->emailboundary.'"'."\r\n\r\n";
$header .= '--'.$this->emailboundary."\r\n";
$header .= $this->textheader;
if(count($this->attachment) > 0) $header .= implode("",$this->attachment);
$header .= '--'.$this->emailboundary.'--';
}
else {
$header .= $this->textheader;
}
$result = mail("$this->emailto",$this->emailsubject,"",$header);
$this->deletememory();
return $result;
}
function deletememory() {
unset($this->emailheader);
unset($this->textheader);
unset($this->attachment);
}
}
?>
Re: Modify the contact form
Posted: Sun Jan 18, 2009 5:27 pm
by SimonSchaufi