Помогите сделать восстановления пароля !

  • Автор темы sanek85
  • Дата начала
sanek85
Участник
Сообщения
124
Реакции
2
Подскажите пожалуйста как исправить ошибку с восстановление пароля проблема такая при нажатие получить пароль вылетает сообщения Ошибка отправки письма, попробуйте еще раз.и не приходит письмо с новым паролем на емайл в буксе подскажите почему и как сделать чтоб работало что нужно исправить в данной ситуации ??

Пишите в скайп santip75 ну или тут на сайте
 
Последнее редактирование:
himik
Участник
Сообщения
230
Реакции
32
С тобой ситуация напоминает эту) Дяденька я знаю что у вас сломалось)
Файл _recovery.php в студию.
 
sanek85
Участник
Сообщения
124
Реакции
2
<? include('podkl/header.php');?>
<h1 class="h1">Восстановление пароля</h1>
<?if(isset($_GET["code"])){
$id = (isset($_GET["id"])) ? intval($_GET["id"]) : FALSE ;
$sql_user = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE `id`='$id' LIMIT 1");
$info_user = mysql_fetch_assoc($sql_user);
if($info_user["id"] != $id or mysql_num_rows($sql_user) <= 0){
echo "<div class='error'>Пользователь не найден.</div>";
}else{
$link = MD5(MD5($info_user['id'].$info_user['email'].$info_user['username'].'bsdDFGDH875KJHBn'));
if($link != $_GET["code"]){
echo "<div class='error'>Проверочный код указан не верно.</div>";
}else{
$password = rand(100000,999999);$sql_password = MD5(MD5($password));

mysql_query("UPDATE `tb_users` SET `password` = '".$sql_password."' WHERE `id` = ".$info_user["id"]."");

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{ID_USER}','{LOGIN_USER}','{NEW_PASS}','{EMAIL}');
$zamena = array($_SERVER['HTTP_HOST'],$info_user['id'],$info_user['username'],$password,$info_user['email']);
$msgtext = str_replace($var, $zamena, $email_con["recover_new"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($info_user['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с новым паролем отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}
}
}

}else{?>
<p>Для восстановления пароля, заполните одно из полей</p>
<?
if(isset($_POST["username"])){
if( strtolower($_POST['code'])!= strtolower($_SESSION['captcha_keystring']) OR !isset($_SESSION['captcha_keystring']) or @$_POST['code'] == ''){
echo "<div class='error'>Неверно введен проверочный код...</div>";
}else{
unset($_SESSION["captcha_keystring"]);
if($_POST["username"] != ''){
$sql_text = "логином";
$sql_zapros = "`username` = '".mysql_real_escape_string($_POST["username"])."'";
}

if($_POST["email"] != ''){
$sql_text = "E-mail";
$sql_zapros = "`email` = '".mysql_real_escape_string($_POST["email"])."'";
}

if($_POST["wmid"] != ''){
$sql_text = "WMID";
$sql_zapros = "`wmid` = '".mysql_real_escape_string(round($_POST["wmid"]))."'";
}

$sql_users = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE ".$sql_zapros."");
if (mysql_num_rows($sql_users) > 0){
$new_u = mysql_fetch_assoc($sql_users);

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

$link = MD5(MD5($new_u['id'].$new_u['email'].$new_u['username'].'bsdDFGDH875KJHBn'));

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{URL_RECOV}');
$zamena = array($_SERVER['HTTP_HOST'],'<a href="'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'">'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'</a>');
$msgtext = str_replace($var, $zamena, $email_con["recover"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($new_u['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}

}else{
echo "<div class='error'>Пользователь с данным ".$sql_text.", не зарегистрирован на проекте.</div>";
}
}
}

?>

<form action="" method="post">
<table class="table">
<tr class="trdef">
<td class="td1"><b>Логин:</b></td><td><input type='text' style="width: 95%;" maxlength='15' name='username' autocomplete="off"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Ваш E-mail:</b></td><td><input type="text" style="width: 95%;" maxlength="50" name="email" autocomplete="off" class="field"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>WMID:</b></td><td><input type="text" style="width: 95%;" maxlength="12" name="wmid" autocomplete="off" class="field" value=""></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Код на картинке:</b></td><td><input type="text" style="width: 70px;" maxlength="10" name="code" autocomplete="off" class="securitycode"></td>
</tr>
<tr class="trdef">
<td></td><td><a href="#" onclick="document.getElementById('cap').src = 'kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>'; return false;">
<img id="cap" src="kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>"></td>
</a>
</tr>
<tr>
<td colspan="2" class="align_c" style="padding: 10px;"><input type="submit" value="Получить пароль" class="button"></td>
</tr>
</table>
</form>


<?} include('podkl/footer.php'); ?>
 
himik
Участник
Сообщения
230
Реакции
32
Попробуй
Код:
<? include('podkl/header.php');?>
<h1 class="h1">Восстановление пароля</h1>
<?if(isset($_GET["code"])){
$id = (isset($_GET["id"])) ? intval($_GET["id"]) : FALSE ;
$sql_user = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE `id`='$id' LIMIT 1");
$info_user = mysql_fetch_assoc($sql_user);
if($info_user["id"] != $id or mysql_num_rows($sql_user) <= 0){
echo "<div class='error'>Пользователь не найден.</div>";
}else{
$link = MD5(MD5($info_user['id'].$info_user['email'].$info_user['username'].'bsdDFGDH875KJHBn'));
if($link != $_GET["code"]){
echo "<div class='error'>Проверочный код указан не верно.</div>";
}else{
$password = rand(100000,999999);$sql_password = MD5(MD5($password));

mysql_query("UPDATE `tb_users` SET `password` = '".$sql_password."' WHERE `id` = ".$info_user["id"]."");

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{ID_USER}','{LOGIN_USER}','{NEW_PASS}','{EMAIL}');
$zamena = array($_SERVER['HTTP_HOST'],$info_user['id'],$info_user['username'],$password,$info_user['email']);
$msgtext = str_replace($var, $zamena, $email_con["recover_new"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($info_user['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с новым паролем отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}
}
}

}else{ ?>
<p>Для восстановления пароля, заполните одно из полей</p>
<?
if(isset($_POST["username"])){
if( strtolower($_POST['code'])!= strtolower($_SESSION['captcha_keystring']) OR !isset($_SESSION['captcha_keystring']) or @$_POST['code'] == ''){
echo "<div class='error'>Неверно введен проверочный код...</div>";
}else{
unset($_SESSION["captcha_keystring"]);
if($_POST["username"] != ''){
$sql_text = "логином";
$sql_zapros = "`username` = '".mysql_real_escape_string($_POST["username"])."'";
}

if($_POST["email"] != ''){
$sql_text = "E-mail";
$sql_zapros = "`email` = '".mysql_real_escape_string($_POST["email"])."'";
}

if($_POST["wmid"] != ''){
$sql_text = "WMID";
$sql_zapros = "`wmid` = '".mysql_real_escape_string(round($_POST["wmid"]))."'";
}

$sql_users = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE ".$sql_zapros."");
if (mysql_num_rows($sql_users) > 0){
$new_u = mysql_fetch_assoc($sql_users);

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

$link = MD5(MD5($new_u['id'].$new_u['email'].$new_u['username'].'bsdDFGDH875KJHBn'));

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{URL_RECOV}');
$zamena = array($_SERVER['HTTP_HOST'],'<a href="'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'">'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'</a>');
$msgtext = str_replace($var, $zamena, $email_con["recover"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($new_u['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}

}else{
echo "<div class='error'>Пользователь с данным ".$sql_text.", не зарегистрирован на проекте.</div>";
}
}
}
}
?>

<form action="" method="post">
<table class="table">
<tr class="trdef">
<td class="td1"><b>Логин:</b></td><td><input type='text' style="width: 95%;" maxlength='15' name='username' autocomplete="off"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Ваш E-mail:</b></td><td><input type="text" style="width: 95%;" maxlength="50" name="email" autocomplete="off" class="field"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>WMID:</b></td><td><input type="text" style="width: 95%;" maxlength="12" name="wmid" autocomplete="off" class="field" value=""></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Код на картинке:</b></td><td><input type="text" style="width: 70px;" maxlength="10" name="code" autocomplete="off" class="securitycode"></td>
</tr>
<tr class="trdef">
<td></td><td><a href="#" onclick="document.getElementById('cap').src = 'kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>'; return false;">
<img id="cap" src="kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>"></td>
</a>
</tr>
<tr>
<td colspan="2" class="align_c" style="padding: 10px;"><input type="submit" value="Получить пароль" class="button"></td>
</tr>
</table>
</form>
 
sanek85
Участник
Сообщения
124
Реакции
2
himik написал(а):
Попробуй
Код:
<? include('podkl/header.php');?>
<h1 class="h1">Восстановление пароля</h1>
<?if(isset($_GET["code"])){
$id = (isset($_GET["id"])) ? intval($_GET["id"]) : FALSE ;
$sql_user = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE `id`='$id' LIMIT 1");
$info_user = mysql_fetch_assoc($sql_user);
if($info_user["id"] != $id or mysql_num_rows($sql_user) <= 0){
echo "<div class='error'>Пользователь не найден.</div>";
}else{
$link = MD5(MD5($info_user['id'].$info_user['email'].$info_user['username'].'bsdDFGDH875KJHBn'));
if($link != $_GET["code"]){
echo "<div class='error'>Проверочный код указан не верно.</div>";
}else{
$password = rand(100000,999999);$sql_password = MD5(MD5($password));

mysql_query("UPDATE `tb_users` SET `password` = '".$sql_password."' WHERE `id` = ".$info_user["id"]."");

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{ID_USER}','{LOGIN_USER}','{NEW_PASS}','{EMAIL}');
$zamena = array($_SERVER['HTTP_HOST'],$info_user['id'],$info_user['username'],$password,$info_user['email']);
$msgtext = str_replace($var, $zamena, $email_con["recover_new"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($info_user['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с новым паролем отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}
}
}

}else{ ?>
<p>Для восстановления пароля, заполните одно из полей</p>
<?
if(isset($_POST["username"])){
if( strtolower($_POST['code'])!= strtolower($_SESSION['captcha_keystring']) OR !isset($_SESSION['captcha_keystring']) or @$_POST['code'] == ''){
echo "<div class='error'>Неверно введен проверочный код...</div>";
}else{
unset($_SESSION["captcha_keystring"]);
if($_POST["username"] != ''){
$sql_text = "логином";
$sql_zapros = "`username` = '".mysql_real_escape_string($_POST["username"])."'";
}

if($_POST["email"] != ''){
$sql_text = "E-mail";
$sql_zapros = "`email` = '".mysql_real_escape_string($_POST["email"])."'";
}

if($_POST["wmid"] != ''){
$sql_text = "WMID";
$sql_zapros = "`wmid` = '".mysql_real_escape_string(round($_POST["wmid"]))."'";
}

$sql_users = mysql_query("SELECT `id`, `email`, `username` FROM `tb_users` WHERE ".$sql_zapros."");
if (mysql_num_rows($sql_users) > 0){
$new_u = mysql_fetch_assoc($sql_users);

define ("DOMEN", "http://".$_SERVER['HTTP_HOST']);
define ("ROOT", $_SERVER['DOCUMENT_ROOT']);

$link = MD5(MD5($new_u['id'].$new_u['email'].$new_u['username'].'bsdDFGDH875KJHBn'));

require_once($_SERVER['DOCUMENT_ROOT']."/config/email.conf.php");
$msgsubj="Восстановление пароля ".DOMEN;
$var = array('{DOMEN}','{URL_RECOV}');
$zamena = array($_SERVER['HTTP_HOST'],'<a href="'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'">'.DOMEN.'/forgotpass.php?id='.$new_u['id'].'&code='.$link.'</a>');
$msgtext = str_replace($var, $zamena, $email_con["recover"]);
require_once(ROOT."/class/smtp_class.php");
$mail_out = mailPHP($new_u['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{
echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";
}

}else{
echo "<div class='error'>Пользователь с данным ".$sql_text.", не зарегистрирован на проекте.</div>";
}
}
}
}
?>

<form action="" method="post">
<table class="table">
<tr class="trdef">
<td class="td1"><b>Логин:</b></td><td><input type='text' style="width: 95%;" maxlength='15' name='username' autocomplete="off"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Ваш E-mail:</b></td><td><input type="text" style="width: 95%;" maxlength="50" name="email" autocomplete="off" class="field"></td>
</tr>
<tr class="trdef">
<td class="td1"><b>WMID:</b></td><td><input type="text" style="width: 95%;" maxlength="12" name="wmid" autocomplete="off" class="field" value=""></td>
</tr>
<tr class="trdef">
<td class="td1"><b>Код на картинке:</b></td><td><input type="text" style="width: 70px;" maxlength="10" name="code" autocomplete="off" class="securitycode"></td>
</tr>
<tr class="trdef">
<td></td><td><a href="#" onclick="document.getElementById('cap').src = 'kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>'; return false;">
<img id="cap" src="kcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>"></td>
</a>
</tr>
<tr>
<td colspan="2" class="align_c" style="padding: 10px;"><input type="submit" value="Получить пароль" class="button"></td>
</tr>
</table>
</form>
такая же ошибка Ошибка отправки письма, попробуйте еще раз.
 
himik
Участник
Сообщения
230
Реакции
32
Скажите адрес сайта надо зайти глянуть.
 
Kojo
Участник
Сообщения
286
Реакции
53
вот этот файлик надо смотреть smtp_class.php
 
himik
Участник
Сообщения
230
Реакции
32
Kojo написал(а):
вот этот файлик надо смотреть smtp_class.php
Скорее всего да или с хостингом что то не то,у меня проблемы с функцией определения айпи были.

Кстати с кодировкой тоже не порядок, вот пришло письмо при реге
����������� ��������� ������. ������ ����� �������� � ������� �������.

� ��������� ������������� seopayeers.ru

Попробуй как вариант заменить файле
$mail_out = mailPHP($new_u['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";}

На
if(mail($new_u['email'],$msgsubj,$msgtext)) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";}

Проверил, такая конструкция работает!
 
Последнее редактирование:
sanek85
Участник
Сообщения
124
Реакции
2
  • #10
himik написал(а):
Скорее всего да или с хостингом что то не то,у меня проблемы с функцией определения айпи были.

Кстати с кодировкой тоже не порядок, вот пришло письмо при реге
����������� ��������� ������. ������ ����� �������� � ������� �������.

� ��������� ������������� seopayeers.ru

Попробуй как вариант заменить файле
$mail_out = mailPHP($new_u['email'],$msgsubj,$msgtext);
if(!$mail_out) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";}

На
if(mail($new_u['email'],$msgsubj,$msgtext)) {
echo "<div class='succes'>Письмо с дальнейшими инструкциями отправлено вам на E-mail</div>";
}else{echo "<div class='error'>Ошибка отправки письма, попробуйте еще раз.</div>";}

Проверил, такая конструкция работает!
эо на какую почту так приходит ?
 
himik
Участник
Сообщения
230
Реакции
32
  • #11
Если на основные домены приходит нормально значить не парся,почта виновата)
Использую сервис https://dropmail.me/ru/ (временная почта) может проблема в нем
 
Сверху