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

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

15.12.2013, 02:50. Показов 3809. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru