[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт авторизации
SkaTrancer
Вот сам скрипт, пароли в базе закодированы через эту фишку "base64_encode" и не как не пойму как сделать так чтобы он пасс введенный в поле сравнивал с зашифрованным пассом?
PHP
<?php
        
echo "<form action='auth.php' method='post'>
    <span style='margin-left:90px;'>Login :</span> <br /><span style='margin-left:90px;'><input type='text' name='name' value='"
.$_SESSION['name']."' /></span><br /><br />
    <span style='margin-left:90px;'>Pass :</span> <br /><span style='margin-left:90px;'><input type='password' name='password' value='"
.$_SESSION['password']."' /></span><br /><br />
    <span style='margin-left:90px;'><input type='submit' value='Войти' title='Войти' /></span>
    </form>"
;

    if(
$_POST['name'] && $_POST['password'])
    {
            
$result=mysql_query("SELECT login,password FROM accounts WHERE login='".@mysql_real_escape_string($_POST['name'])."' AND password='".base64_encode(pack('H*'sha1($_POST['password'])))."'",$link)
        or die (
"Error: ".mysql_error());
          
$result mysql_query($query);
          if(!
$result) exit("Ошибка");

        if(
mysql_num_rows($result))
        {
            
$_SESSION['fname'] = $name;
            
$_SESSION['password'] = $password;
             
setcookie('name_cook',$_SESSION['fname'],time()+ 86400 30 12);
              
setcookie('pass_cook',$_SESSION['password'],time()+ 86400 30 12);
            echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD><body>";
          } else {
            echo(
"<span style='margin-left:90px;'>Неверный пароль</span>");
            echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
        }
     }

    if(
$_GET['do'] == 'logout')
    {
        
setcookie('name_cook'"");
        
setcookie('pass_cook'"");
        
session_destroy();
        echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD></HTML>";
     }





Спустя 3 часа, 6 минут, 58 секунд (11.01.2009 - 03:13) kirik написал(а):
Если пасс, который хранится в базе зашифрован просто с помощью base64_encode();, то замени base64_encode(pack('H*', sha1($_POST['password']))) на base64_encode($_POST['password'])
А вообще для шифрования паролей лучше юзать md5(); хэширование.

Спустя 9 часов, 58 минут, 39 секунд (11.01.2009 - 13:12) SkaTrancer написал(а):
на счет base64 или md5 это не я придумал

Спустя 21 минута, 6 секунд (11.01.2009 - 13:33) SkaTrancer написал(а):
мммм вот сделал так
PHP
$result=mysql_query("SELECT login,password FROM accounts WHERE login='".mysql_real_escape_string($_POST['name'])."' AND password='".base64_encode($_POST['password'])."' ")

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

Спустя 18 минут, 15 секунд (11.01.2009 - 13:51) bret написал(а):
А что такое $query 7

Спустя 53 минуты, 12 секунд (11.01.2009 - 14:45) SkaTrancer написал(а):
ойй точно сорри вот
PHP
$query=mysql_query("SELECT login,password FROM accounts WHERE login='".mysql_real_escape_string($_POST['name'])."' AND password='".base64_encode($_POST['password'])."' ")
но даже так пишет ошибку

Спустя 1 час, 22 минуты, 59 секунд (11.01.2009 - 16:08) bret написал(а):
Т.е. с учетом исправлений должно быть
PHP
$query=mysql_query("SELECT login,password FROM accounts WHERE login='"
.@mysql_real_escape_string($_POST['name'])."' AND password='"
.base64_encode($_POST['password'])."'",$link) or die ("Error: ".mysql_error());
$result = mysql_query($query);

Тогда всё логично - $result есть результат запроса от результата запроса

Спустя 1 час, 41 минута, 32 секунды (11.01.2009 - 17:49) SkaTrancer написал(а):
ну все равно он почему то пароль когда сравнивает пишет что неправильный, походу не раскодирует его

Спустя 20 минут, 28 секунд (11.01.2009 - 18:10) sergeiss написал(а):
Цитата (bret @ 11.01.2009 - 16:08)
Т.е. с учетом исправлений должно быть
PHP
$query=mysql_query("SELECT login,password FROM accounts WHERE login='"
.@mysql_real_escape_string($_POST['name'])."' AND password='"
.base64_encode($_POST['password'])."'",$link) or die ("Error: ".mysql_error());
$result = mysql_query($query);

Тогда всё логично - $result есть результат запроса от результата запроса

Я вот это никак не пойму:
PHP
$query=mysql_query("SELECT....");
$result = mysql_query($query);

Вы о чем вообще говорите??? Вторая строка - лишняя полностью. Она просто обязана выдавать ошибку!!!!!

Спустя 1 час, 15 минут, 35 секунд (11.01.2009 - 19:25) SkaTrancer написал(а):
вот такой код
PHP
<?php
include('config.php');
include(
'header.php');
        echo 
"<form action='auth.php' method='post'>
    <span style='margin-left:90px;'>Login :</span> <br /><span style='margin-left:90px;'><input type='text' name='name' value='"
.$_POST['name']."' /></span><br /><br />
    <span style='margin-left:90px;'>Pass :</span> <br /><span style='margin-left:90px;'><input type='password' name='password' value='"
.$_POST['password']."' /></span><br /><br />
    <span style='margin-left:90px;'><input type='submit' value='Войти' title='Войти' /></span>
    </form>"
;

    if(
$_POST['name'] && $_POST['password'])
    {
$query=mysql_query("SELECT lastIP FROM accounts WHERE login='".mysql_real_escape_string($_POST['name'])."' AND password='".($_POST['password'])."'") or die ("Error: ".mysql_error());
if(
mysql_num_rows($query))
        {
          echo 
"Получилось!";
          } else {
            echo(
"<span style='margin-left:90px;'>Неверный пароль</span>");
            echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
        }
     }

    

он работает если я ввожу пароль уже зашифрованный, а если заменить
PHP
password='".($_POST['password
на
PHP
password='".base64_encode($_POST['password
,то пишет что пароль неверный

Спустя 8 минут, 22 секунды (11.01.2009 - 19:33) SkaTrancer написал(а):
блин мне этот скрипт только рабочий позарез нужен((( user posted image

Спустя 12 минут, 16 секунд (11.01.2009 - 19:46) Sylex написал(а):
SkaTrancer
в базе должен храниться пароль, обработанный base64_encode()

то есть зашифрованный!

соответственно, из POST когда ты опять шифруешь его - base64_encode($_POST['password']), то он совпадет с тем, что в базе данных

Спустя 3 часа, 36 минут, 30 секунд (11.01.2009 - 23:22) S{oRpiO написал(а):
Всем привет народ помогите написал авторизацию сделал все цевильно но возникла вот такая проблема стал использовать такую вот функциюи возникла проблемма

как мне вот в этом скипте проверки, добавить символы { } как допустимые при попытке прописать сервер считает их частью кода и выдаёт ошибку


if(isset($_POST['send'])){
if(!ereg("^[a-z0-9]+$", $login_reg)){
$error.="Ошибка: Вы ввели недопустимое имя!<br>";
}
if(!ereg("^[a-z0-9]+$", $passw1_reg)){
$error.="Ошибка: Вы ввели недопустимый пароль!<br>";
}
if($passw1_reg!==$passw2_reg){
$error.="Введите пароль правильно!";
}

Спустя 6 минут, 58 секунд (11.01.2009 - 23:29) SkaTrancer написал(а):
Sylex, я понимаю но не пашет же!

Спустя 53 секунды (11.01.2009 - 23:30) SkaTrancer написал(а):
PHP
if(isset($_POST['send']))
{
if(!
ereg("^[a-z0-9]+$"$login_reg))
{
$error.="Ошибка: Вы ввели недопустимое имя!<br>";

if(!
ereg("^[a-z0-9]+$"$passw1_reg))
{
$error.="Ошибка: Вы ввели недопустимый пароль!<br>";
}
if(
$passw1_reg!==$passw2_reg)
{
$error.="Введите пароль правильно!";
}
}

Спустя 6 минут, 32 секунды (11.01.2009 - 23:37) S{oRpiO написал(а):
SkaTrancer

Сделай проверку в самом низу кода напиши echo "$password";

и посмотри что он тебе напишит и ты покрайней мере узнаеш что делается с твоим запросом что приходит с базы и расшифровывается ли он

я когда работал с base_64 я просто пред проверкой переменной писал вот такой вот скрипт

PHP
<?
$pass=base64_decode($password);
print 
"$pass"

теперь у тебя происходит декодирование пременной password и ты получаеш расшифрованный пароль для проверки на правильность русшифрованный пароль будет как $pass

Спустя 8 часов, 3 минуты, 18 секунд (12.01.2009 - 07:40) Sylex написал(а):
да, больше экспериментов... это явно издержки невнимательности:)

Спустя 11 часов, 40 минут, 18 секунд (12.01.2009 - 19:20) nighting написал(а):
нуно подумать, синтаксис 100%

Спустя 2 часа, 41 минута, 51 секунда (12.01.2009 - 22:02) SkaTrancer написал(а):
сделал как посоветовали, результат: ЧЌ·ЧЌ·Неверный пароль , где ЧЌ·ЧЌ - закодированный пароль, хотя он в базе 81ZShxZZI4jTQmj4BWRWGb3NcY8=

Спустя 3 минуты, 9 секунд (12.01.2009 - 22:05) SkaTrancer написал(а):
я в панике!!!!!хелП!

Спустя 10 минут, 8 секунд (12.01.2009 - 22:15) SkaTrancer написал(а):
Ураааааааа!!!!!!!!!!!!!!!!!!!!!!!!!!Всем спс сам догнал посморел скрипт людей которые делали похожие скрипты и сделал по своему))))))))))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.