За последние 24 часа нас посетили 54147 программистов и 1720 роботов. Сейчас ищут 775 программистов ...

Авторизация с хешированием!

Тема в разделе "PHP для новичков", создана пользователем Noll, 22 фев 2016.

  1. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Всем привет! Столкнулся с такой проблемой:как только не редактировал файл авторизации на сайт под md5-никак не получается залогинится под учетной записью! в БД пароль в формате md5, а считывание его с БД не получается(в соединении с базой проблем нет).Когда возвращаю пароль без md5 в БД-то всё работает!
    Вот исходной мой пример,где пытался написать с md5,но вылазит ошибка: "Ошибка! Указан неправильный пароль! Пароль должен состоять не менее чем от 3 до 20 символов, и содержать только латинские символы!"
    С Логин формы:
    Код (PHP):
    1. <style>
    2. a.btnreg {
    3.     font-size:16px;
    4.     margin-bottom:5px;
    5.     line-height:3em;
    6.     background:url(img/btn-reg.png) no-repeat;
    7.     background-position:left top;
    8.     display:block;
    9.     height:48px;
    10.     width:138px;
    11.     color:#fff;
    12.     text-shadow:1px 1px 1px #6c3a05;
    13.     outline:none;
    14.     border:none;
    15.     padding-left: 62px;
    16. }
    17.  
    18. a.btnlogin {
    19.     font-size:16px;
    20.     margin-bottom:20px;
    21.     line-height:3em;
    22.     background:url(img/btn-login.png) no-repeat;
    23.     background-position:left top;
    24.     display:block;
    25.     height:48px;
    26.     width:226px;
    27.     color:#fff;
    28.     text-shadow:1px 1px 1px #00475d;
    29.     outline:none;
    30.     border:none;
    31.     padding-left: 0px;
    32. }
    33.  
    34. div.formlogin {
    35. font-size:11px;
    36. margin-bottom:10px;
    37. background:url(img/formlogin.png) no-repeat 0 0;
    38. display:block;
    39. height:131px;
    40. width:226px;
    41. color:#fff;
    42. border:none;
    43. padding:20px 0px;
    44. }
    45.  
    46. div.formlogin input {
    47. font-size:12px;
    48. width:70%;
    49. margin-left:2px;
    50. margin-right:20px;
    51. border:#2d5e79 solid 1px;
    52. padding:3px;
    53. }
    54.  
    55. div.formlogin input.loginsubmit {
    56. font-size:10px;
    57. text-align:center;
    58. color:#fff;
    59. display:block;
    60. text-transform:uppercase;
    61. background-color:#00749E;
    62. border:#7AEAF0 solid 1px;
    63. cursor:pointer;
    64. margin:3px auto;
    65. padding:3px 8px;
    66. width: auto;
    67. }
    68.  
    69. div.formlogin input.loginsubmit:hover {
    70. background-color:#009E08;
    71. border:#C2FFC5 solid 1px;
    72. }
    73.  
    74. a.loginwm {
    75. font-size:10px;
    76. text-align:center;
    77. color:#fff;
    78. display:block;
    79. text-transform:uppercase;
    80. background-color:#70009E;
    81. border:#ECD3F5 solid 1px;
    82. cursor:pointer;
    83. margin:3px auto;
    84. padding:3px 8px;
    85. width: auto;
    86. }
    87.  
    88. a.loginwm:hover {
    89. background-color:#A9005B;
    90. border:#F7D5E7 solid 1px;
    91. }
    92.  
    93. a.recpass {
    94. font-size:11px;
    95. text-align:center;
    96. color:#007FAD;
    97. display:block;
    98. text-decoration:none;
    99. border:none;
    100. margin:5px auto 0;
    101. }
    102.  
    103. a.recpass:hover {
    104. color:#00AD09;
    105. border:none;
    106. }
    107.  
    108. </style><script type="text/javascript" language="JavaScript">
    109.     function LoginClick() {
    110.         document.getElementById('logfrm').style.display = '';
    111.         document.getElementById('logbtn').style.display = 'none';
    112.         document.getElementById('loginsubmit').action = '-msg=201.htm'/*tpa=http://www.nollseotrip.net/login.php*/;
    113.         document.forms['loginsubmit'].logsuccess.value = 'о';
    114.     }
    115.     function SbmForm() {
    116.         if (document.forms['loginsubmit'].login.value == '') {
    117.             alert('Не указан логин');
    118.             document.forms[0].login.focus();
    119.             return false;
    120.         }
    121.         if (document.forms['loginsubmit'].password.value == '') {
    122.             alert('Не указан пароль для входа');
    123.             document.forms[0].password.focus();
    124.             return false;
    125.         }
    126.         /*var re = /^\w+([\.-]?\w+)*@(((([a-z0-9]{1,})|([a-z0-9][-][a-z0-9]+))[\.][a-z0-9])|([a-z0-9]+[-]?))+[a-z0-9]+\.([a-z]{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i;
    127.         if (!re.test(eval("document.forms['loginsubmit'].askemail.value"))) {
    128.             alert('Адрес e-mail указан некорректно');
    129.             document.forms[0].askemail.focus();
    130.             return false;
    131.         }*/
    132.  
    133.         document.forms['loginsubmit'].logpar.value = 'e7536a9b4926e470ff9b1b6881af4c0b';
    134.         document.forms['loginsubmit'].logsuccess.value += 'o';
    135.         document.forms['loginsubmit'].submit();
    136.         return true;
    137.     }
    138. </script>
    139.  
    140. <center>
    141. <a name="login"></a>
    142. [url="register.php"] Регистрация</font>[/url]
    143. [url="#login"] Вход</font>[/url]
    144.  
    145. <div id="logfrm" class="formlogin" style="display: none;">
    146. <form action="/login.php" method=post name="login" id="login">
    147.    
    148.         <div style="display: none;">Логин<input type="text" name="login" size="15" maxlength="20" /></div>
    149.         <table>
    150.             <tr>
    151.                 <td>Логин</td>
    152.                 <td><input type="text" name="username" size="15"></td>
    153.             </tr>
    154.             <tr>
    155.                 <td>Пароль</td>
    156.                 <td><input type="password" name="password" maxlength="40" size="15"/></td>
    157.             </tr>
    158.         </table>
    159.         <input class="loginsubmit" type="submit" name="" value="Войти" />
    160.         <input type="hidden" name="logsuccess" value="" />
    161.         <input type="hidden" name="logpar" value="05018-4s" />
    162.     </form>
    163.  
    164.  
    165.     [url="recoverpwd.php"]Забыли пароль?[/url]
    166. </div>
    167. </center>
    Перенаправляется на эту страницу!
    Подскажите,где здесь ошибка:
    Код (PHP):
    1. <?php
    2. $pagetitle="Вход";
    3. include('header.php');
    4. require_once('.zsecurity.php');
    5. require('config.php');
    6.  
    7. if(isset($_POST["username"]) && isset($_POST["password"])) {
    8. $password=uc($_POST['password']);
    9.     if( isset($_POST['username']) )
    10.     {
    11.         $pass = md5($password);
    12.     }
    13. #$username = false;
    14. #$password = false;
    15. $ip = getRealIP();
    16.  
    17. $enter_pass_oper = (isset($_POST["pass_oper"]) && preg_match("|^[a-zA-Z0-9\-_-]{6,20}$|", trim($_POST["pass_oper"]))) ? uc_p($_POST["pass_oper"]) : false;
    18.  
    19. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,20}$|", trim($_POST["username"]))) {
    20.     $username = htmlentities(stripslashes(strtolower(trim($_POST["username"]))));
    21.     $username = str_replace("'","",$username);
    22.     $username = str_replace(";","",$username);
    23.     $username = str_replace("$","",$username);
    24.     $eror_username = true;
    25. }else{
    26.     $eror_username = false;
    27. }
    28.  
    29. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,30}$|", trim(md5($_POST['password'])))) {
    30.     $pass = htmlentities(stripslashes(strtolower(trim(md5($_POST['password'])))));
    31.     $pass = str_replace("'","",md5($password));
    32.     $pass = str_replace(";","",md5($password));
    33.     $pass = str_replace("$","",md5($password));
    34.     $eror_pass = true;
    35. }else{
    36.     $eror_pass = false;
    37. }
    38.  
    39.  
    40. if($username==false|$pass==false)
    41.     echo '<fieldset class="errorp">Ошибка! Не указаны данные для авторизации!</fieldset>';
    42. elseif($eror_username == false)
    43.     echo '<fieldset class="errorp">Ошибка! Указан неправильный логин! Логин должен состоять от 3 до 20 символов, и содержать только латинские символы!</fieldset>';
    44. elseif($eror_pass == false)
    45.     echo '<fieldset class="errorp"></fieldset>'; 
    46. else{
    47.     $mysql_queries = "0";
    48.            require('config.php');
    49.  
    50.     $sql = mysql_query("SELECT * FROM `tb_users` WHERE `username`='$username' AND `password`='$pass'") or die(mysql_error());
    51.     if(mysql_num_rows($sql)>0) {
    52.         $row = mysql_fetch_array($sql);
    53.  
    54.         $partnerid = $row["id"];
    55.         $lastiplog = $row["lastiplog"];
    56.         $block_wmid = $row["block_wmid"];
    57.         $block_agent = $row["block_agent"];
    58.         $pass_oper = $row["pass_oper"];
    59.         $agent = $row["agent"];
    60.         $agent_now = getenv("HTTP_USER_AGENT");
    61.  
    62.  
    63.         if(strtolower($username) != strtolower($row["username"]))
    64.             echo '<fieldset class="errorp">Ошибка! Логин введен не верно!</fieldset>';
    65.         elseif(strtolower($pass) != strtolower(md5($row["password"])))
    66.             echo '<fieldset class="errorp">Ошибка! Пароль введен не верно!</fieldset>';
    67.         elseif($block_wmid==1)
    68.             echo '<fieldset class="errorp">Ошибка! Вы не можете войти в аккаунт используя логин/пароль! Так как Вы установили ограничение [Входить только через Login.WebMoney]</fieldset>';
    69.  
    70.         elseif($block_agent==1 && ($ip!=$lastiplog | $agent_now!=$agent) && $enter_pass_oper!=$pass_oper) {
    71.  
    72.             ?><script type="text/javascript" src="../scripts/jquery.min.js"></script>
    73.             <script type="text/javascript" src="../scripts/jqpooop.js"></script>
    74.  
    75.             <script language="JavaScript">
    76.                 function sendchkpass(){
    77.                     if (confirm("Вы собираетесь получить пароль для операций.\nСейчас будет сгенерирован новый пароль для операций, a старый будет удален из системы.\nВы хотите продолжить?")){
    78.                         pass_oper("<?php echo $partnerid;?>");
    79.                     }
    80.                 }
    81.             </script><?php
    82.  
    83.             if($enter_pass_oper==false) {
    84.  
    85.                 echo '<fieldset class="errorp">Внимание!<br>У Вас изменился браузер или IP-адрес, необходимо ввести пароль для операций.</fieldset>';
    86.  
    87.                 echo '<br><br>';
    88.                 echo '<div id="form">';
    89.                     echo '<form action="" method="post">';
    90.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    91.                         echo '<input type="hidden" name="password" value="'.$pass.'">';
    92.                         echo '<table class="tables">';
    93.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    94.                             echo '<tr>';
    95.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    96.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    97.                             echo '</tr>';
    98.                             echo '<tr>';
    99.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    100.                             echo '</tr>';
    101.                             echo '<tr>';
    102.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    103.                             echo '</tr>';
    104.                             echo '<tr>';
    105.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    106.                             echo '</tr>';
    107.                         echo '</table>';
    108.                     echo '</form>';
    109.                 echo '</div>';
    110.  
    111.             }elseif($enter_pass_oper!=$pass_oper) {
    112.  
    113.                 echo '<fieldset class="errorp">Внимание!<br>Вы указали неправильный пароль для операций!</fieldset>';
    114.  
    115.                 echo '<br><br>';
    116.                 echo '<div id="form">';
    117.                     echo '<form action="" method="post">';
    118.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    119.                         echo '<input type="hidden" name="password" value="'.$pass.'">';
    120.                         echo '<table class="tables">';
    121.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    122.                             echo '<tr>';
    123.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    124.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    125.                             echo '</tr>';
    126.                             echo '<tr>';
    127.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    128.                             echo '</tr>';
    129.                             echo '<tr>';
    130.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    131.                             echo '</tr>';
    132.                             echo '<tr>';
    133.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    134.                             echo '</tr>';
    135.                         echo '</table>';
    136.                     echo '</form>';
    137.                 echo '</div>';
    138.             }
    139.  
    140.             include('footer.php');
    141.             exit();
    142.  
    143.  
    144.         }else{
    145.             //echo "$block_wmid - $ip $lastiplog | $agent_now=$agent"; exit();
    146.             $attestat = $row['attestat'];
    147.  
    148.             $_SESSION["partnerid"] = $row["id"];
    149.             $_SESSION["userLog"] = $row["username"];
    150.             $_SESSION["userPas"] = md5($row["password"]);
    151.             $_SESSION["WMID"] = $row["wmid"];
    152.             $_SESSION["IP"] = $ip;
    153.             $_SESSION["members_url"] = getenv("HTTP_REFERER");
    154.  
    155.             ?>
    156.  
    157.             <script type="text/javascript">
    158.                 function getCookie(name) {
    159.                     var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"))
    160.                     return matches ? decodeURIComponent(matches[1]) : undefined 
    161.                 }
    162.  
    163.                 function setCookie (name, value, expires, path, domain, secure) {
    164.                     document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
    165.                 }
    166.  
    167.                 function deleteCookie(name) {
    168.                     setCookie(name, null, { expires: -1 })
    169.                 }
    170.  
    171.                 setCookie('#sid', '<?=base64_encode($row["username"]);?>', "<?=(DATE("l, d-M-Y H:i:s",(time()+7776000)));?>");
    172.  
    173.             </script>
    174.  
    175.             <?php
    176.  
    177.  
    178.  
    179.             $sql_r1 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer`='$username'");
    180.             $referals1 = mysql_num_rows($sql_r1);
    181.  
    182.             $sql_r2 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer2`='$username'");
    183.             $referals2 = mysql_num_rows($sql_r2);
    184.  
    185.             $sql_r3 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer3`='$username'");
    186.             $referals3 = mysql_num_rows($sql_r3);
    187.  
    188.             $rrr2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$username'");
    189.             $rrr = mysql_fetch_array($rrr2);
    190.             $referals22 = $referals2+$rrr['k_rb_2'];
    191.             $referals33 = $referals3+$rrr['k_rb_3'];
    192.  
    193.  
    194.             //$sql_user2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$referal'");
    195.             //$row_user2 = mysql_fetch_array($sql_user2);
    196.             //    $k_rb_2 = $row_user2["k_rb_2"];
    197.             //    $k_rb_3 = $row_user2["k_rb_3"];
    198.  
    199.             //if($lastiplog!="$ip") {
    200.             /*    include("geoip/geoipcity.inc");
    201.                 include("geoip/geoipregionvars.php");
    202.  
    203.                 $gi = geoip_open("geoip/GeoLiteCity.dat",GEOIP_STANDARD);
    204.                 $record = @geoip_record_by_addr($gi,$ip);
    205.                 @geoip_close($gi);
    206.  
    207.                 $country_code =  $record->country_code; 
    208.                 */
    209.             //}else{
    210.             //    $country_code =  $row["country"]; 
    211.             //}
    212.  
    213.  
    214.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_noactive' AND `howmany`='1'");
    215.             $reit_noactive = mysql_result($sql,0,0);
    216.  
    217.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_active' AND `howmany`='1'");
    218.             $reit_active = mysql_result($sql,0,0);
    219.  
    220.             if( $row["lastlogdate2"] < (time()-7*24*60*60) ) {
    221.                 $reit_add_1 = $reit_noactive;
    222.             }else{
    223.                 $reit_add_1 = 0;
    224.             }
    225.  
    226.             if(DATE("d.m.Y", $row["lastlogdate2"])==DATE("d.m.Y") | $reit_add_1!=0) {
    227.                 $reit_add_2 = 0;
    228.             }else{
    229.                 $reit_add_2 = $reit_active;
    230.             }
    231.  
    232.             $reit_add = $reit_add_1 + $reit_add_2;
    233.  
    234.  
    235.             if(isset($_COOKIE["#sid"])) {
    236.                 $nicke = $_COOKIE["#sid"];
    237.                 $chname = base64_decode($nicke);
    238.  
    239.                 if(strtolower($username) != strtolower($chname)) {
    240.                     $date=DATE("d.m.Y в H:i");
    241.                     $whyBan="Мультиаккаунт ($chname$username)";
    242.  
    243.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$chname','$whyBan','$ip','$date')") or die(mysql_error());
    244.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$username','$whyBan','$ip','$date')") or die(mysql_error());
    245.                 }
    246.             }
    247.  
    248.             echo '<fieldset class="okp">Авторизация прошла успешно!</fieldset>';
    249.  
    250.             echo ' <script type="text/javascript"> setTimeout(location.replace("/members.php"), 3000); </script> ';
    251.             echo ' <noscript><META HTTP-EQUIV="REFRESH" CONTENT="3;URL=/members.php"></noscript>';
    252.  
    253.         }
    254.     }else{
    255.         echo '<fieldset class="errorp">Ошибка! Логин или пароль введен не верно!</fieldset>';
    256.     }
    257. }
    258.  
    259. }else{
    260.     echo '<script type="text/javascript">location.replace("/");</script>';
    261.     echo '<noscript><META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/"></noscript>';
    262. }
    263. include("footer.php");
    264. ?>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Если ты в базу записываешь хэш, то из базы тоже получишь хэш, поэтому повторно хэшировать строку пароля не надо. Потому что хэш хэша - это уже другой хэш.
     
  3. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Это устранил,но ошибка: "Ошибка! Указан неправильный пароль! Пароль должен состоять не менее чем от 3 до 20 символов, и содержать только латинские символы!" не исчезла,думаю,гдето ещё чтото пропустил
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Жаль, но в коде, который ты загрузил, нет этой ошибки
     
  5. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Посмотрите этот пример! Только что подредактировал! Но в нем пароли,которые в базе нехешированы-авторизуются,а хешированы-нет(Ошибка:"Ошибка! Логин или пароль введен не верно!"):
    Код (PHP):
    1. <?php
    2. if(isset($_POST["username"]) && isset($_POST["password"])) {
    3. $password=uc($_POST['password']);
    4.     if( isset($_POST['username']) )
    5.     {
    6.         $pass = md5($password);
    7.     }
    8. #$username = false;
    9. #$password = false;
    10. $ip = getRealIP();
    11.  
    12. $enter_pass_oper = (isset($_POST["pass_oper"]) && preg_match("|^[a-zA-Z0-9\-_-]{6,20}$|", trim($_POST["pass_oper"]))) ? uc_p($_POST["pass_oper"]) : false;
    13.  
    14. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,20}$|", trim($_POST["username"]))) {
    15.     $username = htmlentities(stripslashes(strtolower(trim($_POST["username"]))));
    16.     $username = str_replace("'","",$username);
    17.     $username = str_replace(";","",$username);
    18.     $username = str_replace("$","",$username);
    19.     $eror_username = true;
    20. }else{
    21.     $eror_username = false;
    22. }
    23.  
    24. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,30}$|", trim($_POST['password']))) {
    25.     $pass = htmlentities(stripslashes(strtolower(trim($_POST['password']))));
    26.     $pass = str_replace("'","",$pass);
    27.     $pass = str_replace(";","",$pass);
    28.     $pass = str_replace("$","",$pass);
    29.     $eror_pass = true;
    30. }else{
    31.     $eror_pass = false;
    32. }
    33.  
    34.  
    35. if($username==false|$pass==false)
    36.     echo '<fieldset class="errorp">Ошибка! Не указаны данные для авторизации!</fieldset>';
    37. elseif($eror_username == false)
    38.     echo '<fieldset class="errorp">Ошибка! Указан неправильный логин! Логин должен состоять от 3 до 20 символов, и содержать только латинские символы!</fieldset>';
    39. elseif($eror_pass == false)
    40.     echo '<fieldset class="errorp">Ошибка! Указан неправильный пароль! Пароль должен состоять не менее чем от 3 до 20 символов, и содержать только латинские символы!</fieldset>'; 
    41. else{
    42.     $mysql_queries = "0";
    43.            require('config.php');
    44.  
    45.     $sql = mysql_query("SELECT * FROM `tb_users` WHERE `username`='$username' AND `password`='$pass'") or die(mysql_error());
    46.     if(mysql_num_rows($sql)>0) {
    47.         $row = mysql_fetch_array($sql);
    48.  
    49.         $partnerid = $row["id"];
    50.         $lastiplog = $row["lastiplog"];
    51.         $block_wmid = $row["block_wmid"];
    52.         $block_agent = $row["block_agent"];
    53.         $pass_oper = $row["pass_oper"];
    54.         $agent = $row["agent"];
    55.         $agent_now = getenv("HTTP_USER_AGENT");
    56.  
    57.  
    58.         if(strtolower($username) != strtolower($row["username"]))
    59.             echo '<fieldset class="errorp">Ошибка! Логин введен не верно!</fieldset>';
    60.         elseif(strtolower($pass) != strtolower($row["password"]))
    61.             echo '<fieldset class="errorp">Ошибка! Пароль введен не верно!</fieldset>';
    62.         elseif($block_wmid==1)
    63.             echo '<fieldset class="errorp">Ошибка! Вы не можете войти в аккаунт используя логин/пароль! Так как Вы установили ограничение [Входить только через Login.WebMoney]</fieldset>';
    64.  
    65.         elseif($block_agent==1 && ($ip!=$lastiplog | $agent_now!=$agent) && $enter_pass_oper!=$pass_oper) {
    66.  
    67.             ?><script type="text/javascript" src="../scripts/jquery.min.js"></script>
    68.             <script type="text/javascript" src="../scripts/jqpooop.js"></script>
    69.  
    70.             <script language="JavaScript">
    71.                 function sendchkpass(){
    72.                     if (confirm("Вы собираетесь получить пароль для операций.\nСейчас будет сгенерирован новый пароль для операций, a старый будет удален из системы.\nВы хотите продолжить?")){
    73.                         pass_oper("<?php echo $partnerid;?>");
    74.                     }
    75.                 }
    76.             </script><?php
    77.  
    78.             if($enter_pass_oper==false) {
    79.  
    80.                 echo '<fieldset class="errorp">Внимание!<br>У Вас изменился браузер или IP-адрес, необходимо ввести пароль для операций.</fieldset>';
    81.  
    82.                 echo '<br><br>';
    83.                 echo '<div id="form">';
    84.                     echo '<form action="" method="post">';
    85.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    86.                         echo '<input type="hidden" name="password" value="'.$pass.'">';
    87.                         echo '<table class="tables">';
    88.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    89.                             echo '<tr>';
    90.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    91.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    92.                             echo '</tr>';
    93.                             echo '<tr>';
    94.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    95.                             echo '</tr>';
    96.                             echo '<tr>';
    97.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    98.                             echo '</tr>';
    99.                             echo '<tr>';
    100.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    101.                             echo '</tr>';
    102.                         echo '</table>';
    103.                     echo '</form>';
    104.                 echo '</div>';
    105.  
    106.             }elseif($enter_pass_oper!=$pass_oper) {
    107.  
    108.                 echo '<fieldset class="errorp">Внимание!<br>Вы указали неправильный пароль для операций!</fieldset>';
    109.  
    110.                 echo '<br><br>';
    111.                 echo '<div id="form">';
    112.                     echo '<form action="" method="post">';
    113.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    114.                         echo '<input type="hidden" name="password" value="'.$pass.'">';
    115.                         echo '<table class="tables">';
    116.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    117.                             echo '<tr>';
    118.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    119.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    120.                             echo '</tr>';
    121.                             echo '<tr>';
    122.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    123.                             echo '</tr>';
    124.                             echo '<tr>';
    125.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    126.                             echo '</tr>';
    127.                             echo '<tr>';
    128.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    129.                             echo '</tr>';
    130.                         echo '</table>';
    131.                     echo '</form>';
    132.                 echo '</div>';
    133.             }
    134.  
    135.             include('footer.php');
    136.             exit();
    137.  
    138.  
    139.         }else{
    140.             //echo "$block_wmid - $ip $lastiplog | $agent_now=$agent"; exit();
    141.             $attestat = $row['attestat'];
    142.  
    143.             $_SESSION["partnerid"] = $row["id"];
    144.             $_SESSION["userLog"] = $row["username"];
    145.             $_SESSION["userPas"] = md5($row["password"]);
    146.             $_SESSION["WMID"] = $row["wmid"];
    147.             $_SESSION["IP"] = $ip;
    148.             $_SESSION["members_url"] = getenv("HTTP_REFERER");
    149.  
    150.             ?>
    151.  
    152.             <script type="text/javascript">
    153.                 function getCookie(name) {
    154.                     var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"))
    155.                     return matches ? decodeURIComponent(matches[1]) : undefined 
    156.                 }
    157.  
    158.                 function setCookie (name, value, expires, path, domain, secure) {
    159.                     document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
    160.                 }
    161.  
    162.                 function deleteCookie(name) {
    163.                     setCookie(name, null, { expires: -1 })
    164.                 }
    165.  
    166.                 setCookie('#sid', '<?=base64_encode($row["username"]);?>', "<?=(DATE("l, d-M-Y H:i:s",(time()+7776000)));?>");
    167.  
    168.             </script>
    169.  
    170.             <?php
    171.  
    172.  
    173.  
    174.             $sql_r1 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer`='$username'");
    175.             $referals1 = mysql_num_rows($sql_r1);
    176.  
    177.             $sql_r2 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer2`='$username'");
    178.             $referals2 = mysql_num_rows($sql_r2);
    179.  
    180.             $sql_r3 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer3`='$username'");
    181.             $referals3 = mysql_num_rows($sql_r3);
    182.  
    183.             $rrr2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$username'");
    184.             $rrr = mysql_fetch_array($rrr2);
    185.             $referals22 = $referals2+$rrr['k_rb_2'];
    186.             $referals33 = $referals3+$rrr['k_rb_3'];
    187.  
    188.  
    189.             //$sql_user2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$referal'");
    190.             //$row_user2 = mysql_fetch_array($sql_user2);
    191.             //    $k_rb_2 = $row_user2["k_rb_2"];
    192.             //    $k_rb_3 = $row_user2["k_rb_3"];
    193.  
    194.             //if($lastiplog!="$ip") {
    195.             /*    include("geoip/geoipcity.inc");
    196.                 include("geoip/geoipregionvars.php");
    197.  
    198.                 $gi = geoip_open("geoip/GeoLiteCity.dat",GEOIP_STANDARD);
    199.                 $record = @geoip_record_by_addr($gi,$ip);
    200.                 @geoip_close($gi);
    201.  
    202.                 $country_code =  $record->country_code; 
    203.                 */
    204.             //}else{
    205.             //    $country_code =  $row["country"]; 
    206.             //}
    207.  
    208.  
    209.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_noactive' AND `howmany`='1'");
    210.             $reit_noactive = mysql_result($sql,0,0);
    211.  
    212.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_active' AND `howmany`='1'");
    213.             $reit_active = mysql_result($sql,0,0);
    214.  
    215.             if( $row["lastlogdate2"] < (time()-7*24*60*60) ) {
    216.                 $reit_add_1 = $reit_noactive;
    217.             }else{
    218.                 $reit_add_1 = 0;
    219.             }
    220.  
    221.             if(DATE("d.m.Y", $row["lastlogdate2"])==DATE("d.m.Y") | $reit_add_1!=0) {
    222.                 $reit_add_2 = 0;
    223.             }else{
    224.                 $reit_add_2 = $reit_active;
    225.             }
    226.  
    227.             $reit_add = $reit_add_1 + $reit_add_2;
    228.  
    229.  
    230.             if(isset($_COOKIE["#sid"])) {
    231.                 $nicke = $_COOKIE["#sid"];
    232.                 $chname = base64_decode($nicke);
    233.  
    234.                 if(strtolower($username) != strtolower($chname)) {
    235.                     $date=DATE("d.m.Y в H:i");
    236.                     $whyBan="Мультиаккаунт ($chname$username)";
    237.  
    238.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$chname','$whyBan','$ip','$date')") or die(mysql_error());
    239.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$username','$whyBan','$ip','$date')") or die(mysql_error());
    240.                 }
    241.             }
    242.  
    243.             echo '<fieldset class="okp">Авторизация прошла успешно!</fieldset>';
    244.  
    245.             echo ' <script type="text/javascript"> setTimeout(location.replace("/members.php"), 3000); </script> ';
    246.             echo ' <noscript><META HTTP-EQUIV="REFRESH" CONTENT="3;URL=/members.php"></noscript>';
    247.  
    248.         }
    249.     }else{
    250.         echo '<fieldset class="errorp">Ошибка! Логин или пароль введен не верно!</fieldset>';
    251.     }
    252. }
    253.  
    254. }else{
    255.     echo '<script type="text/javascript">location.replace("/");</script>';
    256.     echo '<noscript><META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/"></noscript>';
    257. }
    258. include("footer.php");
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Логическое ИЛИ обозначается двумя знаками || - вот так.
     
  7. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Как то с формой для регистрации для него с md5 проблем не возникло-тестил и у меня при реге в БД пароли уже хешированы записывались,а с авторизационным окном какая то проблема неизвестная...

    Добавлено спустя 1 минуту:
    Да,здесь косячек-не усмотрел,но,боюсь, от этого проблема не изменилась(
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Код в целом выглядит ужасно и содержит ошибки, не стоит включать его в таком виде в продукт. Можно попробовать написать его заново.
     
  9. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Думаю,вы правы!Попробую переформатировать и отписаться попозже
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Лол. Это как героиновому торчку сказать "не ешь чипсы, они вредные".
     
  12. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Понятно! А всё таки куда добавить в этот скрипт функцию md5,чтоб было считывание хеша с БД?
    Вот теперь исходной код:
    Код (PHP):
    1. <?php
    2. $pagetitle="Авторизация";
    3. include('header.php');
    4. require_once('.zsecurity.php');
    5. require('config.php');
    6.  
    7. if(isset($_POST["username"]) && isset($_POST["password"])) {
    8.  
    9. $username = false;
    10. $password = false;
    11. $ip = getRealIP();
    12.  
    13. $enter_pass_oper = (isset($_POST["pass_oper"]) && preg_match("|^[a-zA-Z0-9\-_-]{6,20}$|", trim($_POST["pass_oper"]))) ? uc_p($_POST["pass_oper"]) : false;
    14.  
    15. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,20}$|", trim($_POST["username"]))) {
    16.     $username = htmlentities(stripslashes(strtolower(trim($_POST["username"]))));
    17.     $username = str_replace("'","",$username);
    18.     $username = str_replace(";","",$username);
    19.     $username = str_replace("$","",$username);
    20.     $eror_username = true;
    21. }else{
    22.     $eror_username = false;
    23. }
    24.  
    25. if(preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,20}$|", trim($_POST["password"]))) {
    26.     $password = htmlentities(stripslashes(strtolower(trim($_POST["password"]))));
    27.     $password = str_replace("'","",$password);
    28.     $password = str_replace(";","",$password);
    29.     $password = str_replace("$","",$password);
    30.     $eror_password = true;
    31. }else{
    32.     $eror_password = false;
    33. }
    34.  
    35.  
    36. if($username==false|$password==false)
    37.     echo '<fieldset class="errorp">Ошибка! Не указаны данные для авторизации!</fieldset>';
    38. elseif($eror_username == false)
    39.     echo '<fieldset class="errorp">Ошибка! Указан неправильный логин! Логин должен состоять от 3 до 20 символов, и содержать только латинские символы!</fieldset>';
    40. elseif($eror_password == false)
    41.     echo '<fieldset class="errorp">Ошибка! Указан неправильный пароль! Пароль должен состоять не менее чем от 3 до 20 символов, и содержать только латинские символы!</fieldset>';
    42. else{
    43.     $mysql_queries = "0";
    44.            require('config.php');
    45.  
    46.     $sql = mysql_query("SELECT * FROM `tb_users` WHERE `username`='$username' AND `password`='$password'") or die(mysql_error());
    47.     if(mysql_num_rows($sql)>0) {
    48.         $row = mysql_fetch_array($sql);
    49.  
    50.         $partnerid = $row["id"];
    51.         $lastiplog = $row["lastiplog"];
    52.         $block_wmid = $row["block_wmid"];
    53.         $block_agent = $row["block_agent"];
    54.         $pass_oper = $row["pass_oper"];
    55.         $agent = $row["agent"];
    56.         $agent_now = getenv("HTTP_USER_AGENT");
    57.  
    58.  
    59.         if(strtolower($username) != strtolower($row["username"]))
    60.             echo '<fieldset class="errorp">Ошибка! Логин введен не верно!</fieldset>';
    61.         elseif(strtolower($password) != strtolower($row["password"]))
    62.             echo '<fieldset class="errorp">Ошибка! Пароль введен не верно!</fieldset>';
    63.         elseif($block_wmid==1)
    64.             echo '<fieldset class="errorp">Ошибка! Вы не можете войти в аккаунт используя логин/пароль! Так как Вы установили ограничение [Входить только через Login.WebMoney]</fieldset>';
    65.  
    66.         elseif($block_agent==1 && ($ip!=$lastiplog | $agent_now!=$agent) && $enter_pass_oper!=$pass_oper) {
    67.  
    68.             ?><script type="text/javascript" src="../scripts/jquery.min.js"></script>
    69.             <script type="text/javascript" src="../scripts/jqpooop.js"></script>
    70.  
    71.             <script language="JavaScript">
    72.                 function sendchkpass(){
    73.                     if (confirm("Вы собираетесь получить пароль для операций.\nСейчас будет сгенерирован новый пароль для операций, a старый будет удален из системы.\nВы хотите продолжить?")){
    74.                         pass_oper("<?php echo $partnerid;?>");
    75.                     }
    76.                 }
    77.             </script><?php
    78.  
    79.             if($enter_pass_oper==false) {
    80.  
    81.                 echo '<fieldset class="errorp">Внимание!<br>У Вас изменился браузер или IP-адрес, необходимо ввести пароль для операций.</fieldset>';
    82.  
    83.                 echo '<br><br>';
    84.                 echo '<div id="form">';
    85.                     echo '<form action="" method="post">';
    86.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    87.                         echo '<input type="hidden" name="password" value="'.$password.'">';
    88.                         echo '<table class="tables">';
    89.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    90.                             echo '<tr>';
    91.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    92.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    93.                             echo '</tr>';
    94.                             echo '<tr>';
    95.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    96.                             echo '</tr>';
    97.                             echo '<tr>';
    98.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    99.                             echo '</tr>';
    100.                             echo '<tr>';
    101.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    102.                             echo '</tr>';
    103.                         echo '</table>';
    104.                     echo '</form>';
    105.                 echo '</div>';
    106.  
    107.             }elseif($enter_pass_oper!=$pass_oper) {
    108.  
    109.                 echo '<fieldset class="errorp">Внимание!<br>Вы указали неправильный пароль для операций!</fieldset>';
    110.  
    111.                 echo '<br><br>';
    112.                 echo '<div id="form">';
    113.                     echo '<form action="" method="post">';
    114.                         echo '<input type="hidden" name="username" value="'.$username.'">';
    115.                         echo '<input type="hidden" name="password" value="'.$password.'">';
    116.                         echo '<table class="tables">';
    117.                             echo '<tr align="center" height="30px"><th align="center" colspan="2" class="top">Форма авторизации</th></tr>';
    118.                             echo '<tr>';
    119.                                 echo '<td width="50%" height="25" align="right"><b>Пароль для операций:</b></td>';
    120.                                 echo '<td width="50%" height="25" align="left"> <input type="password" size="20" maxlength="10" name="pass_oper" value="" /></td>';
    121.                             echo '</tr>';
    122.                             echo '<tr>';
    123.                                 echo '<td height="25" align="center" colspan="2">Для входа в аккаунт Вам нужно указать "пароль для операций".</td>';
    124.                             echo '</tr>';
    125.                             echo '<tr>';
    126.                                 echo '<td height="25" align="center" colspan="2">[url="javascript: void(0);"]Выслать пароль для операций на мой WM-кипер</b>[/url]</td>';
    127.                             echo '</tr>';
    128.                             echo '<tr>';
    129.                                 echo '<td height="25" align="center" colspan="2"><input type="submit" class="submit" value="Войти в аккаунт" /></td>';
    130.                             echo '</tr>';
    131.                         echo '</table>';
    132.                     echo '</form>';
    133.                 echo '</div>';
    134.             }
    135.  
    136.             include('footer.php');
    137.             exit();
    138.  
    139.  
    140.         }else{
    141.             //echo "$block_wmid - $ip $lastiplog | $agent_now=$agent"; exit();
    142.             $attestat = $row['attestat'];
    143.  
    144.             $_SESSION["partnerid"] = $row["id"];
    145.             $_SESSION["userLog"] = $row["username"];
    146.             $_SESSION["userPas"] = md5($row["password"]);
    147.             $_SESSION["WMID"] = $row["wmid"];
    148.             $_SESSION["IP"] = $ip;
    149.             $_SESSION["members_url"] = getenv("HTTP_REFERER");
    150.  
    151.             ?>
    152.  
    153.             <script type="text/javascript">
    154.                 function getCookie(name) {
    155.                     var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"))
    156.                     return matches ? decodeURIComponent(matches[1]) : undefined 
    157.                 }
    158.  
    159.                 function setCookie (name, value, expires, path, domain, secure) {
    160.                     document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
    161.                 }
    162.  
    163.                 function deleteCookie(name) {
    164.                     setCookie(name, null, { expires: -1 })
    165.                 }
    166.  
    167.                 setCookie('#sid', '<?=base64_encode($row["username"]);?>', "<?=(DATE("l, d-M-Y H:i:s",(time()+7776000)));?>");
    168.  
    169.             </script>
    170.  
    171.             <?php
    172.  
    173.  
    174.  
    175.             $sql_r1 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer`='$username'");
    176.             $referals1 = mysql_num_rows($sql_r1);
    177.  
    178.             $sql_r2 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer2`='$username'");
    179.             $referals2 = mysql_num_rows($sql_r2);
    180.  
    181.             $sql_r3 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer3`='$username'");
    182.             $referals3 = mysql_num_rows($sql_r3);
    183.  
    184.             $rrr2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$username'");
    185.             $rrr = mysql_fetch_array($rrr2);
    186.             $referals22 = $referals2+$rrr['k_rb_2'];
    187.             $referals33 = $referals3+$rrr['k_rb_3'];
    188.  
    189.  
    190.             //$sql_user2 = mysql_query("SELECT `k_rb_2`, `k_rb_3` FROM `tb_users` WHERE `username`='$referal'");
    191.             //$row_user2 = mysql_fetch_array($sql_user2);
    192.             //    $k_rb_2 = $row_user2["k_rb_2"];
    193.             //    $k_rb_3 = $row_user2["k_rb_3"];
    194.  
    195.             //if($lastiplog!="$ip") {
    196.                 include("geoip/geoipcity.inc");
    197.                 include("geoip/geoipregionvars.php");
    198.  
    199.                 $gi = geoip_open("geoip/GeoLiteCity.dat",GEOIP_STANDARD);
    200.                 $record = @geoip_record_by_addr($gi,$ip);
    201.                 @geoip_close($gi);
    202.  
    203.                 $country_code =  $record->country_code;
    204.             //}else{
    205.             //    $country_code =  $row["country"];
    206.             //}
    207.  
    208.  
    209.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_noactive' AND `howmany`='1'");
    210.             $reit_noactive = mysql_result($sql,0,0);
    211.  
    212.             $sql = mysql_query("SELECT `price` FROM `tb_config` WHERE `item`='reit_active' AND `howmany`='1'");
    213.             $reit_active = mysql_result($sql,0,0);
    214.  
    215.             if( $row["lastlogdate2"] < (time()-7*24*60*60) ) {
    216.                 $reit_add_1 = $reit_noactive;
    217.             }else{
    218.                 $reit_add_1 = 0;
    219.             }
    220.  
    221.             if(DATE("d.m.Y", $row["lastlogdate2"])==DATE("d.m.Y") | $reit_add_1!=0) {
    222.                 $reit_add_2 = 0;
    223.             }else{
    224.                 $reit_add_2 = $reit_active;
    225.             }
    226.  
    227.             $reit_add = $reit_add_1 + $reit_add_2;
    228.  
    229.  
    230.             if(isset($_COOKIE["#sid"])) {
    231.                 $nicke = $_COOKIE["#sid"];
    232.                 $chname = base64_decode($nicke);
    233.  
    234.                 if(strtolower($username) != strtolower($chname)) {
    235.                     $date=DATE("d.m.Y в H:i");
    236.                     $whyBan="Мультиаккаунт ($chname$username)";
    237.  
    238.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$chname','$whyBan','$ip','$date')") or die(mysql_error());
    239.                     mysql_query("INSERT into bannedUsers (name, why, ip, date) VALUES ('$username','$whyBan','$ip','$date')") or die(mysql_error());
    240.                 }
    241.             }
    242.  
    243.             echo '<fieldset class="okp">Авторизация прошла успешно!</fieldset>';
    244.  
    245.             echo ' <script type="text/javascript"> setTimeout(location.replace("/members.php"), 3000); </script> ';
    246.             echo ' <noscript><META HTTP-EQUIV="REFRESH" CONTENT="3;URL=/members.php"></noscript>';
    247.  
    248.         }
    249.     }else{
    250.         echo '<fieldset class="errorp">Ошибка! Логин или пароль введен не верно!</fieldset>';
    251.     }
    252. }
    253.  
    254. }else{
    255.     echo '<script type="text/javascript">location.replace("/");</script>';
    256.     echo '<noscript><META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/"></noscript>';
    257. }
    258. include("footer.php");
    259. ?>
    Мне сейчас главное,чтоб с этого кода происходила конвертация открытого пароля,вводимого на странице с хешированого вида в БД,а сам код и остальное,позже сам усовершенствую!
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    угу. вот и попробуй те функции, которые тебе сказали заюзать. Они работают проще, ничего не требуется соображать.
     
  14. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    у меня на php 5.5 поддерживать всё равно небудет
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    во-первых, "не будет" - раздельно. во-вторых, как раз начиная с версии 5.5 указанные функции были добавлены в ядро пхп. то есть немного ошибочное утверждение.
     
  16. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    спасибо за подсказку-ребенок клавишу пробела сломал,иногда заедает! У меня на данный момент пхп 5.2.
    Но вопрос не в этом,неужели никто не сможет помочь,чтоб именно этот код считывал пароль с md5,а не подсказывал о залипании клавиш?
    Реально,перепробовал все методы подстановок в этом коде и...или пароль не верен,или все равно заходит под открытым паролем!Регистрационную форму получилось написать,чтоб пароль записывало в md5,а вот лог форма очень таки интересной попалась!
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    там жуткий говнокод. тебе уже предложили переписать всё. желательно с нуля.
    например конструкция preg_match("|^[а-яА-Яa-zA-Z0-9\-_-]{3,30}$|", trim(md5($_POST['password']))) вообще не имеет смысла. можно было сделать сразу if(0) и всегда получать аналогичное НЕ срабатывание условия. почему? потому что сначала ты применяешь хэш к паролю. мд5 возвращает 32 шестнадцатиричных символа. то есть от нуля до девятки и от эй до эф. потом ты делаешь трим - удаление пробельный символов. которых как ты понимаешь там нет. а потом ты сравниваешь строку длиной 32 символа с разрешенными "от 3 до 30" и получаешь отрицательный ответ по правой границе.
    ну и вот эта каша из выводов echo и-далее-хтмл-код - можно заменить просто на выход из режима пхп и работой с хтмл исходником.
     
  18. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    кстати,надо попробовать...спасибо!
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты делаешь не то, что ты думаешь. И когда оно заработает, ты почти всегда будешь получать вроде даже результат. Но это неправильно так делать. Проще всем один пароль раздать и забить.
     
  20. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Я вас всех прекрасно понял и написал новую форму по этим же данным!Но проблема со старыми данными осталась(
    Весь код страницы,наверно не буду выводить,но места,где меня беспокоят в скрипте проверки вводных данных,покажу:
    Вот вывел переменные с поста:
    Код (PHP):
    1.  session_start();//  вся процедура работает на сессиях
    2.  if (isset($_POST['logusername'])) { $username = $_POST['logusername']; if ($username == '') { unset($username);} } 
    3.     if (isset($_POST['logpassword'])) { $password=$_POST['logpassword'];  if ($password =='') { unset($password);}}
    4.  
    5. if (empty($username) or empty($password)) 
    6.     {
    7.     echo '<fieldset class="errorp"> Введите правильные логин и пароль! </fieldset>';}
    А здесь я начинаю обрабатывать и сверять данные с БД (пароль в БД уже хеширован в md5):
    Код (PHP):
    1.   $username = stripslashes(htmlspecialchars(trim($username)));
    2. ///здесь вписал md5
    3.     $password = md5(stripslashes(htmlspecialchars(trim($password))));
    4.   
    5.     include("config.php");
    6.     $sql=mysql_query("SELECT * FROM `tb_users` WHERE `email`='$username' and `password`='$password'");
    7.             $row=mysql_fetch_array($sql);
    8.             if(empty($row["password"])){
    9.             echo '<fieldset class="errorp">Извините, введённый вами пароль неверный! </fieldset>'; }
    Извините, введённый вами пароль неверный!-эта ошибка и появляется,как только не менял значения!
    Но,ещё самое интересное здесь осталось со старого кода дальше по скрипту в создании самих сессий:
    Код (PHP):
    1.  if ($row["password"]==$password) {
    2.     //если пароли совпадают-запускаем юзеру сессию!
    3.  
    4.             $_SESSION["partnerid"] = $row["id"];
    5.             $_SESSION["userLog"] = $row["username"];
    6.             $_SESSION["userPas"] = md5($row["password"]);
    7.             $_SESSION["WMID"] = $row["wmid"];
    8.             $_SESSION["IP"] = $ip;
    9.             $_SESSION["members_url"] = getenv("HTTP_REFERER");
    Вот в этом моменте $_SESSION["userPas"] = md5($row["password"]); без md5 авторизация не проходит даж с открытыми паролями в БД
    Как быть? Уже не знаю куда что и вставить...Почему не хочет сверять хеши с БД или же что другое?
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    надо лучше отлаживать. каждое значение. ошибка на поверхности.

    совет: не надо уродовать логин-пароль функциями, назначения которых не понимаешь. для эскейпа строки перед подстановкой в текст запроса - есть специально созданная для этих целей функция mysqli_real_escape_string
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    [​IMG]
     
  23. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Хорошо)Попробую и отпишусь)
     
  24. Noll

    Noll Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    50
    Симпатии:
    0
    Проверил! Написал так:
    Код (PHP):
    1.  $username = mysql_real_escape_string($username);
    2. ///на переменную $pass не обращайте внимания-изменена с принятого поста!
    3.     $password = mysql_real_escape_string(md5($pass));
    4.     
    5.     $sql=mysql_query("SELECT * FROM `tb_users` WHERE `email`='".mysql_real_escape_string($username)."' and `password`='".mysql_real_escape_string($password)."'");
    6.             $row=mysql_fetch_array($sql);
    7.             if(empty($row["password"])){
    8.             //если пользователя с 'этим логином нет
    9.             include('header.php');
    10.             echo '<fieldset class="errorp">Извините, введённый вами пароль неверный! </fieldset>'; }
    Проверил подстановкой вместо select запросом в бд через update подстановкой тех же значений! в базу записались идентичные данные, как и к этому запросу select . Тоесть здесь всё ОК!)
    Но что то не так с этим if(empty($row["password"])){.
    Передает ошибку соответствующую ошибку,а когда меняю на if($row["password"]){,то возникает новая ошибка(к примеру,"ВСЕ ПЛОХО" в нижепоследующем значении :
    if ($row["password"]==$password) {
    ..."ВСЕ ОК"...}else{ ..."ВСЕ ПЛОХО"}

    Добавлено спустя 4 минуты 18 секунд:
    Извините,ошибок у меня в грамматике много)) на скорую руку печатал)
     
  25. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    зачем эскейпить результат выполнения функции md5 если возвращаемые ею символы по определению не могут содержать в себе уязвимостей? это 32 шестнадцатеричных символа. то есть нумералы и от эй до эф. всегда.