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

Поиск:

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


Бывалый
*


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

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



Подключение к БД.
Код

<?php
    //bd.php
    $db = mysql_connect("localhost", "root", "");
    mysql_select_db("usu",$db);
?>

Ввод логина/пароля.
Код

//index.php
<?php
    session_start();
?>
    <html>
    <head>
    <title>Главная страница</title>
    </head>
    <body>
    <h2>Главная страница</h2>
    <form action="testreg.php" method="post">
 <p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
    </p>
    <p>

    <label>Ваш пароль:<br></label>
    <input name="password" type="password" size="15" maxlength="15">
    </p> 
    <p>
    <input type="submit" name="submit" value="Войти">
<br>
    </p></form>
    <br>
<?php
    if (empty($_SESSION['login']) or empty($_SESSION['id'])) {
    echo "Вы вошли на сайт, как гость<br><a href='#'>Эта ссылка  доступна только зарегистрированным пользователям</a>";
    }
    else
    {
    echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a  href='http://tvpavlovsk.sk6.ru/'>Эта ссылка доступна только  зарегистрированным пользователям</a>";
    }
?>
    </body>
    </html>


Проверка.
Код

//testreg.php
<?php
    session_start();
if (isset($_POST['login'])) {
    $login = $_POST['login']; 
    if ($login == '') { 
        unset($login);
    } 

    if (isset($_POST['password'])) { 
        $password=$_POST['password']; 
        if ($password =='') { 
        unset($password);
        } 
     }
if (empty($login) or empty($password)) {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
     $password = stripslashes($password);
    $password = htmlspecialchars($password);
    $login = trim($login);
    $password = trim($password);
    include ("bd.php");
    $result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); 
    $myrow = mysql_fetch_array($result,MYSQL_BOTH);
    if (empty($myrow['password']))
    {
        exit ("Извините, введённый вами login или пароль неверный.");
    }
    else {
        if ($myrow['password']==$password) {
                $_SESSION['login']=$myrow['login']; 
                $_SESSION['id']=$myrow['id'];
                echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
             }
             else {
                exit ("Извините, введённый вами login или пароль неверный.");
             }
    }
?>

в таблице БД 3 поля и 2 пользователя.


    id    login    password 
     1    usu    usu
     2    admin    admin
ввожу логин/пароль, мне выдаёт
Цитата

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\testreg.php on line 26
Извините, введённый вами login или пароль неверный.


Не подскажете, в чём проблема?

PM MAIL   Вверх
CruorVult
Дата 27.7.2011, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db) or die(mysql_error());


что будет?
PM MAIL Skype   Вверх
dixoNICH
Дата 28.7.2011, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(CruorVult @ 27.7.2011,  09:58)
Код

$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db) or die(mysql_error());


что будет?

Извлекаем из базы все данные о пользователе с введенным логином.
PM MAIL   Вверх
CruorVult
Дата 28.7.2011, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я про
Цитата(dixoNICH @  28.7.2011,  13:30 Найти цитируемый пост)
or die(mysql_error())


Все чисто выполняется?

в переменную $result скорей всего записывается значение false, как результат неудачного запроса. Либо в самом запросе проблема либа в коннекте с БД.
PM MAIL Skype   Вверх
dixoNICH
Дата 28.7.2011, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



"Table 'usu.users' doesn't exist"

как-то странно, потому что таблица, вроде, есть.
PM MAIL   Вверх
CruorVult
Дата 28.7.2011, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может базы usu нету?

попробуйте 
Код

or die(mysql_error())

и для коннекта
PM MAIL Skype   Вверх
dixoNICH
Дата 28.7.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



с коннектом всё хорошо, ничего не выводит.
Код

 if(!$db) echo "Error";

и так ничего не вывело
PM MAIL   Вверх
CruorVult
Дата 28.7.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

 mysql_select_db("usu",$db);


тоже?

тут 2 варианта, либо не подключили БД либо нету таблицы в выбраной БД
PM MAIL Skype   Вверх
dixoNICH
Дата 28.7.2011, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

Таблица `kvm.math`.`kvm_table` была создана.
CREATE TABLE `kvm.math`.`kvm_table` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`login` VARCHAR( 15 ) NOT NULL ,
`password` VARCHAR( 15 ) NOT NULL ,
INDEX ( `password` ) ,
UNIQUE (
`login` 
)
) ENGINE = InnoDB;


Код

mysql_select_db("kvm.math",$db) or die(mysql_error());


Цитата

Table 'kvm.math.users' doesn't exist

PM MAIL   Вверх
CruorVult
Дата 28.7.2011, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(dixoNICH @  28.7.2011,  15:28 Найти цитируемый пост)
Таблица `kvm.math`.`kvm_table` была создана


Цитата(dixoNICH @  28.7.2011,  15:28 Найти цитируемый пост)
Table 'kvm.math.users' doesn't exist



так всё правильно
PM MAIL Skype   Вверх
dixoNICH
Дата 28.7.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


 




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


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

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