Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
cns_prod
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 4
1

Сохранение пользователя после авторизации

27.06.2013, 00:22. Просмотров 2223. Ответов 7
Метки нет (Все метки)

Всем привет, весь топик в том, что решил с "нуля писать форму регистрации/авторизации (ради обучения) в принципе, регистрация выполняется нормально, но вот авторизация...

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

Имеется
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
<?php
//Проверяем клиент - мобильник или нет 
include 'ifmobile.php';
 
 
    // Проверяем - заЛогинился человек или нет
    if ($_COOKIE['email'] && $_SESSION['mobile'])                          //  С МОБИЛЫ ВОШЕЛ
        header('Refresh: 0; URL=http://m.myra.ru/mypage.php');
    if ($_COOKIE['email'] && $_SESSION['mobile'])                             // ВОШЕЛ НЕ С МОБИЛЫ
                    {header('Refresh: 1; URL=http://myra.ru/mypage.php'); echo '22';}
        //Отправляем регистрироваться/авторизироваться чувака
        elseif ($_SESSION['mobile'])                                            // НЕ ВОШЕЛ С МОБИЛЫ
            header('Refresh: 0; URL=http://m.myra.ru/newman.php');
        else                                                                    //НЕ ВОШЕЛ НЕ С МОБИЛЫ
            {header('Refresh: 1; URL=http://myra.ru/newman.php'); echo 'ddd';}              
 
?>          
<html>
    <head>
        <title>Мурка glad to see u</title>
    </head>
</html>
Получается, что если мы новый пользователь - нас отправляет на регистрацию newman.php. Но, т.к. данные в сессию и в куки не сохраняются - нас по туда отправляет по дефолту. (эхо вывел, чтоб ориентироваться, через какую процедуру нас туда отправляет).

newman.php Страница регистрации (пропустил всякие стили и оформление)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html> 
<head> 
    <link rel="stylesheet" href="css/main.css" type="text/css" />
<title>New User</title>
</head>
<body>
 
<div id="auth">
<form class="form-4" action="auth.php" method='POST'>
    <p>
        <label for="email">E-mail</label>
        <input type="text" name="email" placeholder="Введите И-мейл" required>
    </p>
    <p>
        <label for="password">Пароль</label>
        <input type="password" name='password' placeholder="Пароль, пожалуйста" required> 
    </p>
    <p>
        <input type="submit" name="submit" value="ВОЙТИ">
    </p>    
    <a href="regpage.php"> <font color="deepskyblue" style="opacity:0.6;" size="3">Зарегестрироваться </font></a>   
</form>
Тут просто форма, ничего особенного нету. Привел так, для полноты информации...
Отправляет нас на auth.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
<?php
include("database.php"); ?>
 
<html>
<head>
 
    <?php
if (isset($_POST['email'], $_POST['password'])){
            
            $email = mysql_real_escape_string($_POST['email']);
            $password = md5($_POST['password']);
            $query = 'select * from users where binary email = "'.$email.'" and password = "'.$password.'" limit 0,1';
            $result = mysql_query($query);
 
            if(mysql_num_rows($result) > 0) {$_SESSION['email']=$email;
                                            echo "<div id='auth'>Вы успешно авторизированы. Сейчас мы отправим вас"?> <a href="index.php"><font color="deepskyblue"><b><? echo "туда, куда надо.</b></font></div>";  ?></a>
                                            <?php echo '<script language="JavaScript" type="text/javascript"> function changeurl(){eval(self.location="mypage.php");} window.setTimeout("changeurl();",0); </script>';}
   
            else {
                echo '<div id="auth">Чувак, ты че-то напутал, попробуй внести все'?> 
                <a href="newman.php"><font color="deepskyblue"><b><? echo 'заново</b></font> <script language="JavaScript" type="text/javascript"> function changeurl(){eval(self.location="index.php");} window.setTimeout("changeurl();",2000); </script></div>';
                return false;
            }
        };
 
?>
    <link rel="stylesheet" href="css/main.css" type="text/css" />
<title>Authorization</title>
</head>
<body>
Вот, Как мне на этой стадии (в случае успешной авторизации) внести данные о пользователе в куки? (и вообще - как лучше хранить данные о пользователе?).

На всякий случай
database.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
<?php  
$config = array();
$config['server'] = "localhost";
$config['login'] ="root"; 
$config['passw'] = ""; 
$config['name_db'] = "myra"; 
 
$connect = mysql_connect($config['server'], $config['login'], $config['passw']) or die("Error!"); // подключаемся к MySQL или, в случаии ошибки, прекращаем выполнение кода  
mysql_select_db($config['name_db'], $connect) or die("Error!"); // выбираем БД  или, в случаии ошибки, прекращаем выполнение кода  
 
