Dear all,
I have created log in system with. In that when the user completes the registration process an auto reply(auto-reply@domain) will generate and sent this to users email id regarding about the user name and password (Lo gin Details). After formal approval from the admin the user will get a user activation mail with log in link.
But , my problem is these are work only for mail accounts from my domain only(test@domain). its not send any of above mentioned details to other mail services like gmail or yahoo etc.
i discussed this with some others, they said its the problem with your mail function configuration. but i didn’t get any needful information as am a beginner in PHP scripting.
i have contacted this with my hosting service they said its the problem with php mail () function and use php mailer() instead mail().
Am attaching my code along with this.
please give me a solution for the same…
[php]<?php
include ‘dbc.php’;
$err = array();
if($_POST[‘doRegister’] == ‘Register’)
{
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
if(empty($data[‘full_name’]) || strlen($data[‘full_name’]) < 4)
{
$err[] = “ERROR - Invalid name. Please enter atleast 3 or more characters for your name”;
//header(“Location: register.php?msg=$err”);
//exit();
}
// Validate User Name
if (!isUserID($data[‘user_name’])) {
$err[] = “ERROR - Invalid user name. It can contain alphabet, number and underscore.”;
//header(“Location: register.php?msg=$err”);
//exit();
}
// Validate Email
if(!isEmail($data[‘usr_email’])) {
$err[] = “ERROR - Invalid email address.”;
//header(“Location: register.php?msg=$err”);
//exit();
}
// Check User Passwords
if (!checkPwd($data[‘pwd’],$data[‘pwd2’])) {
$err[] = “ERROR - Invalid Password or mismatch. Enter 5 chars or more”;
//header(“Location: register.php?msg=$err”);
//exit();
}
$user_ip = $_SERVER[‘REMOTE_ADDR’];
// stores sha1 of password
$sha1pass = PwdHash($data[‘pwd’]);
// Automatically collects the hostname or domain like example.com)
$host = $_SERVER[‘HTTP_HOST’];
$host_upper = strtoupper($host);
$path = rtrim(dirname($_SERVER[‘PHP_SELF’]), ‘/\’);
// Generates activation code simple 4 digit number
$activ_code = rand(1000,9999);
$usr_email = $data[‘usr_email’];
$user_name = $data[‘user_name’];
$rs_duplicate = mysql_query(“select count(*) as total from users where user_email=’$usr_email’ OR user_name=’$user_name’”) or die(mysql_error());
list($total) = mysql_fetch_row($rs_duplicate);
if ($total > 0)
{
$err[] = “ERROR - The username/email already exists. Please try again with different username and email.”;
}
if(empty($err)) {
$sql_insert = "INSERT into users
(full_name
,user_email
,pwd
,address
,tel
,fax
,website
,date
,users_ip
,activation_code
,country
,user_name
)
VALUES
(’$data[full_name]’,’$usr_email’,’$sha1pass’,’$data[address]’,’$data[tel]’,’$data[fax]’,’$data[web]’
,now(),’$user_ip’,’$activ_code’,’$data[country]’,’$user_name’
)
";
mysql_query($sql_insert,$link) or die(“Insertion Failed:” . mysql_error());
$user_id = mysql_insert_id($link);
$md5_id = md5($user_id);
mysql_query(“update users set md5_id=’$md5_id’ where id=’$user_id’”);
// echo “
Thank You
We received your submission.”;if($user_registration) {
$a_link = "
ACTIVATION LINK\n
http://$host$path/activate.php?user=$md5_id&activ_code=$activ_code
";
} else {
$a_link =
"Your account is PENDING APPROVAL and will be soon activated the administrator.
";
}
$message =
"Hello \n
Thank you for registering with us. Here are your login details…\n
User ID: $user_name
Email: $usr_email \n
Passwd: $data[pwd] \n
$a_link
Thank You
Administrator
$host_upper
THIS IS AN AUTOMATED RESPONSE.
DO NOT RESPOND TO THIS EMAIL*
";
mail($usr_email, "Login Details", $message,
"From: \"Member Registration\" <auto-reply@$host>\r\n" .
"X-Mailer: PHP/" . phpversion());
header(“Location: thankyou.php”);
exit();
}
}
?>
|
<?php if (isset($_GET['done'])) { ?> Thank youYour registration is now complete and you can login here"; <?php exit(); } ?><?php if(!empty($err)) { echo "";
foreach ($err as $e) {
echo "* $e ";
}
?>
"; } echo "
|