. Каждому разделу можно присвоить название с помощью элемента .
Контактная информация
Имя
E-mail
Рис. 1. Группировка полей формы
Чтобы сделать форму более понятной для пользователей, в поля формы добавляют текст, содержащий пример вводимых данных. Такой текст называется подстановочным и создаётся с помощью атрибута placeholder .
Обязательные для заполнения поля также необходимо выделять. До появления HTML5 использовался символ звездочки * , установленный возле названия поля. В новой спецификации появился специальный атрибут required , который позволяет отметить обязательное поле на уровне разметки. Этот атрибут дает указание браузеру (при условии, что тот поддерживает HTML5), указание не отправлять данные после нажатия пользователем кнопки отправить, пока указанные поля не заполнены.
Для изменения внешний вид текстового поля при получении фокуса, используется псевдокласс focus . Например, можно сделать фон текущего поля более темным или добавить цветную рамку, чтобы оно выделялось среди остальных:
Input:focus {
background: #eaeaea;
}
Ещё один полезный html5-атрибут — атрибут autofocus . Он позволяет автоматически установить фокус на нужном начальном поле для элементов и
Пример создания формы регистрации
HTML разметка
Примечание
action="form.php" — ссылка на файл обработчика формы. Создайте файл в кодировке UTF-8, закачайте его на сервер и замените action="form.php" на путь к файлу на вашем сервере.
Рис. 2. Внешний вид формы по умолчанию
Как видно из рисунка, каждый элемент формы имеет стили браузера по умолчанию. Очистим стили и оформим элементы формы.
Form-wrap {
width: 550px;
background: #ffd500;
border-radius: 20px;
}
.form-wrap *{transition: .1s linear}
.profile {
width: 240px;
float: left;
text-align: center;
padding: 30px;
}
form {
background: white;
float: left;
width: calc(100% - 240px);
padding: 30px;
border-radius: 0 20px 20px 0;
color: #7b7b7b;
}
.form-wrap:after, form div:after {
content: "";
display: table;
clear: both;
}
form div {
margin-bottom: 15px;
position: relative;
}
h1 {
font-size: 24px;
font-weight: 400;
position: relative;
margin-top: 50px;
}
h1:after {
content: "\f138";
font-size: 40px;
font-family: FontAwesome;
position: absolute;
top: 50px;
left: 50%;
transform: translateX(-50%);
}
/********************** стилизация элементов формы **********************/
label, span {
display: block;
font-size: 14px;
margin-bottom: 8px;
}
input, input {
border-width: 0;
outline: none;
margin: 0;
width: 100%;
padding: 10px 15px;
background: #e6e6e6;
}
input:focus, input:focus {
box-shadow: inset 0 0 0 2px rgba(0,0,0,.2);
}
.radio label {
position: relative;
padding-left: 50px;
cursor: pointer;
width: 50%;
float: left;
line-height: 40px;
}
.radio input {
position: absolute;
opacity: 0;
}
.radio-control {
position: absolute;
top: 0;
left: 0;
height: 40px;
width: 40px;
background: #e6e6e6;
border-radius: 50%;
text-align: center;
}
.male:before {
content: "\f222";
font-family: FontAwesome;
font-weight: bold;
}
.female:before {
content: "\f221";
font-family: FontAwesome;
font-weight: bold;
}
.radio label:hover input ~ .radio-control,
.radiol input:focus ~ .radio-control {
box-shadow: inset 0 0 0 2px rgba(0,0,0,.2);
}
.radio input:checked ~ .radio-control {
color: red;
}
select {
width: 100%;
cursor: pointer;
padding: 10px 15px;
outline: 0;
border: 0;
background: #e6e6e6;
color: #7b7b7b;
-webkit-appearance: none; /*убираем галочку в webkit-браузерах*/
-moz-appearance: none; /*убираем галочку в Mozilla Firefox*/
}
select::-ms-expand {
display: none; /*убираем галочку в IE*/
}
.select-arrow {
position: absolute;
top: 38px;
right: 15px;
width: 0;
height: 0;
pointer-events: none; /*активизируем показ списка при нажатии на стрелку*/
border-style: solid;
border-width: 8px 5px 0 5px;
border-color: #7b7b7b transparent transparent transparent;
}
button {
padding: 10px 0;
border-width: 0;
display: block;
width: 120px;
margin: 25px auto 0;
background: #60e6c5;
color: white;
font-size: 14px;
outline: none;
text-transform: uppercase;
}
/********************** добавляем форме адаптивность **********************/
@media (max-width: 600px) {
.form-wrap {margin: 20px auto; max-width: 550px; width:100%;}
.profile, form {float: none; width: 100%;}
h1 {margin-top: auto; padding-bottom: 50px;}
form {border-radius: 0 0 20px 20px;}
}
Файл form.php
" . "\r\n";
$headers .= "Bcc: ваш_email". "\r\n";
if(!empty($name) && !empty($sex) && !empty($email) && !empty($country) && filter_var($email, FILTER_VALIDATE_EMAIL)){
mail($email, $subject, $msg, $headers);
echo "Спасибо! Вы успешно зарегистрировались.";
}
?>
Примечание
В переменной $subject укажите текст, который будет отображаться как заголовок письма;
Ваше_имя — здесь вы можете указать имя, которое будет отображаться в поле «от кого письмо» ;
url_вашего_сайта замените на адрес сайта с формой регистрации;
ваш_email замените на ваш адрес электронной почты ;
$headers .= "Bcc: ваш_email". "\r\n"; отправляет скрытую копию на ваш адрес электронной почты.
Здравствуйте! Сейчас мы попробуем реализовать самую простую регистрацию на сайте с помощью PHP + MySQL. Для этого на вашем компьютере должен быть установлен Apache. Принцип работы нашего скрипта изображен ниже.
1. Начнем с создания таблички users в базе
. Она будет содержать данные пользователя (логин и пароль). Зайдем в phpmyadmin (если вы создаете базу на своем ПК http://localhost/phpmyadmin/
). Создаем таблицу users
, в ней будет 3 поля.
Я создаю ее в базе mysql, вы можете создавать в другой базе. Далее устанавливаем значения, как на рисунке:
2. Необходимо соединение с этой таблицей.
Давайте создадим файл bd.php
. Его содержание:
$db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу"); mysql_select_db ("имя базы, к которой подключаемся",$db); ?>
В моем случае это выглядит так:
$db = mysql_connect ("localhost","user","1234"); mysql_select_db ("mysql",$db); ?>
Сохраняем bd.php
. Отлично! У нас есть таблица в базе, соединение к ней. Теперь можно приступать к созданию странички, на которой пользователи будут оставлять свои данные.
3. Создаем файл reg.php с содержанием (все комментарии внутри):
Регистрация Регистрация
4. Создаем файл
, который будет заносить данные в базу и сохранять пользователя. save_user.php
(комментарии внутри):
{ } //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести //удаляем лишние пробелы $login = trim($login); $password = trim($password); // подключаемся к базе // проверка на существование пользователя с таким же логином $result = mysql_query("SELECT id FROM users WHERE login="$login"",$db); if (!empty($myrow["id"])) { exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."); } // если такого нет, то сохраняем данные $result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")"); // Проверяем, есть ли ошибки if ($result2=="TRUE") { echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. Главная страница"; } else { echo "Ошибка! Вы не зарегистрированы."; } ?>
5. Теперь наши пользователи могут регистрироваться!
Далее необходимо сделать "дверь" для входа на сайт уже зарегистрированным пользователям. index.php
(комментарии внутри) :
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!! session_start(); ?>
Главная страница Главная страница // Проверяем, пусты ли переменные логина и id пользователя if (empty($_SESSION["login"]) or empty($_SESSION["id"])) { // Если пусты, то мы не выводим ссылку echo "Вы вошли на сайт, как гость Эта ссылка доступна только зарегистрированным пользователям"; } else {В файле index.php
мы выведем ссылочку, которая будет открыта только для зарегистрированных пользователей. В этом и заключается вся суть скрипта - ограничить доступ к каким-либо данным.
6. Остался файл с проверкой введенного логина и пароля. testreg.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"])) { //если пользователя с введенным логином не существует } else { //если существует, то сверяем пароли if ($myrow["password"]==$password) { //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел! $_SESSION["login"]=$myrow["login"]; $_SESSION["id"]=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь echo "Вы успешно вошли на сайт! Главная страница"; } else { //если пароли не сошлись
Exit ("Извините, введённый вами login или пароль неверный."); } } ?>
Ну вот и все! Может урок и скучный, но очень полезный. Здесь показана только идея регистрации, далее Вы можете усовершенствовать ее: добавить защиту, оформление, поля с данными, загрузку аватаров, выход из аккаунта (для этого просто уничтожить переменные из сессии функцией unset
) и так далее. Удачи!
Все проверил, работает исправно!
Shall и will - вспомогательные глаголы , с помощью которых мы выражаем будущее время в английском языке . Однако все ли так просто, как кажется? Да, все просто, нужно только разобраться. Главное, всегда помнить: в английском языке нет глаголов, у которых только одно значение.
Shall/will: правило Чтобы построить предложение в будущем времени, нужно следовать правильному порядку слов: подлежащее + вспомогательный глагол (will) + обычный глагол + все остальное. Пример: «I will eat everything I see» - «Я съем все, что увижу».
Это и есть основное правило о shall/will. Стоит отметить, что по-русски мы редко говорим «я буду (есть)» - мы используем совершенный вид глагола. В английском нет такой возможности, так как это аналитический язык - носители его используют вспомогательные глаголы. Для того чтобы понять, как работает будущее время в английском, нужно просто вспомнить, что у нас тоже есть что-то похожее, просто редко употребляемое.
Ниже представлено официальное правило о will/shall в таблице:
Shall - пережиток прошлого Раньше shall мы употребляли с местоимениями "я" и "мы". Так надо было делать, согласно официальным правилам . Однако со временем shall полностью вышло из употребления, и теперь мы употребляем как «я», так и «мы» с «will».
Shall теперь осталось как пережиток прошлого. Если мы хотим прозвучать по-шекспировски мрачно и средневеково, то можно сказать: «I shall come back» - что-то наподобие - «Я изволю вернуться».
Will: основная работа Основную работу на себя взял глагол will . С его помощью мы выстраиваем будущее время.
«I will be back», - говорит Терминатор, угрожая, что вернется. Вернее, он сокращает: «I"ll be back», - но под апострофом и двумя "l" кроется will.
Однако will используется не только для того, чтобы обозначить время.
Will: другие функции Есть такой роман «Вся королевская рать » - про жесткого, страшного политика , который разносил всех на своем пути, потому что он смотрел в будущее, имел сильную волю и был зол и крут характером. Его звали, на первый взгляд, весело и ненавязчиво - Вилли.
Знаете, почему Вилли? Потому что его имя - это сила глагола Will.
Если думать об этом глаголе, можно вспоминать политика Вилли, поскольку он такой же властный, такой же обманчивый. На его примере можно понять некоторые функции этого многостороннего глагола.
Например:
Will выражает будущее время. Политик Вилли смотрит в будущее, планируя свои жестокости. спонтанность, взгляд вперед. Пример: «I will destroy my enemies!» - «Я уничтожу своих врагов!»
Will выражает пафосную, надменную (почти политическую) вежливость. Пример: «I am the Boss, if you will». - «Я здесь Хозяин, если Вам угодно».
Отрицание Will или отрицательный Вилл означает упертость: его не сдвинуть с места ни в настоящем, ни в будущем. Пример: «The door won’t open, I can’t get in!» - «Дверь не открывается, мне не попасть внутрь!»
Will - это не только глагол, это и существительное - как русское «воля». Глагол и существительное дополняют друг друга. Пример: «I did it of my own free will». - «Я сделал это по собственному желанию , меня никто не заставлял».
Существительное will может породить другую вариацию глагола will - не направленного в будущее, а излучающего власть и желание. Такой вариант употребляется очень редко. Пример: «Because I will it». - «Потому что я так желаю».
Will - это словно бы приказ политика Вилли. Пример: «You will do that because I want it» - «Ты это сделаешь, потому что я этого хочу».
В will есть и какое-то лицемерие, скрытый приказ, замаскированный под вопрос - чисто политический ход . Пример: «Stop that, will you?» - «Может, хватит?»
Вот так на примерах можно проанализировать глагол will и так его легче понять, так как натура у него воистину разносторонняя.
Мы разобрали правило о shall/will, теперь перейдем к другим формам этих глаголов. Новые формы - новые оттенки значений, которые сделают вашу речь богаче и разнообразнее.
Could/Should/Would: правила Could/should/would - это не только формы прошедшего времени can/shall/will.
На самом деле только can/could - это формы настоящего и прошедшего. Пример: «I can swim». - «I could swim when I was a child».
Также используется для в мы не согласуем времена: одна часть может употребляться в прошлом, другая - в будущем. В английском языке все части должны быть в одном времени:
«I said I could explain everything about will/shall but I lied». - «Я сказала, что могу объяснить все про will/shall, но наврала».
Shall в виде should не приобретает оттенок действия в прошлом - он становится модальным глаголом долженствования. Значение - настоятельный совет. Пример: «You should move, you are in my way». - «Стоит тебе подвинуться, ты на моем пути».
Would - форма прошедшего времени глагола будущего времени will. Это уже само по себе странно - отсюда вывод - нереально. Would часто используется для сослагательного наклонения . Пример: «If I were you, I would totally go for it». - «Была бы я тобой, я бы точно сделала это!»
Здесь описывается нереальная ситуация, и would играет роль нереального будущего.
Кроме того, would используется для согласования времен в косвенной речи . Пример: «He said he would kill for me». - «Он говорил, что убьет ради меня».
В английском языке есть два модальных глагола, которые по-своему не похожи на остальные. Речь идет о will и shall — двух грамматических структурах , которые могут иметь статус не только modals. Дело в том, что их употребление, как известно, возможно не только в модальном значении ; они часто используются как вспомогательные глаголы будущего времени. Поэтому стоит определить, в каких значениях используется shall или will как модальный, и какие функции несет в себе каждый модальный глагол.
Основные характеристики модального глагола shall
Как уже упоминалось, этот глагол никогда не являлся чистым modal. Тем не менее, у него есть ряд определенных грамматических характеристик , которые присущи этим словам. Так, после этого глагола не может идти full , а только bare (без to). Кроме того, сама инфинитивная форма может быть только Indefinite, что во многом отличает его от большинства modal verbs. Естественно, окончание –s с ним не используется. Также для него есть и структура в Past – , которая, как известно, развилась в отдельный modal.
Отличие модального shall от вспомогательного заключается еще и в том, что во времени Future auxiliary verb, как известно, зависит от лица. Это значит, что shall или will нужно использовать в зависимости от того, каким является подлежащее: в первом лице – shall. Но с модальным глаголом это правило не работает, и modal в тех или иных функциях употребляется с разными лицами .
Вопросительные предложения
Вне зависимости от того, является ли наш глагол модальным или вспомогательным в будущем времени, в вопросах он всегда ставится на первое место:
Shall
I help you? –
Мне
помочь
тебе
?
Shall
we
finish
the
work
right
now
? – Нам заканчивать работу прямо сейчас?
Отрицательная форма образуется весьма стандартно. На помощь приходит частица not , которая ставится после глагола – shall not. Кроме того, довольно часто в отрицаниях используются и сокращённые формы. Сокращение выглядит как shan’t:
I shall not
participate in this affair –
Я
не
приму
участия
в
этом
деле
Функции в предложении
Несмотря на то, что данный verb может употребляться с разными лицами, форма подлежащего все же имеет значение, что особенно актуально, когда речь идет о возможных значениях:
1. Воля, хотение.
Эта функция характерна только для первого лица и обычно употребляется в формальном стиле речи:
We shall
support all the wishes of our people –
Мы
поддержим
все
желания
нашего
народа
2. Вопросительные предложения.
Характерны только для первого и третьего лица:
Shall
I open the attic? –
Мне
открыть
чердак
?
3. Принуждение, жесткий приказ.
Только второе и третье лицо возможны в этой функции:
You
shall
leave
this
house
right
now
! – Ты покинешь этот дом прямо сейчас!
4. Угроза или предупреждение (также второе и третье лица):
Johnny! You shall
be punished if you don’t stop doing it! –
Джонни
!
Тебя накажут, если ты не прекратишь это делать
5. Обещание (второе и третье лица):
Don’t worry; they shall
take you with them too –
Не
переживай
,
они
и
тебя
возьмут
с
собой
6. Законные требования, предъявляемые к третьему лицу
Весьма редкая функция, которая по своему значению схожа с must:
The
sheriff
shall
maintain
order
in
his
town
– Шерифу надлежит поддерживать порядок в своем городе
Основные характеристики модального глагола will
Глагол will также может выступать как вспомогательным, так и модальным. Ему присущи те же черты, что и предыдущему глаголу. Различия можно встретить лишь в функциях и в том, что, будучи auxiliary verb, с ним употребляется второе и третье лицо, но не первое. Кроме того, есть форма will и для прошедшего времени – would, которая со временем приобрела статус самостоятельного глагола.
Вопросительные предложения
В вопросах с will нет никакой сложности: он идет на первое место, затем подлежащее и вся остальная структура:
Will
Jack come in? –
Джек
зайдет
?
Отрицания и краткие формы
Will not – типичное отрицание с этим modal. Также весьма часто встречается сокращенная форма won’t:
I will not
take any measures –
Я
не
хочу
принимать
никаких
мер
We
won
’
t
drink
tea
or
coffee
. – Мы не хотим пить чай или кофе.
В значениях этого глагола лицо не так важно. Однако возможные оптимальные варианты есть и здесь:
1.Воля, хотение.
И здесь в отличие от предшественника речь не идет о чем-то высоком и формальном. Типичный перевод – «хотеть»; здесь употребляются любые лица, но первое встречается чаще всего:
I will
tell you the truth –
Я хочу рассказать тебе правду
Note: очень часто эта функция встречается, если предложение имеет союз if. Не стоит путать такую ситуацию с условным предложением ; здесь will сохранил свое значение «хотеть»:
She may take any drink if she will
–
Она
может
взять
любой
напиток
,
если
хочет
2. Настойчивость
на чем-то, которая относится к настоящему или будущему и часто отображает привычки:
Don
’
t
ask
me
about
it
. –
But
I
will
! – Не проси меня об этом. – А я все равно буду!
3. Выражение вежливого предложения кому-либо чего-либо:
Will
you take a piece of cake? –
Не
хотите
ли
кусочек
торта
?
4. Предположение или своего рода предсказание,
которое относится к будущему:
Did you hear the doorbell? – Yes, it will
be Brian –
Ты
слышал
звонок
в
дверь
? –
Да
,
это
будет
Брайан
Все эти нюансы помогут определить, какая же все-таки основная разница между shall и will, а также то, какие моменты стоит учитывать, использую тот или иной modal. Их разграничение на две отдельные структуры является важным моментом грамматики в разделе Modal Verbs и может помочь в выражении определенных эмоций и состояний.