$q = @mysql_query('SELECT id FROM users');
if(!$q) 
    {
        mysql_query("CREATE TABLE users(id int not null auto_increment primary key,
        email TINYTEXT,
        ugroup TINYTEXT,
        name TINYTEXT,
        surname TINYTEXT,
        vk TINYTEXT,
        password VARCHAR(32)) DEFAULT CHARSET=utf8;") or die(mysql_error());
        mysql_close();
    }
?>
Очень признателен буду за помощь.. любую.. и за любые советы.. Спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 00:22
Ответы с готовыми решениями:

Сохранение авторизации пользователя
есть интернет магазин регистрация и авторизация есть но вот после авторизации хотел сделать чтоб...

Вывод баланса после авторизации пользователя
Приветствую всех! Прошу не судить строго. Все, что знаю о программировании, знаю благодаря Гугл....

После авторизации повторно перекидывает обратно на страницу авторизации
Так, у меня есть проблема. Как только авторизируюсь, перекидывает обратно на авторизацию. Вот...

Сохранение авторизации для несколько страниц
Здравствуйте! У меня обновляет сессии при переходе на следующие страницы при успешной авторизации....

После авторизации
Как сделать так, чтобы после авторизации пользователь находился на сайте, то есть, перейдя после...

7
StudAssistant
Эксперт
9811 / 7003 / 2319
Регистрация: 17.04.2006
Сообщений: 9,622
27.06.2013, 00:22
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
7
crautcher
2023 / 1995 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
27.06.2013, 13:39 2
Цитата Сообщение от cns_prod Посмотреть сообщение
Вот, Как мне на этой стадии (в случае успешной авторизации) внести данные о пользователе в куки? (и вообще - как лучше хранить данные о пользователе?).
В сессии удобнее-же
Цитата Сообщение от cns_prod Посмотреть сообщение
Очень признателен буду за помощь.. любую.. и за любые советы.. Спасибо.
одну точку входа на сайт + расширение mysql никто не юзает, ему на смену пришло более быстрое mysqli или PDO. Второе на примерах хорошо показанно http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers
0
cns_prod
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 4
27.06.2013, 13:44  [ТС] 3
Спасибо, буду узнавать про mysqli.
Польщователю придется каждый раз заново заходить на сайт, после того, как браузер был закрыт, а это муторно...
Как все же сделать сохранение в куки?
0
crautcher
2023 / 1995 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
27.06.2013, 13:47 4
Цитата Сообщение от cns_prod Посмотреть сообщение
Польщователю придется каждый раз заново заходить на сайт, после того, как браузер был закрыт, а это муторно...
Как все же сделать сохранение в куки?
Сессия хранится в куках

Добавлено через 57 секунд
если у вас очищаются куки после закрытия браузера, то что сессия что остальные куки пропадут, а если нет то и сессия непропадет
0
27.06.2013, 13:47
cns_prod
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 4
27.06.2013, 13:49  [ТС] 5
хм. т.е. просто
session_start();
на каждой странице, где используем сессию и добавляем в нее пользователя?
А если у меня в страницу встроен фрейм(в div блок встает страница), где используется сессия.. нужно ли в этом фрейме тоже стартовать сессию? или достаточно запуска с родительской страницы?
0
crautcher
2023 / 1995 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
27.06.2013, 13:52 6
Фрейм это браузерная или серверная "фишечка"? И где выполняется PHP в браузере или на сервере?
0
cns_prod
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 4
27.06.2013, 13:54  [ТС] 7
Цитата Сообщение от crautcher Посмотреть сообщение
Фрейм это браузерная или серверная "фишечка"? И где выполняется PHP в браузере или на сервере?
Как это определить?
Код вы видите, на компе стоит денвер просто.
0
crautcher
2023 / 1995 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
27.06.2013, 13:58 8
Вы вводите адрес -> браузер требует у сервера страницу -> сервер выполняет пхп код и отдает РЕЗУЛЬТАТ выполнения браузеру -> браузер получает исходный код страницы (который в хроме можете посмотреть через ctrl + u) -> только тогда полученный хтмл бразуер преобразует в страницу. Если на страницы фрейм то браузер опять идет к серверу и требует код фрейма. Вы должны очень четко у сбя в голове понимать схему сервер <-> браузер если работаете с PHP.
0
27.06.2013, 13:58
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2013, 13:58

Переадресация после авторизации
Здравствуйте! Хочу сделать систему авторизации к сайту. Написал код который принимает форму...

Скрыть форму после авторизации
как написать что бы форма авторизации скрылась после успешной авторизации &lt;?php...

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


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

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

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