Thank you Mark. I have been trying to integrate a "Validate code" function (you know, the one where users are supposed to enter a random x-digit code they see in a gif image) under my contact us form and I am getting close to tears now. My contact us form is working and my validation script is working as well. Seperately! I cant get them to work together! Could you - or anyone else who reads this - give me a hand with this so I can dry my tears please? Many thanks!
Fran X 😕
My Validation script looks like this:
<?php
// check for posted form
if (isset($_POST['login'])) {
// see if the code the user typed matched the generated code
if (strtoupper($_POST['code']) == $_SESSION['code']) {
echo 'Congratulations, you entered the correct code.';
} else {
echo 'You have entered the wrong code. Please <a href="index.php">try again</a>.';
}
} else {
?>
My contact us script looks like this:
<?
$dest = "email@domain.com";
$copy_dest = "email@domain.com";
$cache_dest = "";
$objet_page = "Feedback";
$redirection = "../home.htm";
$priority = "3";
$reponse=StripSlashes("Thank you, Your email has now been sent!");
$url_redir = $redirection;
class Mail {
var $sendto= array();
var $from, $msubject;
var $acc= array();
var $abcc= array();
var $aattach= array();
var $priorities= array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );
// Mail contructor
function Mail() {
$this->autoCheck( true );
}
/* autoCheck( $boolean )
* activate or desactivate the email addresses validator
* ex: autoCheck( true ) turn the validator on
* by default autoCheck feature is on
*/
function autoCheck( $bool ) {
if( $bool )
$this->checkAddress = true;
else
$this->checkAddress = false;
}
/* Subject( $subject )
* define the subject line of the email
* $subject: any valid mono-line string
*/
function Subject( $subject ) {
$this->msubject = strtr( $subject, "\r\n" , " " );
}
/* From( $from )
* set the sender of the mail
* $from should be an email address
*/
function From( $from ) {
if( ! is_string($from) ) {
echo "Class Mail: Erreur, From n'est pas de la bonne forme";
exit;
}
$this->from= $from;
}
/* To( $to )
* set the To ( recipient )
* $to : email address, accept both a single address or an array of addresses
*/
function To( $to ) {
if( is_array( $to ) )
$this->sendto= $to;
else
$this->sendto[] = $to;
if( $this->checkAddress == true )
$this->CheckAdresses( $this->sendto );
}
/* Cc()
* set the CC headers ( carbon copy )
* $cc : email address(es), accept both array and string
*/
function Cc( $cc ) {
if( is_array($cc) )
$this->acc= $cc;
else
$this->acc[]= $cc;
if( $this->checkAddress == true )
$this->CheckAdresses( $this->acc );
}
/* Bcc()
* set the Bcc headers ( blank carbon copy ).
* $bcc : email address(es), accept both array and string
*/
function Bcc( $bcc ) {
if( is_array($bcc) ) {
$this->abcc = $bcc;
} else {
$this->abcc[]= $bcc;
}
if( $this->checkAddress == true )
$this->CheckAdresses( $this->abcc );
}
function Body( $body ) {
$this->body= $body;
}
function Send() {
// build the headers
$this->_build_headers();
// include attached files
if( sizeof( $this->aattach > 0 ) ) {
$this->_build_attachement();
$body = $this->fullBody . $this->attachment;
}
for( $i=0; $i< sizeof($this->sendto); $i++ ) {
$res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);
}
}
function Organization( $org ) {
if( trim( $org != "" ) )
$this->organization= $org;
}
/* Priority( $priority )
* set the mail priority
* $priority : integer taken between 1 (highest) and 5 ( lowest )
* ex: $m->Priority(1) ; => Highest
*/
function Priority( $priority ) {
if( ! intval( $priority ) )
return false;
if( ! isset( $this->priorities[$priority-1]) )
return false;
$this->priority= $this->priorities[$priority-1];
return true;
}
function Get() {
$this->_build_headers();
if( sizeof( $this->aattach > 0 ) ) {
$this->_build_attachement();
$this->body= $this->body . $this->attachment;
}
$mail = $this->headers;
$mail .= "\n$this->body";
return $mail;
}
/* ValidEmail( $email )
* $address : email address to check
*/
function ValidEmail($address) {
if( ereg( ".*<(.+)>", $address, $regs ) ) {
$address = $regs[1];
}
if(ereg( "^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|fr|com|gov|mil|org|edu|int)\$",$address) )
return true;
else
return false;
}
/* CheckAdresses()
* check validity of email addresses
* if unvalid, output an error message and exit, this may be customized
* $aad : array of emails addresses
*/
function CheckAdresses( $aad ) {
for($i=0;$i< sizeof( $aad); $i++ ) {
if( ! $this->ValidEmail( $aad[$i]) ) {
echo "Class Mail, method Mail : Adresse Invalide $aad[$i]";
exit;
}
}
}
function _build_headers() {
$this->headers= "From: $this->from\n";
$this->to= implode( ", ", $this->sendto );
if( count($this->acc) > 0 ) {
$this->cc= implode( ", ", $this->acc );
$this->headers .= "CC: $this->cc\n";
}
if( count($this->abcc) > 0 ) {
$this->bcc= implode( ", ", $this->abcc );
$this->headers .= "BCC: $this->bcc\n";
}
if( $this->organization != "" )
$this->headers .= "Organization: $this->organization\n";
if( $this->priority != "" )
$this->headers .= "X-Priority: $this->priority\n";
}
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message from your website with subject : \"$objet_page\" :
$msg";
$m= new Mail; // create the mail
$m->From( "$email" );
$m->To( "$dest");
$m->Subject( "$subject" );
$m->Body( $msg); // set the body
if ($copy_dest!="") {
$m->Cc( "$copy_dest");
}
$m->Priority($priority) ;
if ($cache_dest!="") {
$m->Bcc( "$cache_dest");
}
$m->Priority($priority) ;
if ("$NomFichier_name"!="") {
copy("$NomFichier","../upload/$NomFichier_name");
$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier_name"!="") {
Unlink("../upload/$NomFichier_name");
}
echo "$reponse";
if ("$redirection"!="") {
redir("$url_redir");
}
?>