Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация php mysql
 
 автор: Vitalij   (02.08.2014 в 19:31)   письмо автору
 
 

Помогите скриптом авторизации!

1. заходя на сайт должна открываться страница авторизации.
2. никакие другие страницы сайта не должны быть видны без авторизации.
3. на каждой из страниц должна быть конопка "выход".

Помогите. Я начинающий, не обесудьте.

  Ответить  
 
 автор: berson   (02.08.2014 в 20:48)   письмо автору
 
   для: Vitalij   (02.08.2014 в 19:31)
 

Приветствую. Судя то твоей просьбе тебе надо сделать так:
Теория -
На главной странице сайта(а это как правило index.php/html) ты должен нарисовать форму для запроса логина и пароля средствами HTML и кнопку передачи введенных данных скрипту. Сам скрипт должен проверить наличие логина и пароля в базе данных и если такое имеется то перенаправить на сам сайт если же нет то вернуть юзера на index.php/html.
Показ содержимого сайта если набрать URL в браузере также можно проверять при помощи глобальной переменной со значение юзера и если нет данных о нем либо перенаправлять на авторизацию либо показывать только не заполненный каркас сайта, там как сочтеш нужным.
Ну а кнопка выход вставляется в шапку сайта и подключается отдельным файлом с помощью include к каждой страничке.
Практика -
Страница index.html
<FORM action="СКРИПТ ПРОВЕРКИ.php" method=post>
                    <DIV>
                        <LABEL for="login"> Ваш логин: &nbsp  </LABEL>
                        <input type="text" name="name" size="15" maxlength="25" value="">
                    </DIV>
            
                    <DIV>
                        <LABEL for="password"> Ваш пароль:</LABEL>
                        <input type="password" name="password" size="15" maxlength="25" >
                    </DIV>    
                    
                    <input type="Reset" name="Reset" value="Отчистить!" align="left">
                                    &nbsp &nbsp &nbsp &nbsp &nbsp
                    <input type="submit" name="Login" value="Войти." align="right">
</FORM>


СКРИПТ ПРОВЕРКИ
$viborka = mysql_query("SELECT * FROM ТАБЛИЦА WHERE login='".$_POST['name']."' AND password='".$_POST['password']."'");
    $info_user = mysql_fetch_array($viborka);
    if (mysql_num_rows($viborka)>0)
    {
        $_SESSION['user_name'] = $info_user['name'];
        $_SESSION['user_otc'] = $info_user['otcestvo'];
        echo "<HTML><HEAD>
                 <META HTTP-EQUIV='Refresh' CONTENT='0; URL=REALNII_SAIT.php'>
                 </HEAD><body>";
    }
    else
    {
        echo "<HTML><HEAD>
                 <META HTTP-EQUIV='Refresh' CONTENT='0; URL=../../index.php'>
                 </HEAD><body>";
    }


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

  Ответить  
 
 автор: moonfox   (03.08.2014 в 19:21)   письмо автору
 
   для: berson   (02.08.2014 в 20:48)
 

прикольно....
как написал бы конфёрм - не пишите такой хрени)

  Ответить  
 
 автор: Rolex   (04.08.2014 в 01:42)   письмо автору
 
   для: berson   (02.08.2014 в 20:48)
 

И sql-injection бонусом!!! Добавьте хотябы mysql_real_escape_string() для фильтра входящих параметров.

  Ответить  
 
 автор: Vitalij   (05.08.2014 в 21:27)   письмо автору
 
   для: berson   (02.08.2014 в 20:48)
 

Спасибо. Изучаю. Пока не до конца разобрался, но изучаю. Спасибо.

  Ответить  
 
 автор: moonfox   (05.08.2014 в 21:30)   письмо автору
 
   для: Vitalij   (05.08.2014 в 21:27)
 

советую ВООБЩЕ забыть про расширение mysql
если только изучаешь.

  Ответить  
 
 автор: Vitalij   (05.08.2014 в 22:56)   письмо автору
 
   для: moonfox   (05.08.2014 в 21:30)
 

Изучать mysqli?

  Ответить  
 
 автор: Valick   (05.08.2014 в 23:30)   письмо автору
 
   для: Vitalij   (05.08.2014 в 22:56)
 

Отвечу и вам и мунфоксу за одно
Допустим mysql - это жигули, а mysqli - это мерседес.
Естественно мерседес круче жигулей, но вам от этого ни горячо ни холодно, так как вы не сдали на права (не выучили язык запросов SQL) и даже не умеете водить машину.
Так что на чём учится вождению это без разницы.

  Ответить  
 
 автор: psychomc   (06.08.2014 в 10:06)   письмо автору
 
   для: Valick   (05.08.2014 в 23:30)
 

Глупости. Нельзя так советовать. Раз пошли такие сравнения, тогда mysql_ это самокат, а PDO это ламборджини. Проблема в том, что умение ездить на самокате никак не поможет при езде на ламбо.

  Ответить  
 
 автор: Valick   (06.08.2014 в 10:34)   письмо автору
 
   для: psychomc   (06.08.2014 в 10:06)
 

Не надо преувеличивать значимость PDO и преуменьшать значимость mysql_, это во-первых
А во вторых, без знания SQL вы не уедете даже на самокате, не говоря уже о ламборджини.
Если так не понятно, то организация архитектуры БД - это 30%, SQL - это 60% и на долю драйвера (будь-то mysql_, mysqli_ или PDO) остаётся 10% всей работы, на куда вы собрались без 30%+60% ? Какое в пень ламбо?
Так что прежде чем обвинять меня в глупостях, умейте уловить суть.
На этом форуме есть один человек с которым я бы побоялся соревноваться в знаниях SQL (а точнее MySQL диалекте SQL), и вы не тот человек ;)

  Ответить  
 
 автор: psychomc   (06.08.2014 в 11:30)   письмо автору
 
   для: Valick   (06.08.2014 в 10:34)
 

