Добавляем E-Mail пользователям (полная статья)

Итак…Специально для народа создал целую категорию,в которую буду выкладывать статьи по добавлению поля E-Mail в скрипт SooFast!Сейчас начнё с поля E-Mail для пользователя…В этой статье я расскажу,как добавить поле E-Mail пользователю и сделать автоматическое восстановление пароля ну и плюс сделаем уведомление пользователя на E-Mail при получении нового сообщения по внутренней почте…Итак…Специально для народа создал целую категорию,в которую буду выкладывать статьи по добавлению поля E-Mail в скрипт SooFast!Сейчас начнё с поля E-Mail для пользователя…В этой статье я расскажу,как добавить поле E-Mail пользователю и сделать автоматическое восстановление пароля ну и плюс сделаем уведомление пользователя на E-Mail при получении нового сообщения по внутренней почте…
давайте по пунктам:
1.Сделаем SQL-запрос

ALTER TABLE tb_users ADD email VARCHAR(50)

2.Создадим файл и назовём его ff.php и вставим в него следующий код:


<?  
  function email($mensaje)  
  {  
  if (preg_match("|[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}|i", $mensaje))  
  {  
  return $mensaje;  
  }else{  
  echo "<img src="images/error.png" align="middle"> Ошибка. Проверьте правильность ввода";  
  include('footer.php');  
  exit();  
  }  
  }  
?>


Отлично!Самое основное для безопасности сделано!Теперь давайте добавим поле E-Mail при регистрации
Для этого откроем register.php
после


$pemail = $_POST["pemail"];


добавим


include('ff.php');
  $email=$_POST["email"];
  $email=email($email);

далее строку

  if($username==NULL|$password==NULL|$cpassword==NULL|$wmid==NULL|$pemail==NULL)

замените на:

if($username==NULL|$password==NULL|$cpassword==NULL|$wmid==NULL|$pemail==NULL|$email==NULL)

потом после строки:


$checkpemail = mysql_query("SELECT id FROM tb_users WHERE pemail='$pemail' or wmid='$wmid'");
  $pemail_exist = mysql_num_rows($checkpemail);


Добавим код:


  $email_exist = mysql_num_rows($checkemail);
  if ($email_exist>0)
  {
  echo "<img src="images/error.png" align="middle"> Пользовтаель с таким E-Mail адресом уже есть в системе!";
  }else{


заменим строку:

$query = "INSERT INTO tb_users (username, password, ip, pemail, referer, country, joindate, wmid, buying) VALUES('$username','$password','$laip','$pemail','$referer','$country','$joindate','$wmid','$buying')";


на:


$query = "INSERT INTO tb_users (username, password, ip, pemail, referer, country, joindate, wmid, email, buying) VALUES('$username','$password','$laip','$pemail','$referer','$country','$joindate','$wmid','$email','$buying')";


и ещё чуток ниже после


mysql_query($query) or die(mysql_error());

вставим:

  $mysite="адрес сайта";  
  $siteemail="от кого должно прийти";  
  $to = $email;  
  $subject = "Успешная регистрация";  
  $message = 'Поздравляем,теперь вы зарегистрированы на '.$mysite.'!Используйте введённые Вами данные для входа на сайт:<br>Логин: '.$username.'<br>Пароль: '.$password.'<br>Удачного дня!';  
  $headers = "Content-type: text/html; charset=windows-1251 rn";  
  $headers .= 'From: '.$siteemail.'rn';  
  mail($to, $subject, $message, $headers);  
}

(отредактируйте код выше)
и наконец после:


<tr>
  <td width="150" align="left">

<label>WMID:</label></p></td>
  <td width="250" align="left"><input type="text" size="25" maxlength="12" name="wmid" autocomplete="off" class="field" value="" tabindex="1" /></td>
  </tr>


вставим:

  <tr>
  <td width="150" align="left">

<label>E-Mail:</label></p></td>
  <td width="250" align="left"><input type="text" size="25" maxlength="50" name="email" autocomplete="off" class="field" value="" tabindex="1" /></td>
  </tr>


УРА!Регистрация сделана!Теперь при реге пользователь вводит E-Mail и получает уведомление об успешной регистрации…
Теперь сделаем восстановление пароля..для этого откроем restorepass.php
замените в файле restorepass.php это:

<?
if(isset($_POST["username"]))
{
  $user=uc($_POST["username"]);
  
  require('config.php');
  mysql_query("insert into tb_restorepass (username) values ('$user')");
  mysql_close($con);

  echo "<img src="images/ok.png" align="middle"> Заявка на восстановление пароля принята. После обработки Вашего запроса администрацией, на WMID, указанный в Вашем профиле, Вы получите информацию для доступа к аккаунту.";
}
?>

на:


<?
if(isset($_POST["username"]))
{
  $user=uc($_POST["username"]);
  
$sql=mysql_query("SELECT * FROM tb_users WHERE username='$user'");
$res=mysql_num_rows($sql);
$row=mysql_fetch_array($sql);
$email=$row["email"];
$password=$row["password"];
if($res == 0)
{
echo "<b><center><font color=red>Указанного Вами логина нет в системе</font></center></b>";
include('footer.php');
exit();
}
  $mysite="сайт";  
  $siteemail="от кого придёт";  
  $to = $email;  
  $subject = "Восстановление данных";  
  $message = 'Вы заказали восстановление данных на '.$mysite.'!Ваш пароль: '.$password.'<br>Если тебе пришло это сообщение но пароль так и не пришёл,то это <BIG><BIG><BIG>ПИЗДЕЦ!!!</BIG></BIG></BIG>Удачного дня!';  
  $headers = "Content-type: text/html; charset=windows-1251 rn";  
  $headers .= 'From: '.$siteemail.'rn';  
  mail($to, $subject, $message, $headers);  

  echo "<img src="images/ok.png" align="middle"> Ваш пароль отправлен на указанный Вами в профиле E-Mail адрес!";
}
?>


(отредактируйте код выше)
И сделаем уведомления о новом сообщении…для этого откроем sendmessage.php
после:

mysql_query("insert into tb_mail (sender,recipient,subject,message,data) values ('$sender','$recipient','$subject','$message','$data')");


вставим:

  $sql=mysql_query("SELECT * FROM tb_users WHERE username='$recipient'");
  $res=mysql_fetch_array($sql);
  $email=$res["email"];
  $mysite="ваш сайт";  
  $siteemail="от кого промылить пользователю";  
  $to = $email;  
  $subject = "Новое ЛС";  
  $message = 'Здравствуйте!Вам прислано новое личное сообщение на сайте '.$mysite.'!<br>Удачного дня!';  
  $headers = "Content-type: text/html; charset=windows-1251 rn";  
  $headers .= 'From: '.$siteemail.'rn';  
  mail($to, $subject, $message, $headers);

(отредактируйте код выше)
ВСЁ!пользуйтесь и ожидайте новых статей в этой категории…я хочу весь скрипт прочесать и везде вставить \»промыливание\»
з.ы:если нужны исправленные файлы — то они в архиве maileruser.zip

Автор публикации

не в сети 14 лет

Alex

Комментарии: 0Публикации: 166Регистрация: 19-02-2011

Понравилась статья? Поделись в соц. сетях:

Похожие новости

Отправить комментарий

wpDiscuz
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля