Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема входа 
:(
    Опции темы
Spiker
Дата 3.3.2009, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Login
Код

<?php 
require_once '../library/config.php'; 
require_once './library/functions.php'; 

$errorMessage = '&nbsp;'; 

if (isset($_POST['txtUserName'])) { 
    $result = doLogin(); 
     
    if ($result != '') { 
        $errorMessage = $result; 
    } 


?> 
<html> 
<head> 
<title>Логин</title> 
<meta http-equiv="Content-Type" content="text/html"> 
<link href="include/admin.css" rel="stylesheet" type="text/css"> 
</head> 
<body> 
<table width="750" border="0" align="center" cellpadding="0" cellspacing="1" class="graybox"> 
<tr> 
  <td><img src="include/banner-top.gif" width="750" height="75"></td> 
</tr> 
<tr> 
  <td valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="20"> 
    <tr> 
     <td class="contentArea"> <form method="post" name="frmLogin" id="frmLogin"> 
       <p>&nbsp;</p> 
       <table width="350" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#336699" class="entryTable"> 
        <tr id="entryTableHeader"> 
         <td>:: Админ Логин ::</td> 
        </tr> 
        <tr> 
         <td class="contentArea"> 
         <div class="errorMessage" align="center"><?php echo $errorMessage; ?></div> 
          <table width="100%" border="0" cellpadding="2" cellspacing="1" class="text"> 
           <tr align="center"> 
            <td colspan="3">&nbsp;</td> 
           </tr> 
           <tr class="text"> 
            <td width="100" align="right">Логин</td> 
            <td width="10" align="center">:</td> 
            <td><input name="txtUserName" type="text" class="box" id="txtUserName" value="admin" size="10" maxlength="20"></td> 
           </tr> 
           <tr> 
            <td width="100" align="right">Пароль</td> 
            <td width="10" align="center">:</td> 
            <td><input name="txtPassword" type="password" class="box" id="txtPassword" value="admin" size="10"></td> 
           </tr> 
           <tr> 
            <td colspan="2">&nbsp;</td> 
            <td><input name="btnLogin" type="submit" class="box" id="btnLogin" value="Логин"></td> 
           </tr> 
          </table></td> 
        </tr> 
       </table> 
       <p>&nbsp;</p> 
      </form></td> 
    </tr> 
   </table></td> 
</tr> 
</table> 
<p>&nbsp;</p> 
</body> 
</html> 


Function проверки логина
Код

function doLogin()
{
    
    $errorMessage = '';
    
    $userName = $_POST['txtUserName'];
    $password = $_POST['txtPassword'];
    

    if ($userName == '') {
        $errorMessage = 'You must enter your username';
    } else if ($password == '') {
        $errorMessage = 'You must enter the password';
    } else {

        $sql = "SELECT user_id
                FROM tbl_user 
                WHERE user_name = '$userName' AND user_password = PASSWORD('$password')";
        $result = dbQuery($sql);
    
        if (dbNumRows($result) == 1) {
            $row = dbFetchAssoc($result);
            $_SESSION['site_user_id'] = $row['user_id'];
            

            $sql = "UPDATE tbl_user 
                    SET user_last_login = NOW() 
                    WHERE user_id = '{$row['user_id']}'";
            dbQuery($sql);


            if (isset($_SESSION['login_return_url'])) {
                header('Location: ' . $_SESSION['login_return_url']);
                exit;
            } else {
                header('Location: index.php');
                exit;
            }
        } else {
            $errorMessage = 'Wrong username or password';
        }        
            
    }
    
    return $errorMessage;
}


На хостинге 000webhost.com постоянно выбивает что я ввел не правелный пароль, когда на локалке все ОК.

Это сообщение отредактировал(а) Spiker - 3.3.2009, 03:18


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Sentox
Дата 3.3.2009, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Странно .. у Вас пароль остаётся в открытом виде.
Вы когда регистрируетесь в базе данных пароль шифруете.Если да то здесь при авторизации нет.
Ой , извините не доглядел. smile 

Это сообщение отредактировал(а) Sentox - 3.3.2009, 03:28
PM MAIL   Вверх
NewDima
Дата 3.3.2009, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



немного не в тему,
Код

$sql = "SELECT user_id
                FROM tbl_user 
                WHERE user_name = '$userName' AND user_password = PASSWORD('$password')";

Опасный код
PM ICQ   Вверх
NewDima
Дата 3.3.2009, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Кстати, а где проверка успешности первого запроса? Скорее всего у тебя проблемы с доступом к базе
PM ICQ   Вверх
Spiker
Дата 3.3.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Цитата(NewDima @ 3.3.2009,  06:38)
Кстати, а где проверка успешности первого запроса? Скорее всего у тебя проблемы с доступом к базе

если я правильно понял, то функция есть и находиться в index файле

Код

function checkUser()
{
    if (!isset($_SESSION['site_user_id'])) {
        header('Location: ' . WEB_ROOT . 'admin/login.php');
        exit;
    }
    
    if (isset($_GET['logout'])) {
        doLogout();
    }
}


Это что-то с самим хостингом, они опасно на-писаные скрипты блокируют. Сайт весь на базе данных, если бы что-то было с базой весь сайт не работал бы.

Это сообщение отредактировал(а) Spiker - 3.3.2009, 11:30


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Spiker
Дата 3.3.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Я не удивлюсь если они tbl_users  заблокировали.
Они мои admin папку тоже заблокировали, сам доступ к ней. После смены имени на папке, папка сама открыла доступ. Я подумал если способ дать больше доступа используя .HTACCESS 

Это сообщение отредактировал(а) Spiker - 3.3.2009, 11:57


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
NewDima
Дата 3.3.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Цитата(Spiker @ 3.3.2009,  18:25)
если я правильно понял

Нет, неправильно. Функция делает запрос, но ее результат не проверяется. А что если запрос провалился? тогда и последующая функция возврата количества выдаст не тот результат, который ты ожидал. Возможно проблема доступа к базе данных именно у тебя
PM ICQ   Вверх
XupyprMV
Дата 3.3.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 16.10.2006
Где: Сыктывкар, Россия

Репутация: нет
Всего: нет



Цитата(Spiker @ 3.3.2009,  02:50)
Код

        $sql = "SELECT user_id
                FROM tbl_user 
                WHERE user_name = '$userName' AND user_password = PASSWORD('$password')";
        $result = dbQuery($sql);
    
        if (dbNumRows($result) == 1) {

            ...

        } else {
            $errorMessage = 'Wrong username or password';
        }        


Запустить запрос через phpMyAdmin и удостоверится что возвращается именно одна запись, а не 0 или скажем две.
PM MAIL WWW ICQ   Вверх
Spiker
Дата 4.3.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Цитата(XupyprMV @ 3.3.2009,  14:44)
Цитата(Spiker @ 3.3.2009,  02:50)
Код

        $sql = "SELECT user_id
                FROM tbl_user 
                WHERE user_name = '$userName' AND user_password = PASSWORD('$password')";
        $result = dbQuery($sql);
    
        if (dbNumRows($result) == 1) {

            ...

        } else {
            $errorMessage = 'Wrong username or password';
        }        


Запустить запрос через phpMyAdmin и удостоверится что возвращается именно одна запись, а не 0 или скажем две.

получил 0  записей, на локалке 1  запись.

Это сообщение отредактировал(а) Spiker - 4.3.2009, 00:11


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
XupyprMV
Дата 4.3.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 16.10.2006
Где: Сыктывкар, Россия

Репутация: нет
Всего: нет



Эм...

Надевая на себя шапку "капитан очевидность" могу отметить что:

Раз вернулось 0 записей при запуске SQL запроса напрямую к таблице, то:

1) В таблице действительно нет удовлетворяющих этому запросу записей. Соответственно нужно их создать.

2) Если вы скопировали таблицы с локальный машины на удалённую вместе с контентом то могла возникнуть проблема с функцией PASSWORD (возможно СУБД разных версий и алгоритм генерации был изменён). Тогда просто обновляем запись генерируя PASSWORD на удалённой машине.

Это сообщение отредактировал(а) XupyprMV - 4.3.2009, 10:42
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.