С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208

Создание авторизации на сайте

15.12.2013, 02:50. Показов 3769. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Создал на сайте регистрацию через mysql и восстановление пароля. Прошу помочь. Нужен рабочий php код для входа на сайт и переадресация на закрытую, доступную только для зарегистрированных пользователей, а именно личный кабинет. ЛК я сам могу написать. Прошу помочь!
В HTML разбираюсь идеально, а в php всего месяц!

Добавлено через 2 часа 16 минут
Думаю что то вроде этого
Но когда нажимаю "Войти" просто переадресовывает на login.php и пустая страница
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if(isset($_POST[`enter`])){
$pass_l = $_POST[`pass_l`];
include`db.php`;
$query = mysql_query("SELECT users FROM pass WHERE pass = `$pass_l`");
$users = mysql_fetch_array($query);
 
if($users[`pass`] == $pass_l){
echo`Вы успешно вошли!`;
}
else {
echo`Пароль неверный!`;
}
}
 
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2013, 02:50
Ответы с готовыми решениями:

Реализация авторизации на сайте
Здравствуйте. Принялся изучать php. Скачал html-админку, создал базу данных, заполнил её полями &quot;ид юзера, логин, пароль, почта,...

Реализация авторизации на сайте
Здравствуйте, у меня такая проблема, мне нужно было сделать регистрацию и авторизацию с bd. Регистрация получается, а авторизация...

Скрипт Авторизации на сайте, как вывести фамилию
Привет! Возможно кто то поможет, есть скрипт авторизации на сайте, я его подшаманил что бы работал с кириллицей Регистрация и...

26
3 / 3 / 2
Регистрация: 27.06.2013
Сообщений: 139
15.12.2013, 06:42
Вот вход...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="/" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="password" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
if(isset($_POST['ok'])){
$login=$_POST['login'];
$password=md5($_POST['password']);
$query = mysql_query("SELECT * FROM accounts WHERE login = '$login'");
$user_data = mysql_fetch_array($query);
if ($user_data['password'] == $password) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('http://sait.ru/a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
Смотри, в авторизации идет такая вещь: при нажатии на "войти" ты создаешь переменную $_SESSION['nick'], которой присваивается значение твоего логина, а затем перенаправляешь пользователя в закрытую часть твоего сайта через JS команду...А на странице a.php у тебя идет код
PHP
1
if(!isset($_SESSION['nick'])){ echo "Вы не вошли"; }else{ echo '<b>тут твоя страница=)</b>'; }
Вроде так...если что-то не понятно могу объяснить на примере...главное свяжись со мной=)
1
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
15.12.2013, 19:11  [ТС]
Цитата Сообщение от n1ghtman Посмотреть сообщение
Вот вход...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="/" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="password" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
if(isset($_POST['ok'])){
$login=$_POST['login'];
$password=md5($_POST['password']);
$query = mysql_query("SELECT * FROM accounts WHERE login = '$login'");
$user_data = mysql_fetch_array($query);
if ($user_data['password'] == $password) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('http://sait.ru/a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
Смотри, в авторизации идет такая вещь: при нажатии на "войти" ты создаешь переменную $_SESSION['nick'], которой присваивается значение твоего логина, а затем перенаправляешь пользователя в закрытую часть твоего сайта через JS команду...А на странице a.php у тебя идет код
PHP
1
if(!isset($_SESSION['nick'])){ echo "Вы не вошли"; }else{ echo '<b>тут твоя страница=)</b>'; }
Вроде так...если что-то не понятно могу объяснить на примере...главное свяжись со мной=)
Дело в том что у меня в БД сразу я вписывал столбцы
id, login, и пароль не passsword, а просто pass и еще email
И теперь думаю как эти скрипты переделывать.
Вот что то вроде этого придумал. Но мне пишет ошибки
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="index.php" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="pass" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
if(isset($_POST['ok'])){
$login=$_POST['login'];
$pass=($_POST['pass']);
$query = mysql_query("SELECT * FROM users WHERE login = '$login'");
$user_data = mysql_fetch_array($query);
if ($user_data['pass'] == $pass) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('/a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
?>
Пишет
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\index.php on line 14

Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in Z:\home\localhost\www\index.php on line 20
Я понимаю что ошибки на 14 и 20 строке, но как их исправить понять не могу!

Добавлено через 3 часа 27 минут
Ну так что?! Кто нить поможет)?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.12.2013, 19:42
прежде чем удалять сессию, ее надо сначала запустить. session_start() пропишите

Добавлено через 32 секунды
по поводу первой ошибки - проэкранируйте переменные

Добавлено через 16 секунд
Работа с БД MySQL
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
15.12.2013, 20:28  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
прежде чем удалять сессию, ее надо сначала запустить. session_start() пропишите
Насколько понял то вот так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="index.php" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="pass" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
mysql_connect(`localhost`,`root`,``);
mysql_select_db(`register`);
if(isset($_POST['ok'])){
$login=$_POST['login'];
$pass=($_POST['pass']);
$query = mysql_query("SELECT * FROM `users` WHERE LIMIT 1 login = '$login'");
session_start();
$users = mysql_fetch_array($query);
if ($users['pass'] == $pass) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
?>
Сейчас пишет уже другое, а именно
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\localhost\www\index.php:8) in Z:\home\localhost\www\index.php on line 16

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\index.php:8) in Z:\home\localhost\www\index.php on line 16

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\index.php on line 17
Но, слово cookie мне уже сказало что это все связано с куки, а именно то что мне и надо было. Подскажите что делать
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.12.2013, 21:34
Цитата Сообщение от michaelukolov Посмотреть сообщение
Но, слово cookie мне уже сказало что это все связано с куки, а именно то что мне и надо было
А перевести ошибку полностью нельзя? Перевод даст еще больше информации. Что означает предупреждение "headers already sent"
Цитата Сообщение от michaelukolov Посмотреть сообщение
PHP
1
mysql_connect(`localhost`,
неверные апострофы.
PHP
1
mysql_connect('localhost',
аналогично в других местах
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
15.12.2013, 21:57  [ТС]
Вот переделал
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="index.php" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="pass" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
mysql_connect('localhost','root','');
mysql_select_db('register');
if(isset($_POST['ok'])){
$login=$_POST['login'];
$pass=($_POST['pass']);
$query = mysql_query("SELECT * FROM 'users' WHERE LIMIT 1 login = '$login'");
session_start();
$users = mysql_fetch_array($query);
if ($users['pass'] == $pass) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
?>
Все же, пишет
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\localhost\www\index.php:8) in Z:\home\localhost\www\index.php on line 16

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\index.php:8) in Z:\home\localhost\www\index.php on line 16

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\index.php on line 17
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.12.2013, 22:02
Здесь, как раз, косые нужны
Цитата Сообщение от michaelukolov Посмотреть сообщение
SQL
1
SELECT * FROM 'users'
з.ы. Только здесь

Добавлено через 3 минуты
ну и, помимо этого:
1. Прочитайте тему по второй ссылке (про заголовки), там написана причина
2. Посмотрите на свой код: у вас сначала выполняется проверка, существует ли значение в сессии, а лишь потом выполняется запуск сессии. Следовательно, это условие всегда будет выполняться, следовательно, у вас всегда будет выводиться код до отправка заголовков функции session_start
3. Запрос неверный, лимит указывается в конце запроса, а не где-то посередине. Почитайте тему по первой ссылке (про БД)

Если у вас нет желания потратить несколько минут на ознакомление с основами, то, извините, у меня тоже нет желания повторяться..
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
15.12.2013, 22:04  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Здесь, как раз, косые нужны

з.ы. Только здесь
Сделал! Вот что теперь
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
16.12.2013, 17:23  [ТС]
Так что делать?

Добавлено через 18 часов 30 минут
Неужели никто не знает?!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
16.12.2013, 17:30
Цитата Сообщение от michaelukolov Посмотреть сообщение
Неужели никто не знает?!
вам уже выше все сказали.
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
16.12.2013, 18:00  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
вам уже выше все сказали.
Я новичок в php, вам что сложно скинуть готовую форму?!!
0
16.12.2013, 18:51

Не по теме:

Цитата Сообщение от michaelukolov Посмотреть сообщение
вам что сложно скинуть готовую форму?
да. нет желания делать чужую работу, когда для того, чтобы решить проблему, достаточно потратить 10-15 минут на чтение и 5 минут подумать.
Может, найдется желающий, который и сделает за вас и выложит решение..

0
3 / 3 / 2
Регистрация: 27.06.2013
Сообщений: 139
17.12.2013, 16:29
Цитата Сообщение от michaelukolov Посмотреть сообщение
Так что делать?
skype : {ссылка удалена}
Думаю там я смогу объяснить быстрее...
 Комментарий модератора 
Общение ведется на форуме.
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
18.12.2013, 00:16  [ТС]
Подскажите! Пишет Query was empty
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
if(!isset($_SESSION['nick'])){echo '
<form method="post" action="index.php" style="margin-top: -15px;">
<p><span class="pl">Ваш логин:</span> <input style="float: left;" type="text" name="login" placeholder="Логин" required></p>
<p><span class="pl">Ваш пароль:</span> <input style="float: left;" type="password" name="pass" placeholder="Пароль" required></p>
<p><input style="width: 145px;" type="submit" name="ok" value="Войти"></p>
</form>
';
}
mysql_connect('localhost','root','');
mysql_select_db('register');
if(isset($_POST['ok'])){
$login=$_POST['login'];
$pass=($_POST['pass']);
$query = mysql_query("SELECT * FROM `users` WHERE login LIMIT 1 = '$login'");
$result = mysql_query($query) || die(mysql_error());
$users = mysql_fetch_assoc($query);
if ($users['pass'] == $pass) {
            $_SESSION['nick'] = "$login";
            echo "<script language='JavaScript' type='text/javascript'>window.location.replace('a.php');return false;</script>";
        }else{
            unset($_SESSION['nick']);
            session_destroy();
        }
}
?>
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
19.12.2013, 20:15  [ТС]
Кто подскажет!))
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
22.12.2013, 23:46  [ТС]
Помогите!!!
0
 Аватар для rockpro
67 / 67 / 11
Регистрация: 20.11.2013
Сообщений: 282
23.12.2013, 22:06
Цитата Сообщение от michaelukolov Посмотреть сообщение
SELECT * FROM `users` WHERE login LIMIT 1 = '$login'
Сами себе объясните, как из БД должны выбираться данные по этому запросу.

Цитата Сообщение от michaelukolov Посмотреть сообщение
Query was empty
Пустой запрос.
Чему равна переменная $query? И чему равна переменная $result?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
23.12.2013, 22:25
17 строчка лишняя
0
39 / 39 / 22
Регистрация: 15.12.2013
Сообщений: 208
23.12.2013, 22:35  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
17 строчка лишняя
Пишет
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in X:\home\phptest\www\index.php on line 17
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2013, 22:35
Помогаю со студенческими работами здесь

Созданием авторизации на сайте
Не пойму ошибку: Warning: session_start() : Cannot send session cache limiter - headers already sent (output started at...

Рейтинг на сайте без авторизации...
есть сайт где нужно прикрутить рейтинг, то етсь голосование за тот или иной объект. Как сделать что бы пользователь мог проголосовать за...

Скрипт для авторизации на сайте администратора
Народ есть у кого рабочий скрипт для авторизации на сайте администратора. У меня скрипт написан но при вводе в форму не работает, ошибки ни...

Создание PHP авторизации на своем сайте
Подскажите по сабжу.... или где копать Заранее спасибо..

Ошибка авторизации на сайте
Пишу авторизацию на сайте vkpiarka.. код zzauth :=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru