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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация на PHP+MySQL? Авторизация на PHP+MySQL? 
:(
    Опции темы
phpDeniM
  Дата 2.4.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте! Я пишу админку, и столкнулся с такой проблемой как авторизация php+MySQL!!!
вот код (с использованием фреймворка codeigniter) - этот код авторизирует только последнего добавленого в БД пользователя!!!!:: как сделать чтобы аторизироваться могли все те которые занесенные в БД пользователи???
ну например в есть БД пользователи
user password
pupkin 3232304215
petrov 123456
ivanov 123456
и нужно чтобы чтобы не последний мог зайти в админку а все те кто занесен в БД::::****
Код

function registerAdmin(){
          
    $query = $this->db->get("users");
    
           if ($query->num_rows() > 0) {      
        foreach ($query->result() as $row)
        {
            $a['user'] = $row->user;
            $a['password'] = $row->password;
            
        }            
           }
        
        
     if($_POST['username']== $a['user'] && $_POST['password']==$a['password']){
        $newdata = array('admin_logged_in' => TRUE);
        $this->session->set_userdata($newdata);
        redirect('administrator/instruction');
        }else{
            redirect('administrator/logout');
        }
    }

PM MAIL   Вверх
bars80080
Дата 2.4.2008, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



ну ты шутки травишь

у тебя же вначале стоит цикл в котором двум переменным постоянно присваиваются значения логина и паролей,
а затем сравниваешь эти значения (естесно последние) с пришедшими из формы

сделай как все: запрос, который уже выбирает нужную строку из БД
Код

$sql = 'select * from users where user="'.$_POST['username'].'" and password="'.$_POST['password'].'"';

я надеюсь ясно что проверки надо по любому делать на входящие переменные, а пример чисто показательный
PM MAIL WWW   Вверх
Date
Дата 2.4.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.3.2006
Где: Алматы

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



у меня работает так:

Код

if(!empty( $_POST['username'] ) || !empty( $_POST['userpass'] ) || !empty($_POST['B1'])){
$username = htmlspecialchars($_POST['username']);
$p = md5($_POST['userpass']);
$result = mysql_query("SELECT id, name, pass from authors where name='$username' and pass='$p'", $link);
if (mysql_num_rows($result)!=0){

$row=mysql_fetch_array($result);
$_SESSION['login']=$row['id'];
header("Location: main.php");

}
else {
print '<font color=#ff0000>Введен не верный пароль или имя пользователя</font>';
}
}

--------------------
Люди не будьте свиньями, Бросайте мусор в урны.
PM MAIL WWW   Вверх
Feldmarschall
Дата 2.4.2008, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



bars80080, ну вот что стоит в примере написать
Код

$username=mysql_real_escape_string($_POST['username']);
$password=mysql_real_escape_string($_POST['password']);
$sql = "select * from users where user='$username' and password='$password';


Писать про "проверки" - это значит не писать вообще ничего.
Не понимают люди, что это за проверки. Каждый лепит кто во что горазд - кто htmlspecialchars, кто PEAR какой-то приплетает, кто действительно проверять начинает, на наличие слов UNION.
пока большинство населения неграмотно в вопросах SQL синтаксиса - надо писать про проверки не теоретически, а практически.
Видно же, что человек свой первый в жизни код пишет. Откуда он знает про эти "ясные проверки"?


Да, есть вещи, в которых не нужно быть дотошным. Но здесь тот случай, когда писать правильный вариант, имхо, обязательно.
вот - над поим сообщением наглядная иллюстрация - почему.


Это сообщение отредактировал(а) Feldmarschall - 2.4.2008, 17:11
PM   Вверх
bars80080
Дата 2.4.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



так нету же одинакового решения, у меня где-то есть php ещё версии <= 4.2 там уже и не получается использовать эту функцию
PM MAIL WWW   Вверх
Feldmarschall
Дата 2.4.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Не надо ля-ля. Все там есть. Это во-первых.
Во-вторых, даже если вдруг где-то не будет - пойдет на форум, и спросит, чем заменить. Это ЛУЧШЕ, чес скопирует и будет юзать.
В-третьих, расскажи мне, где он может посмотреть подробную информацию о том, что где в каком случае применять? Ну вот ты считаешь, что решение неоднозначное, и поэтому его не пишешь. Зато перед этим говоришь, что "ясно что проверки надо по любому делать". То есть, что проверки надо делаьт - ясно, а какие - с твоих же слов - неясно. 
Ну и зачем вообще такие ответы давать? Которые только еще больше запутают?


PM   Вверх
phpDeniM
  Дата 2.4.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



не ругайтесь!!! Большущее спасибо Feldmarschall!!!!!!!!!!!1 smile 
PM MAIL   Вверх
bars80080
Дата 2.4.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



так я ж сам не знаю абсолютного решения

сколько сижу здесь, все предлагают то одно, то другое
а эта работает не везде http://php.ru/manual/function.mysql-real-escape-string.html
Цитата
mysql_real_escape_string
(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string --  Экранирует специальные символы в строках для использования в выражениях SQL 

а отвечал по поводу, что у него там запись одна получается

Добавлено через 34 секунды
где ругаются?  smile 
PM MAIL WWW   Вверх
Feldmarschall
Дата 2.4.2008, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



bars80080, предлагай хоть какое-нибудь на будущее.
PM   Вверх
gribikc
Дата 3.4.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<?
include("config.php");
include("up.php");
if($mode=="auth"){
    $mysql_query=mysql_query("SELECT * FROM client WHERE login=\"".$login."\" AND password=\"".$password."\"",$mysql_connect);
    $a=mysql_fetch_array($mysql_query);
        $_SESSION['id_cl']=$a['id_cl'];
        $_SESSION['fio']=$a['fio'];
        $_SESSION['error']="";
        if(!is_numeric($a['id_cl'])){
            echo("WRONG LOGIN/PASSWORD");
        }else{
            header("location:".$_SESSION['location']."");
            $_SESSION['location']="catalogue.php";
        }        
}
?>
<form action="login.php" method="post">
Login:<input type="text" name="login"><br>
Password:<input type="password" name="password"><br>
<input type="hidden" name="mode" value="auth">
<input type="submit"> <a href="reg.php" style="color:#000000">Регистрация...</a>
</form>
<? include("down.php"); ?>




M
MoLeX
А кнопка КОД, для красоты придумана!



Это сообщение отредактировал(а) MoLeX - 3.4.2008, 11:46


--------------------
---------------------------------------------
Заранее спасибо!!!
PM WWW ICQ   Вверх
Sannis
Дата 3.4.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



gribikc, прочитайте, что выше Feldmarschall писал smile 


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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