причем тут вообще SQL? вы лучше объяните, почему вы считаете, что нету разнцы что изучать?
может быть еще PHP3 изучить? зачем изучать уставрешее расширение, которое уже давным давно deprecated? значимости у него уже никакой нет. изучение его никоим образом не поможет, а скорее всего даже повредит, т.к в PDO совсем другой бинлинг параметров в запросы и результаты отдаются несколько по-другому.

Если так не понятно, то организация архитектуры БД - это 30%, SQL - это 60% и на долю драйвера (будь-то mysql_, mysqli_ или PDO) остаётся 10% всей работы, на куда вы собрались без 30%+60% ?

по своей сути то это правильно, вот только выбор драйвера может повлиять на 50% кода, который взаимодействует с этим драйвером

видел я уже таких, которые переучивались и после mysql_ продолжали подставлять параметры прямо в запрос. SQL же вообще стоит изучать без привязки к какой-либо СУБД и тем более без привязки к какому-либо расширению

  Ответить  
 
 автор: Valick   (06.08.2014 в 11:48)   письмо автору
 
   для: psychomc   (06.08.2014 в 11:30)
 

>SQL же вообще стоит изучать без привязки к какой-либо СУБД и тем более без привязки к какому-либо расширению
Вы предлогаете начинающему работать в консоли? Или вообще не привязываясь к конкретной СУРБД изучать SQL чисто теоретически, не попробовав глазами результат своего запроса?
Учить PDO и учить SQL одновременно это слишком тяжело для новичка.
Юзать процедуру при mysqli_ особого смысла нет.
Так что остаётся mysql самый простой драйвер, для того чтобы учиться составлять свои запросы и не отвлекаться ни на что другое.
Я уже сто раз писал, что mysqli_ был придуман хренову тучу лет назад, и только сейчас особенно одарённых клюнул петух в причинное место, да и то лишь потому что собрались убирать поддержку mysql_, но на своём домашнем сервере вам никто не запретит его использовать. Есть масса других поводов перейти на mysqli_ и deprecated самый последний из них.

>mysql_ это самокат
а почему не тыква? mysql_, mysqli_ и pdo предназначены для одного и того же, для работы с БД, так что будьте любезны подбирать соотвествующие понятия для аллегории.

  Ответить  
 
 автор: moonfox   (06.08.2014 в 12:08)   письмо автору
 
   для: Valick   (06.08.2014 в 11:48)
 

Так что остаётся mysql самый простой драйвер, для того чтобы учиться составлять свои запросы и не отвлекаться ни на что другое.

запросы тут причем? мы что разве говорим не об SQL?

сколько ни владей запросами, синтаксис вызова функций (и наличие объектного) в pdo и mysqli отлично от mysql тут такое дело что хоть 5 лет пиши с использованием mysql то это не значит, что ты возьмешь и сразу перепишешь все под pdo. придется снова смотреть синтаксис и особенности использования и переписывать свой код,.... так чего сразу бы не начать использовать pdo.

  Ответить  
 
 автор: psychomc   (06.08.2014 в 12:12)   письмо автору
 
   для: Valick   (06.08.2014 в 11:48)
 

>Так что остаётся mysql самый простой драйвер, для того чтобы учиться составлять свои запросы и не отвлекаться ни на что другое.

отвлекаться, как минимум, придется на экранирование параметров, подставляемых в запрос. так же придется отвлекаеться на magic_quotes, т.к mysql_ используется в основном в старых версиях php, в которых эта гадость присутствует и может быть по умолчанию включена. от уж новичек порадуется, когда у него будут кавычки экранироваться 2 раза и прилетать в базу данных со слешами...
для изучения SQL вообще намного удобнее использовать какой-нибудь sql manager/phpmyadmin/pgadmin и т.п
если вы не заметили, я нигде не писал про mysqli, я его никогда не использовал и не собираюсь

>а почему не тыква? mysql_, mysqli_ и pdo предназначены для одного и того же, для работы с БД, так что будьте любезны подбирать соотвествующие понятия для аллегории.

именно самокат, как раз из-за гнилых конструкций вроде этих:

<?php
$query 
"SELECT * FROM user WHERE username='" mysql_real_escape_string($username) . "'";

или

<?php
// ...
$result = array();
$rs mysql_query($query);
while (
$row mysql_fetch_assoc($rs)) {
    
$result[] = $row;
}
return 
$result;
// ...

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

  Ответить  
 
 автор: Vitalij   (06.08.2014 в 14:50)   письмо автору
 
   для: psychomc   (06.08.2014 в 12:12)
 

Я програмирование изучаю месяца 3... Всё что выше написано знающими людьми для меня пока что не постижимо... Руки опуускаютя. Понимаю , что всё это надо освоить. Спасибо.

  Ответить  
 
 автор: psychomc   (06.08.2014 в 15:09)   письмо автору
 
   для: Vitalij   (06.08.2014 в 14:50)
 

покупайте/качайте книгу по php, желательно не старше прошлого года. предварительно посмотрите на рейтинг на каком-нибудь ozon, чтобы хороший был. немного терпения и всё у вас получится

  Ответить  
 
 автор: Vitalij   (06.08.2014 в 15:23)   письмо автору
 
   для: psychomc   (06.08.2014 в 15:09)
 

Спасибо за поддержку!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования