Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
1

Авторизация на сайте

15.05.2015, 19:09. Показов 1342. Ответов 20
Метки нет (Все метки)

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

Форма входа и коннект к бд:

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 
session_start();
include "bd/base1.php";
 
if (isset($_POST['login'])) {
    $username = mysql_real_escape_string($_POST['username']);  
    $password = md5(mysql_real_escape_string($_POST['password']));  
 
    $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");  
 
    if(mysql_num_rows($checklogin) == 1)  
    {  
        $row = mysql_fetch_array($checklogin);  
        $email = $row['EmailAddress'];  
 
        $_SESSION['Username'] = $username;  
        $_SESSION['EmailAddress'] = $email;  
        $_SESSION['LoggedIn'] = 1;  
    }  
    else  
    {   
        echo "<p><center>Мы не нашли такого аккаунта.</center></p>";  
    }
    
}
?>
            
                    <?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;home.php'>"; } else { ?>
                        
                            <center>
    <form method="post" action="index.php" name="loginform" id="loginform">  
        <label for="username">Логин:</label><input type="text" name="username" id="username"><br><br>
        <label for="password">Пароль:</label><input type="password" name="password" id="password"><br><br> 
        <input type="submit" name="login" id="login" value="Войти">  
    </form>
Проверка на авторизацию на другой странице:
PHP
1
2
3
4
<?php 
 
 session_start();
if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { ?>
в БД таблица users состоит из полей: UserID, Username, Password, EmailAddress
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2015, 19:09
Ответы с готовыми решениями:

авторизация на сайте
Господа, приветствую! есть вопрос - на сайте есть форма авторизации. Вот кусок исходного кода ...

Авторизация на сайте
Всем привет. помогите кто чем может Делаю на сайте авторизацию все вроде нормально авторизуется...

Авторизация на сайте
У меня есть сайт с админ панелькой, мне надо сделать так , что бы на страницу...

Авторизация на сайте
Как правильно организовать авторизацию на сайте? 1) Пользователь вводит логин и пароль. 2) Из БД...

20
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
15.05.2015, 21:45 2
Цитата Сообщение от BoyStyle Посмотреть сообщение
<?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;home.php'>"; } else { ?>
ну можно например как-то так делать:
PHP
1
<?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;$username_page.php'>"; } else { ?>
То есть если я vasia , то попаду на страницу vasia_page.php если mikola , на страницу mikola_page.php Но только мемного глупо так делать. Просто как мне кажется, вам нудно чтобы для каждого пользователя выводилсь своя информация по профилю

Добавлено через 2 минуты
Еще как вариант использовать .htaccess например так:
Код
RewriteEngine On
addDefaultCharset utf-8
RewriteRule ^user/(.+)$ /profile.php?username=$1 [L]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME} !-d
И редирект сделать соответствующий. Где сама страница profile.php выводит информацию о конкретном пользователе
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
15.05.2015, 21:53  [ТС] 3
paskalnikita, нет мне просто надо сделать, чтобы пользователи попадали на разные страницы, никакой информации о них выводить не нужно. Оба варианта рабочие я правильно понимаю ?
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
15.05.2015, 21:57 4
да рабочие. Только лучше использовать header вместо meta
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
15.05.2015, 21:59  [ТС] 5
paskalnikita, первый вариант: просто перекидывает на страницу /.php
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
15.05.2015, 22:03 6
выведите тогда вмето редиректа просто $username; посмотрите, то ли выводит
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
15.05.2015, 22:16  [ТС] 7
paskalnikita, работает!) благодарю) только переход получается таким /username а как сделать /username.php ? или использовать .htaccess чтобы избавиться от .php и не париться ?)

Добавлено через 7 минут
paskalnikita, ещё проблема когда я авторизовался и возвращаюсь на index.php он мне постоянно его обновляет, но никуда не перенаправляет...
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 09:15 8
Цитата Сообщение от BoyStyle Посмотреть сообщение
paskalnikita, работает!) благодарю) только переход получается таким /username а как сделать /username.php ? или использовать .htaccess чтобы избавиться от .php и не париться ?)
Код
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
Цитата Сообщение от BoyStyle Посмотреть сообщение
ещё проблема когда я авторизовался и возвращаюсь на index.php он мне постоянно его обновляет, но никуда не перенаправляет...
что мешает сделать редирект на индексе?
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 09:20  [ТС] 9
paskalnikita, вот мой файл .htaccess

Код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
Что тут поменять конкретно нужно ?
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 09:23 10
Код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ $1.php [L,QSA]
1
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 10:50  [ТС] 11
paskalnikita, всё равно после авторизации, если возвращаюсь на главную страницу у меня она обновляется постоянно
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 19:13 12
Цитата Сообщение от BoyStyle Посмотреть сообщение
всё равно после авторизации, если возвращаюсь на главную страницу у меня она обновляется постоянно
Цитата Сообщение от BoyStyle Посмотреть сообщение
<?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;home.php'>"; } else { ?>
Вам не кажется, что после авторизации я всегда буду перенаправляться? Вы всегда будете перенаправлены с meta тэгом. Я же писал Вам, как можно сделать редирект на нудную страницу. Объясните подробнее, что вы хотите получить
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 19:43  [ТС] 13
paskalnikita, объясняю подробно:
1. При авторизации на странице index.php пользователь USER1 попадает на страницу USER1.php, а при авторизации пользователя USER2 попадает на страницу USER2.php (этого мы добились... работает)
2. Когда пользователь user1 уже авторизован, и возвращается на страницу index.php его должно перекидывать на страницу user1.php, а у меня просто index.php обновляется постоянно и всё.

Пример: Это как вконтакте когда авторизовался на странице vk.com при повторном заходе на неё тебя стразу перекидывается на vk.com/user1
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 20:13 14
Покажите, как выглядит страница index.php
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 20:20  [ТС] 15
paskalnikita,
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <title>vRас}{оде</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body><br>
        <div id="wrapper">
            <div id="header">
                <div id="logo">
    <img img class="center" src="/logo.png" width="500" height="80" alt="" />
                </div>
                 <?php 
session_start();
include "bd/base1.php";
 
if (isset($_POST['login'])) {
    $username = mysql_real_escape_string($_POST['username']);  
    $password = md5(mysql_real_escape_string($_POST['password']));  
 
    $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");  
 
    if(mysql_num_rows($checklogin) == 1)  
    {  
        $row = mysql_fetch_array($checklogin);  
        $email = $row['EmailAddress'];  
 
        $_SESSION['Username'] = $username;  
        $_SESSION['EmailAddress'] = $email;  
        $_SESSION['LoggedIn'] = 1;  
    }  
    else  
    {   
        echo "<br><br><br><br><br><br><br><br><br><br><br><p><center>Мы не нашли такого аккаунта.</center></p>";  
    }
    
}
?>
            </div>
            <div id="page">
            
                <div id="sidebar"><br>
                    <div class="box">
                    <?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;$username'>"; } else { ?>
 
                        <h3>Авторизация</h3>
                        
                            <center>
    <form method="post" action="index.php" name="loginform" id="loginform">  
        <label for="username">Логин:</label><input type="text" name="username" id="username"><br><br>
        <label for="password">Пароль:</label><input type="password" name="password" id="password"><br><br> 
        <input type="submit" name="login" id="login" value="Войти">  
    </form>
 <style type="text/css">
label[for='username'], label[for='password'] {
    display: inline-block;
    width: 50px;
}
</style>
</center>   
                    </div>
                    
                </div>
                <div id="content">
                    <div class="box">
                        Добро пожаловать на сайт 
                        
                    </div>
                    
                </div>
                <br class="clearfix" />
            </div>
            <div id="page-bottom">
                <div id="page-bottom-sidebar">
                    <h3>Ссылки</h3>
                    <ul class="list">
                        <li class="first"><a href="http://">ссылка1</a></li>
                        <li><a href="http://">ссылка2</a></li>
                        <li class="last"><a href="#">ссылка3</a></li>
                    </ul>
                </div>
                <div id="page-bottom-content">
                    <h3>Тут какой-то текст2</h3>
                    <p>
                        Тут какой-то текст2
                    </p>
                    
                </div>
                
                <br class="clearfix" />
                <center>&copy; 2015  | vRac}{оде </center>
            </div>
        </div>
        
            
        
        <?php } ?>
    </body>
</html>
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 20:24 16
Цитата Сообщение от BoyStyle Посмотреть сообщение
{ echo "<meta http-equiv='refresh' content='0;$username'>"; }
уберите редирект для залогиненого пользователя
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 20:37  [ТС] 17
paskalnikita, тогда он не перенаправляет на страницу
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 20:40 18
Боже, сделайте тогда обработчик на страницу login.php, а на index.php уберите редирект, тогда авторизация будет идти через login.php и там будет перенаправление на нужную страницу, а на index'e не будет его
0
9 / 9 / 1
Регистрация: 24.02.2014
Сообщений: 321
16.05.2015, 20:42  [ТС] 19
paskalnikita, поясни глупцу, что сделать?)
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,112
16.05.2015, 20:45 20
Цитата Сообщение от paskalnikita Посмотреть сообщение
сделайте тогда обработчик на страницу login.php, а на index.php уберите редирект, тогда авторизация будет идти через login.php и там будет перенаправление на нужную страницу, а на index'e не будет его
То есть, это уcловие
Цитата Сообщение от BoyStyle Посмотреть сообщение
<?php if (!empty($_SESSION['Username']) && !empty($_SESSION['EmailAddress'])) { echo "<meta http-equiv='refresh' content='0;$username'>"; } else { ?>
на редирект, должно быть на странице login.php, на которую я попаду после залогиневания(кликнув на
Цитата Сообщение от BoyStyle Посмотреть сообщение
<input type="submit" name="login" id="login" value="Войти">
), а садо действие должно быть на login.php
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2015, 20:45

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Авторизация на сайте
Ребят, помогите с авторизацией на сайте. Создаю сайт с пользовательской и администраторской...

Авторизация на сайте
Здраствуйте, помогите авторизоваться на сайте с помощью библиотеки cURL. Форма аторизации: &lt;form...

Авторизация на сайте
Здравствуйте помогите создать авторизации на сайте с помошю сессии

Авторизация на сайте
Фаил auth.php &lt;?php require_once &quot;start.php&quot;; $email = htmlspecialchars($_POST); $password...


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

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

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