Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285

Простые задания с использованием сессий

17.12.2014, 16:52. Показов 4894. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание 1.
Спросите имя пользователя с помощью формы и сохраните его в сессии. При обновлении
страницы поприветствуйте пользователя.

Задание 2.
Спросите у пользователя email с помощью формы. Затем сделайте так, чтобы в другой форме (имя, фамилия, пароль, email) при ее открытии поле email было автоматически заполнено.

Задание 3.
Добавление сессии в скрипт.
Добавьте сессии в скрипт авторизации из предыдущей работы №22 для переменных $id и $user и выведите фразу «Привет, имя пользователя (логин)».

PHP
1
2
3
4
session_start();
$_SESSION['id'] = $user['id'];
$_SESSION['login'] = $user['login'];
echo 'Привет, '.$_SESSION['login'];
Сама работа №22

Авторизация

html

HTML5
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Авторизация</title>
    </head>
 
    <body>
        <form action="login.php" method="POST">
            <table style="border: solid 1px; margin-left:25px;"><tr><td>
            <table >
                <tr><td width="100px">Имя:</td> <td><input name="name"/></td></tr> 
                <tr><td>Фамилия:</td>           <td><input name="fam"/></td></tr>
                <tr><td>email:</td>             <td><input name="email"/></td></tr>
                <tr><td>Логин:</td>             <td><input name="login"/></td></tr>
                <tr><td>Пароль:</td>            <td><input name="pass"/></td></tr>  
            </table>
            
            <p align="center"><input type="submit" value="Авторизоваться" /> <input type="button" name="reg" value="Регистрация" onclick="location.href='reg.html'" /></p>
            </td></tr></table>
            
            </form>
 
    </body>
</html>

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
<?php
    $host='localhost';
    $user='root';
    $password='';
    mysql_connect($host, $user, $password) or die(mysql_error());
    
        $db_name='test';
        mysql_select_db($db_name) or die (mysql_error());
    
    mysql_query("SET NAMES 'utf8'");
 
    if ( !empty( $_REQUEST['name']) and 
            !empty( $_REQUEST['fam']) and
                !empty( $_REQUEST['email']) and
                    !empty( $_REQUEST['login']) and
                        !empty( $_REQUEST['pass']) )
            {
            $name = $_REQUEST['name'];
            $fam = $_REQUEST['fam'];
            $email = $_REQUEST['email'];
            $login = $_REQUEST['login'];
            $pass = $_REQUEST['pass'];
            
            $q = ' SELECT * FROM reg WHERE name = "'.$name.'" and 
                                            fam = "'.$fam.'" and
                                            email ="'.$email.'" and
                                            login="'.$login.'" and
                                            pass="'.$pass.'" ';
            $r = mysql_query($q);
            $u = mysql_fetch_assoc($r);
            
            if ( !empty($u))
            {
            //echo 'вы успешно авторизовались';
            
            /*Дополнение от 23 практической №3*/
                session_start();
                $_SESSION['id'] = $user['id'];
                $_SESSION['login'] = $user['login'];
                echo 'Привет, '.$_SESSION['login'];
 
            }
            else
                {
                echo 'Вы неверно ввели логин/пароль либо пользователя не существует! Пройти <a href=reg.html>Регистрацию</a>';
                }
                }
            else
                {
                echo 'Заполенеы не все поля!';
                }
?>


Регистрация

html

HTML5
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Регистрация</title>
    </head>
 
    <body>
        <form action="reg.php" method="POST">
            <table style="border: solid 1px; margin-left:25px;"><tr><td>
            <table >
                <tr><td width="100px">Имя:</td> <td><input name="name"/></td></tr> 
                <tr><td>Фамилия:</td>           <td><input name="fam"/></td></tr>
                <tr><td>Возраст:</td>           <td><input name="age"/></td></tr>
                <tr><td>email:</td>             <td><input name="email"/></td></tr>
                <tr><td>Город:</td>             <td><input name="gorod"/></td></tr>
                <tr><td>Язык:</td>              <td><input name="yazik"/></td></tr>
                <tr height="20px"></tr>                                                      
                <tr><td>Логин:</td>             <td><input name="login"/></td></tr>
                <tr><td>Пароль:</td>            <td><input name="pass"/></td></tr>
                <tr><td>Потвердите пароль:</td> <td><input name="conf_pass"/></td></tr>             
            </table>
            
            <p align="center"><input type="submit" name="reg" value="Зарегестрироваться"/></p>
            </td></tr></table>
            
            </form>
 
    </body>
</html>

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
58
59
60
61
62
63
64
65
66
67
68
<?php
    $host='localhost';
    $user='root';
    $password='';
    mysql_connect($host,$user,$password) or die(mysql_error());
    $db_name='test';
    mysql_select_db($db_name) or die (mysql_error());
    mysql_query("SET NAMES 'utf8'");
    
    if ( !empty( $_REQUEST['name']) and 
            !empty( $_REQUEST['fam']) and
            !empty( $_REQUEST['age']) and
                !empty( $_REQUEST['email']) and
                !empty( $_REQUEST['gorod']) and
                !empty( $_REQUEST['yazik']) and
                    !empty( $_REQUEST['login']) and
                        !empty( $_REQUEST['pass']) and
                        !empty( $_REQUEST['conf_pass']) )
                        {
    $name = $_REQUEST['name'];
    $fam = $_REQUEST['fam'];
    $age = $_REQUEST['age'];
    $email = $_REQUEST['email'];
    $gorod = $_REQUEST['gorod'];
    $yazik = $_REQUEST['yazik'];
    $login = $_REQUEST['login'];
    $pass = $_REQUEST['pass'];
    $conf_pass = $_REQUEST['conf_pass'];
    
    // проверка подтверждения пароля
    
    if ($pass == $conf_pass)
        {
        $q2 = 'SELECT * FROM reg WHERE login="'.$login.'" ';
        $res = mysql_query($q2);
        $user = mysql_fetch_assoc($res);
        //если $isLoginFree пустой, то логин не занят
        
        if (!isset($user['login']))
        {
    /* sql запрос на ввод данных в таблицу login */
    $q = 'INSERT INTO reg SET   name="'.$name.'", 
                                    fam="'.$fam.'",
                                    age="'.$age.'",                                     
                                    email="'.$email.'",
                                    gorod="'.$gorod.'",
                                    yazik="'.$yazik.'",             
                                    login="'.$login.'",
                                    pass="'.$pass.'" ';
    mysql_query ($q);
    
    echo 'Вы успешно зарегестрировались!';
                        }
                        else
                        {
                        echo 'Такой логин уже занят';
                        }
                        }
                        else
                        {
                        echo 'Пароли не совпадают!';
                        }
                        }
                        else
                            {
                            echo 'Поля не могут быть пустыми';
                            }
?>


0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2014, 16:52
Ответы с готовыми решениями:

Отсчет времени с использованием сессий
Подсобите пожалуйста! Мне нужно с помощью сессий написать секундомер отсчета времени пребывания на данной странице. то что делал я ...

Авторизация на php с использованием сессий.
У меня сейчас на сайте работает авторизация используя куки. То есть юзер вводит логин и пароль скрипт сверяет их с базой данных и вешает...

Корзина с POST c использованием сессий
Дано задание: &quot;Реализуйте сайт с возможностью выбора покупок товаров посредством корзины.&quot; И преподаватель даже приложил код: ...

8
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
17.12.2014, 16:57  [ТС]
В задании 3 пытался вставить этот блок, но ничего не вышло, скрин ошибки прикрепил.
В работе 22, спойлер "авторизация", php, 37 строка.
Миниатюры
Простые задания с использованием сессий  
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.12.2014, 17:20
Frip, у вас уже сессия объявлена поэтому и ругается убери session_start();
0
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
17.12.2014, 19:27  [ТС]
Виталюска, ошибку перестала писать, но вместо
"Привет, Ivan" выводит "Привет, r"

Добавлено через 1 час 3 минуты
Задачу 3. выполнил изменив
PHP
1
2
3
4
//session_start();
$_SESSION['id'] = $user['id'];
$_SESSION['login'] = $user['login'];
echo 'Привет, '.$_SESSION['login'];
на
PHP
1
2
3
4
//session_start();
                $_SESSION['id'] = $id['id'];
                $_SESSION['login'] = $login;
                echo 'Привет, '.$_SESSION['login'];
Может кто объяснить, что означали строки
PHP
1
2
$_SESSION['id'] = $user['id'];
$_SESSION['login'] = $user['login'];
Вроде что-то вносим в массив $_session, но вот что значит в первом случае ['id'] и что идет после знака равно, мне не понятно
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.12.2014, 19:35
Цитата Сообщение от Frip Посмотреть сообщение
Задачу 3. выполнил изменив
если тебе надо получить данные из БД то задача выполнена не правильно там надо
PHP
1
2
3
 $_SESSION['id'] = $u['id'];
$_SESSION['login'] = $u['login'];
echo 'Привет, '.$_SESSION['login'];
вот тогда будет правильно


а так ты в сессию заносишь данные переданные с формы
0
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
17.12.2014, 19:48  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $q = ' SELECT * FROM reg WHERE name = "'.$name.'" and 
                                            fam = "'.$fam.'" and
                                            email ="'.$email.'" and
                                            login="'.$login.'" and
                                            pass="'.$pass.'" ';
            $r = mysql_query($q);
            $u = mysql_fetch_assoc($r);
            
            if ( !empty($u))
            {
            //echo 'вы успешно авторизовались';
            
            /*Дополнение от 23 практической №3*/
                //session_start();
                $_SESSION['id'] = $u['id'];
                $_SESSION['login'] = $u['login'];
                echo 'Привет, '.$_SESSION['login'];
т.е. в начале мы выбираем из бд данные, совпадающие с вписанными в форме, и заносим их в массив через mysql_fetch_assoc, потом заносим в ассоциативный массив $_SESSION наши значения? Получается так, просто не очень данную конструкцию понял
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.12.2014, 20:17
Цитата Сообщение от Frip Посмотреть сообщение
т.е. в начале мы выбираем из бд данные, совпадающие с вписанными в форме, и заносим их в массив через mysql_fetch_assoc, потом заносим в ассоциативный массив $_SESSION наши значения? Получается так, просто не очень данную конструкцию понял
да, проверяем пользователя если все ок тогда выводим данные
0
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 285
17.12.2014, 20:29  [ТС]
т.е. u у нас задается ассоциативным массивом?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
17.12.2014, 22:29
Frip,
PHP
1
$u = mysql_fetch_assoc($r);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2014, 22:29
Помогаю со студенческими работами здесь

Покажите пример кода PHP с использованием сессий.
Приветствую. Подскажите, плиз, простой пример сессии для использования на страницах сайта для ввода и отображения данных в/из БД. Т.е....

Выполнить задания с использованием инструкции выбора if и с использованием условного оператора
Выполнить задания с использованием инструкции выбора if и с использованием условного оператора ? (если он присутствует в языке...

Простые задания
Помогите сделать тест, буду всем откликнувшимся благодарен) ПОВТОРНОЕ нарушение Правил 5.4, 5.16 и 5.18 ПРЕДУПРЕЖДЕНИЕ

Простые задания по MathCAD y
Вычислить и определить абсолютную погрешность результата (для задания 3) все заданные цифры верны). В задании 4) взять значение с четырьмя...

Простые задания по рекурсии
1) Переделайте программу Fib.vbs, так чтобы она находила к-й член последовательности Фибоначчи, но последовательность начиналась бы не с 1,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru