Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Регистрация на сайте
 
 автор: prtygi   (17.05.2011 в 01:34)   письмо автору
 
 

Здравствуйте участники форума .
Хотел обратиться за советом .
У меня на сайте есть форма регистрации , регистрация полностью работает . Но проблема в том что после регистрации пользователя ему на эл.почту не приходит его данные логин и пароль .
Может кто подскажет что у меня не так, буду очень благодарен.

Вот файл a_register.php находящийся у меня в корне сайта

<?
error_reporting
(0);
require(
'scripts/connect.php');
include(
'scripts/functions.php');
//DELETE EXPIRED BONUS CODES
mysql_query("DELETE FROM bonus WHERE NOW()>expire");
////////////////////// Получаем Перенные из флешки /////////////////////////////////////////////////////
if( isset($_POST["username"]) ){ $username=$_POST["username"]; }else{ $username=""; }
if( isset(
$_POST["lastname"]) ){ $lastname=$_POST["lastname"]; }else{ $lastname=""; }
if( isset(
$_POST["login"]) ){ $login=$_POST["login"]; }else{ $login=""; }
if( isset(
$_POST["passwd"]) ){ $passwd=$_POST["passwd"]; }else{ $passwd=""; }
if( isset(
$_POST["cpasswd"]) ){ $cpasswd=$_POST["cpasswd"]; }else{ $cpasswd=""; }
if( isset(
$_POST["email"]) ){ $email=$_POST["email"]; }else{ $email=""; }
if( isset(
$_POST["country"]) ){ $country=$_POST["country"]; }else{ $country=""; }
if( isset(
$_POST["city"]) ){ $city=$_POST["city"]; }else{ $city=""; }
if( isset(
$_POST["address"]) ){ $address=$_POST["address"]; }else{ $address=""; }
if( isset(
$_POST["phone"]) ){ $phone=$_POST["phone"]; }else{ $phone=""; }
if( isset(
$_POST["bonus"]) ){ $bonus=$_POST["bonus"]; }else{ $bonus=""; }
////////////Убираем Знак коретки
$username=str_replace(array("\r","\n"),"",$_POST["username"]);
$lastname=str_replace(array("\r","\n"),"",$_POST["lastname"]);
$login=str_replace(array("\r","\n"),"",$_POST["login"]);
$username=str_replace(array("\r","\n"),"",$_POST["username"]);
$passwd=str_replace(array("\r","\n"),"",$_POST["passwd"]);
$email=str_replace(array("\r","\n"),"",$_POST["email"]);
$country=str_replace(array("\r","\n"),"",$_POST["city"]);
$address=str_replace(array("\r","\n"),"",$_POST["address"]);
$phone=str_replace(array("\r","\n"),"",$_POST["phone"]);
$bonus=str_replace(array("\r","\n"),"",$_POST["bonus"]);
////////////////////////////////////////////////////////////
$errors="";
$registration_result="";
if( isset(
$_POST['r']) ) { 
    
$ref=$_POST['r']; 
}else if( isset(
$_COOKIE["ref"]) ) {
    
$ref=$_COOKIE["ref"]; 
}else{ 
$ref=""
}
////////////////////// MAIN //////////////////////////////////////////////////////////
if( ( isset($_POST["reg_form_ok"]) )&&( $_POST["reg_form_ok"]=="Register" ) ){
    
$username=Code($username);
    
$lastname=Code($lastname);
    
$login=Code($login);
    
$passwd=Code($passwd);
    
$cpasswd=Code($cpasswd);
    
$email=Code($email);
    
$country=Code($country);
    
$city=Code($city);
    
$address=Code($address);
    
$phone=Code($phone);    
//////////////////////////////// Проверка Данных  ///////////////////////////////////////////////////////
        
if(!$username or $username=="undefined"){echo "&r_status2=Введите Имя"; exit;}
    if(!
$lastname or $lastname=="undefined"){echo "&r_status2=Введите фамилию"; exit;}
    if(!
$login or $login=="undefined" ){echo "&r_status2=Введите Логин"; exit;}
    else{
        
$result=mysql_query("select `login` from `users` where `login`='$login'");
        if( 
mysql_num_rows($result) ){echo "&r_status2=Этот логин уже использован"; exit;}
    }
    if(!
$passwd or $passwd=="undefined"){echo "&r_status2=Введите пароль не менее 4 символов"; exit;}
    else{
        if( 
strlen($passwd)<){ echo "&r_status2=Пароль должен быть не менее 4 символов"; exit;}
    }
    if(!
$email or $email=="undefined"){echo "&r_status2=Введите e-mail"; exit;}
    else{
        if( !
checkEmail($email) ){ echo "&r_status2=E-mail не существует!"; exit; }
        else{
            
$result=mysql_query("select `email` from `users` where `email`='$email'");
            if( 
mysql_num_rows($result) ){ echo "&r_status2=E-mail уже существует в нашей базе."; exit; }
        }
    }
    if(!
$city or $city=="undefined"){echo "&r_status2=Введите город"; exit;}
    if(!
$address or $address=="undefined"){echo "&r_status2=Введите адрес"; exit;}
    else{
        if( 
strlen($address)<){ echo "&r_status2=Введите правильный адрес"; exit;}
    }
    if(!
$phone or $phone=="undefined"){echo "&r_status2=Введите телефон"; exit;}
    else{ 
$registration_result.="<div class=\"err\"><br>".$errors."</div>"; }    
}

if (!isset (
$_POST["reg_form_ok"]) OR $errors ){ 
echo 
"&r_status2=Неизвестная ошибка!";
}else if(!
$errors){ 
//////////////////////////////////////////////Делаем запись в Базу Данных
$sqlr="INSERT INTO users VALUES(NULL,'$login','$passwd','1000.00','0.00','0.00','$email','$username','$lastname','$date','0.00','microcasino','1','0.00','0.00','0.00','0.00','0.00','0.00')";
mysql_query($sqlr);

 


    
$registration_result.="<div class=\"thank\"><b>Спаибо!</b><br>Вы зарегестрированы в <?=$sitename?>! </div>";
///////////////Отправка письма Админу
$r_login=$login;
$r_pass=$passwd;
include(
"mail/reg.php");
$to =$r_email;
$subject $reg_reg_mail_subject;
$msg =$reg_reg_mail;
$mailheaders "Content-Type: text/plain; charset=Windows-1251\n";
$mailheaders .= "From: $con[2]\n";
mail($to$subject$msg$mailheaders);
$con=mysql_fetch_array(mysql_query("select * from seting"));
if (
$con[regmail]=="yes"){
include(
"mail/newreg.php");
$to =$con['adm_email'];
$subject $reg_reg_mail_subject;
$msg =$reg_reg_mail;
$mailheaders "Content-Type: text/plain; charset=Windows-1251\n";
$mailheaders .= "From: $con[adm_email]\n";
mail($to$subject$msg$mailheaders);
}
echo 
"&regstatus=REG:OK&r_status2=ok";
}
?>

А вот файл reg.php который в папке mail

<?
$reg_reg_mail_subject
="Данные вашего аккаунта";

$reg_reg_mail="Здравствуйте, $r_login,
Данное письмо содержит информацию для доступа 

Логин  : 
$r_login
Пароль : 
$r_pass
 
Рекомендуем пользоваться MS Internet Explorer 7 и выше. 

---------------------
С Наилучшими Пожеланиями,
Администрация;
?>


Хочу еще заметить что админу сайта то есть мене письмо приходит о том что зарегистрировался новый пользователь. А вот самому пользователю как уже написал выше его данные ему не приходят.

  Ответить  
 
 автор: parczynski   (17.05.2011 в 02:48)   письмо автору
 
   для: prtygi   (17.05.2011 в 01:34)
 

во-первых ковычек нет закрывающих для $reg_reg_mail

<?
...
$reg_reg_mail="Здравствуйте, $r_login
Данное письмо содержит информацию для доступа  

Логин  : 
$r_login 
Пароль : 
$r_pass 
  
Рекомендуем пользоваться MS Internet Explorer 7 и выше.  

--------------------- 
С Наилучшими Пожеланиями, 
Администрация"

?>

во-вторых не понятно откуда переменная $r_email берется. я так понимаю что надо добавить

$r_email=$email;
$r_login=$login; 
$r_pass=$passwd;

  Ответить  
 
 автор: prtygi   (17.05.2011 в 03:15)   письмо автору
 
   для: parczynski   (17.05.2011 в 02:48)
 

Вот два варианта попробовал сделать .

<? 
... 
$reg_reg_mail="Здравствуйте, $r_login,  
Данное письмо содержит информацию для доступа   
почта  : 
$r_email
Логин  : 
$r_login  
Пароль : 
$r_pass 
Рекомендуем пользоваться MS Internet Explorer 7 и выше.   

---------------------  
С Наилучшими Пожеланиями,  
Администрация"
;  
?>

и вот так :

<? 
... 
$reg_reg_mail="Здравствуйте, $r_login,  
Данное письмо содержит информацию для доступа   
$r_email=$email
$r_login=$login;  
$r_pass=$passwd;
Рекомендуем пользоваться MS Internet Explorer 7 и выше.   

---------------------  
С Наилучшими Пожеланиями,  
Администрация"
;  
?>

При регистрации когда все данные нажимаю на кнопку сохранить показывается ошибка . И регистрация происходит но некорректно . На почту письмо не приходит .
Даже и не знаю в чём причина .

  Ответить  
 
 автор: parczynski   (17.05.2011 в 03:17)   письмо автору
 
   для: prtygi   (17.05.2011 в 03:15)
 

нет, я имел ввиду не в письмо эти строки добавить у вас в коде есть
   $registration_result.="<div class=\"thank\"><b>Спаибо!</b><br>Вы зарегестрированы в <?=$sitename?>! </div>"; 
///////////////Отправка письма Админу 
$r_login=$login; 
$r_pass=$passwd; 
include("mail/reg.php");


вот сюда добавьте $r_email=$email;
   $registration_result.="<div class=\"thank\"><b>Спаибо!</b><br>Вы зарегестрированы в <?=$sitename?>! </div>"; 
///////////////Отправка письма Админу 
$r_login=$login; 
$r_pass=$passwd; 
$r_email=$email; 
include("mail/reg.php");

  Ответить  
 
 автор: prtygi   (17.05.2011 в 03:47)   письмо автору
 
   для: parczynski   (17.05.2011 в 03:17)
 

О супер всё заработало !!!!!!!!. Даже уже и не ожидал . Действительно Вы мне помогли.
Большое Вам спасибо , дай бог Вам и вашим близким счастья и здоровья .

и хотел еще спросить а если письмо которое приходит на почту в заголовке ( от неизвестного отправителя) где это мне нужно вставлять название своё вместо неизвестного отправителя?

Заранее спасибо

  Ответить  
 
 автор: parczynski   (17.05.2011 в 05:25)   письмо автору
 
   для: prtygi   (17.05.2011 в 03:47)
 

Рад помочь ))

по поводу неизвестного отправителя у вас есть строки
$mailheaders .= "From: $con[2]\n"; 
mail($to, $subject, $msg, $mailheaders); 
$con=mysql_fetch_array(mysql_query("select * from seting"));


тут видно что переменная $con обьявляется уже после использования. надо поменять строки местами так:


$con=mysql_fetch_array(mysql_query("select * from seting"));
$mailheaders .= "From: $con['adm_email']\n"; 
mail($to, $subject, $msg, $mailheaders); 

и вместо 2ки я явно указал какое поле будет выбираться. в таком случае будет указываться email из таблицы seting, на который вы отправляете письмо Админу,

вы так же можете пойти другим путем и явно указать свой e-mail вместо "From: $con[2]\n"
$mailheaders .= "From: addres@server.ru\n"; 

  Ответить  
 
 автор: prtygi   (17.05.2011 в 10:32)   письмо автору
 
   для: parczynski   (17.05.2011 в 05:25)
 

Да спасибо очень содержательный ответ . Я последним из вариантов пошёл . Всё работает всё классно .
Спасибо за помощь Вы действительно помогли !
Всего хорошего Вам до встречи .

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования