Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/98: Рейтинг темы: голосов - 98, средняя оценка - 4.95
push007
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 127
1

Как сделать при входе на сайт запрос логина и пароля?

12.05.2015, 09:21. Просмотров 18042. Ответов 17
Метки нет (Все метки)

Как сделать при входе на сайт запросил логин и пароль???
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2015, 09:21
Ответы с готовыми решениями:

Как сделать так, чтобы при входе на сайт сразу запросил логин и пароль?
Как сделать так, чтобы при входе на сайт запросил логин и пароль? Есть готовые материалы, я даже не...

Сделать изменение логина и пароля в файле
Здравствуйте! Есть файл index.php, в котором: <h2>Доступ в панель управления</h2> <form...

Забыть пароль удаленного доступа ,как заново сделать запрос логина и пароля?
В проводнике ввожу IP виртуалки, но она перемещена в другой домен и пишет что не найден комп. Как...

К программе нужно сделать запрос логина и пароля
К этой программе нужно сделать запрос логина и пароля.Помогите если не затруднит. <!DOCTYPE html>...

Как отключить запрос логина и пароля при подключении к базе через sql server native client 10.1?
вопрос в теме. через параметр loginprompt в adoconnection не получается отключиь

17
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 09:48 2
push007, конкретнее опишите вашу проблему, толи вам нужна форма авторизации, толи вам ее надо просто вывести при входе, толи еще что-то... Напишите хотя-бы что за сайт у вас, на CMS или самописный? Потому как в данный момент не совсем понятно чего вы хотите
1
push007
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 127
12.05.2015, 10:06  [ТС] 3
pacanchik2013, У меня сайт самописный, мне нужна форма авторизации, и при входе на сайт нужно открыть эту форму а не index.php . Логин и пароль для пользователя я сам буду дать из БД, они не будут зарегистрироваться. При правильном заполнение логина и пароля пользователь заходить на index.php..... Как это сделать????
0
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 10:45 4
Могу вечером скинуть код авторизации. работает с mysql
1
12.05.2015, 10:45
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 10:47 5
push007, держите.
Форма авторизации
Кликните здесь для просмотра всего текста
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();
 header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>форма входа</title>
</head>
<body>
  <form method="post" action="/login.php" class="login">
    <p>
      <label for="login">Логин:</label>
      <input type="text" name="login" id="login" value="name@example.com">
    </p>
    <p>
      <label for="password">Пароль:</label>
      <input type="password" name="password" id="password" value="">
    </p>
    <p class="login-submit">
      <button type="submit" class="login-button">Войти</button>
    </p>
    <p class="forgot-password"><a href="index.html">Забыл пароль?</a></p>
  </form>
</body>
</html>

Обработчик login.php
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
header('Content-Type: text/html; charset=utf-8');
setlocale(LC_ALL,'ru_RU.65001','rus_RUS.65001','Russian_Russia.65001','russian');
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("<body><div align='center'><br/><br/><br/><h3>Вы ввели не всю информацию, вернитесь назад и заполните все поля!" . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
    
     //Подключаемся к базе данных.
    $dbcon = mysql_connect("localhost", "имя администратора базы", "пароль администратора базы"); 
    mysql_select_db("имя базы данных", $dbcon);
    if (!$dbcon)
    {
    echo "<p>Произошла ошибка при подсоединении к MySQL!</p>".mysql_error(); exit();
    } else {
    if (!mysql_select_db("имя базы данных", $dbcon))
    {
    echo("<p>Выбранной базы данных не существует!</p>");
    }
    }
 //извлекаем из базы все данные о пользователе с введенным логином
$result = mysql_query("SELECT * FROM имя таблицы WHERE login='$login'", $dbcon);
    $myrow = mysql_fetch_array($result);
    if (empty($myrow["password"]))
    {
    //если пользователя с введенным логином не существует
    exit ("<body><div align='center'><br/><br/><br/>
    <h3>Извините, введённый вами login или пароль неверный." . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow["password"]==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['login']=$myrow["login"]; 
    $_SESSION['id']=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
   header("Location:index.php"); 
    }
 else {
    //если пароли не сошлись
 
    exit ("<body><div align='center'><br/><br/><br/>
    <h3>Извините, введённый вами login или пароль неверный." . "<a href='index.php'> <b>Назад</b> </a></h3></div></body>");
    }
    }
    ?>
1
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 10:48 6
push007, отправил в ЛС
1
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 10:50 7
BoyStyle, какой смысл отправлять в ЛС, может другие тоже столкнутся с данной проблемой. Зачем же создавать кучу одинаковых тем? Давайте тогда будем каждому в ЛС отправлять, а на остальных просто забьем... Ведь для этого и создан форум для новичков. Раз решили помочь, так дайте всем лицезреть, авось я или другие что-то для себя новое найдут в вашем коде.
1
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 10:54 8
pacanchik2013, я ему скинул ссылку на сайт где всё подробно написано. google никто не отменял)
1
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 10:59 9
BoyStyle, гугл и ссылка это тоже вариант, а вот извлечь информацию с другого ресурса и добавить на форум полезную запись - это другое дело)
0
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 11:06 10
Принцип работы скрипта изображен ниже.
1.gif

1. Начнем с создания таблички users в базе. Она будет содержать данные пользователя (логин и пароль). Зайдем в phpmyadmin (если вы создаете базу на своем ПК http://localhost/phpmyadmin/). Создаем таблицу users, в ней будет 3 поля.
444.gif
Далее устанавливаем значения, как на рисунке:
555.gif
Нажимаем "сохранить". Итак, таблица у нас есть.
2. Необходимо соединение с этой таблицей. Давайте создадим файл bd.php. Его содержание:
PHP
1
2
3
4
<?php
        $db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу");
        mysql_select_db ("имя базы, к которой подключаемся",$db);
        ?>
Теперь можно приступать к созданию странички, на которой пользователи будут оставлять свои данные.
3. Создаем файл reg.php с содержанием (все комментарии внутри):
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
<html>
    <head>
    <title>Регистрация</title>
    </head>
    <body>
    <h2>Регистрация</h2>
    <form action="save_user.php" method="post">
    <!--**** save_user.php - это адрес обработчика.  То есть, после нажатия на кнопку "Зарегистрироваться", данные из полей  отправятся на страничку save_user.php методом "post" ***** -->
<p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
    </p>
<!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** -->
<p>
    <label>Ваш пароль:<br></label>
    <input name="password" type="password" size="15" maxlength="15">
    </p>
<!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** --> 
<p>
    <input type="submit" name="submit" value="Зарегистрироваться">
<!--**** Кнопочка (type="submit") отправляет данные на страничку save_user.php ***** --> 
</p></form>
    </body>
    </html>
4. Создаем файл, который будет заносить данные в базу и сохранять пользователя. save_user.php(комментарии внутри):
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
28
29
30
31
32
33
34
35
<?php
    if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $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");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 // проверка на существование пользователя с таким же логином
    $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
    $myrow = mysql_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    }
 // если такого нет, то сохраняем данные
    $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    }
 else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
5. Теперь наши пользователи могут регистрироваться! Далее необходимо сделать "дверь" для входа на сайт уже зарегистрированным пользователям. index.php (комментарии внутри) :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
    //  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
    session_start();
    ?>
    <html>
    <head>
    <title>Главная страница</title>
    </head>
    <body>
    <h2>Главная страница</h2>
    <form action="testreg.php" method="post">
 
    <!--****  testreg.php - это адрес обработчика. То есть, после нажатия на кнопку  "Войти", данные из полей отправятся на страничку testreg.php методом  "post" ***** -->
 <p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
    </p>
 
 
    <!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** -->
 
    <p>
 
    <label>Ваш пароль:<br></label>
    <input name="password" type="password" size="15" maxlength="15">
    </p>
 
    <!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** --> 
 
    <p>
    <input type="submit" name="submit" value="Войти">
 
    <!--**** Кнопочка (type="submit") отправляет данные на страничку testreg.php ***** --> 
<br>
 <!--**** ссылка на регистрацию, ведь как-то же должны гости туда попадать ***** --> 
<a href="reg.php">Зарегистрироваться</a> 
    </p></form>
    <br>
    <?php
    // Проверяем, пусты ли переменные логина и id пользователя
    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>
В файле index.php мы выведем ссылочку, которая будет открыта только для зарегистрированных пользователей. В этом и заключается вся суть скрипта - ограничить доступ к каким-либо данным.

6. Остался файл с проверкой введенного логина и пароля. testreg.php (комментарии внутри):
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $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");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysql_fetch_array($result);
    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 или пароль неверный.");
    }
    }
    ?>
Собственно всё.
Информация взята с какого-то сайта в интернете. Автором не являюсь! (с)
1
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 11:16 11
BoyStyle, вы конечно молодец, но будьте немного внимательнее))
Цитата Сообщение от push007 Посмотреть сообщение
...У меня сайт самописный, мне нужна форма авторизации, и при входе на сайт нужно открыть эту форму а не index.php . Логин и пароль для пользователя я сам буду дать из БД, они не будут зарегистрироваться...
Ведь push007 же ясно выразился, что регистрироваться никто не будет... лишний ненужный код)
1
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 11:28 12
pacanchik2013, убрать регистрацию не трудно)) самому записать в бд логин и пароль и выдать их кому нужно)
0
push007
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 127
12.05.2015, 15:26  [ТС] 13
pacanchik2013, Вам спасибо! Ваш код мне вполне подойдет...
При правильном ввода логина и пароля переходить на эту http://localhost/www/new_mero.php страницу. Если пользователь через другую браузер зайдет на эту страницу то он не вводить логин и пароль. Как можно ограничить прямое попадание ???
0
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 276
12.05.2015, 15:49 14
push007, вы имеете ввиду, чтоб эта страница нигде не индексировалась? Если да, то добавьте в файл robots.txt
HTML5
1
Disallow: /new_mero.php
1
push007
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 127
12.05.2015, 16:10  [ТС] 15
pacanchik2013, Мне надо, если пользователь прямую попадает на эту http://localhost/www/new_mero.php ссылку, то спросил логин и пароль ...
0
BoyStyle
8 / 8 / 1
Регистрация: 24.02.2014
Сообщений: 317
Завершенные тесты: 1
12.05.2015, 16:47 16
push007, ну поставь сессию! если пользователь на авторизован, то перекидывать его на нужную страницу сайта
1
push007
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 127
12.05.2015, 16:50  [ТС] 17
BoyStyle, можете мне код???
0
Виталюска
490 / 475 / 232
Регистрация: 26.09.2010
Сообщений: 2,423
12.05.2015, 17:11 18
push007, создайте в корне сайта например файл session_chek.php
PHP
1
2
3
4
5
6
session_start();
if (!isset($_SESSION['prava']) || $_SESSION['prava']!= "тут значение которому разрешен доступ") // если сессия пустая или не равна нужному значению
    {
        Header("Location: страница_на_которую_перенаправить.php"); // переправляем на нужную страницу
        exit; 
    }
и в начале нужной странице подключаем этот файл
PHP
1
 require("session_check.php");
2
12.05.2015, 17:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2015, 17:11

Как сделать так, чтобы при открытии одной папки появлялось окно с запросом логина и пароля, а другой — нет?
Добрый день ! У меня такая проблема: есть КД Windows Server 2012 R2 Essential и расшаренная...

сделать авторизацию и при создании логина и пароля Delphi
помогите сделать авторизацию и при создании логина и пароля, и кнопку сменить пароль, и чтоб все...

Запрос пароля при входе на компьютеры раб.группы. Домен+рабочая группа
Здравствуйте. На предприятии используется рабочая группа. Собираюсь вводить рабочие станции в...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.