Добавляем 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);


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


Рубрика: Бесплатное » E-mail   |   Автор: Alex   |   Просмотры: 5476
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.