Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Проверка введенных данных на PHP, отправка заполненной формы на почту




Практическая работа № 3.

Дата и время в PHP

Пример 1

<html>
<head>
<title>Использование getdate()</title>
</head>
<body>
<? php
$d = getdate(); // использовано текущее время
foreach ($d as $key => $val)
echo "$key = $val<br>\n";echo "Сегодня: $d[mday].$d[mon].$d[year]<br>\n";
? >
</body>
</html>

Пример 2

<html>
<head>
<title>Использование date()</title>
</head>
<body>
<? php
echo date("Сегодня d.m.y H:i");
? >
</body>
</html>

Пример 3

<html>
<head>
<title>Использование strftime()</title>
</head>
<body>
<?php
echo strftime("%A %d %B %Y %H:%M");
error_reporting(E_ALL & ~E_WARNING);
setlocale('LC_ALL','');
echo strftime("Сегодня %A %d %B %Y %X<br>");
echo strftime("%Z");
?>
</body>
</html>

2. Динамическая работа с таблицами

Чтоб заполнить ячейку таблицы кодом или текстом можно воспользоваться следующими методами, свойствами: innerHTML(), createElement(), о которых говорилось выше; innerText() и createTextNode().

Свойство innerText() отличается от свойства innerHTML() лишь тем, что включает только текстовое содержимое, а это значит, что когда свойству innerText() присваивается строка, содержащая дескрипторы HTML, то они выводятся на экран как есть, вместе с угловыми скобками.

В свою очередь метод createTextNode() по аналогии схож с методом createElement().

Продемонстрируем это всё на примере, используя функцию createTable().

<script language="JavaScript">
function createTable()
{
var newElem=document.createElement("table");//создаём новый элемент страницы (TABLE)
newElem.border=1;//указывает толщину рамки таблицы
var newRow=newElem.insertRow(0);//добавляем строку в созданной таблице
var newCell = newRow.insertCell(0);//в созданной строке добавляем столбец
newCell.width="200";//указываем длину столбца равной 200 пикселей
newCell.align="center";//указываем позиционирование по центру
newCell.innerHTML="<b>строка 1 столбец 1</b>";//заполняем ячейку жирным текстом
var newCell = newRow.insertCell(-1);//добавляем ещё один столбец
newCell.width="400";//указываем длину столбца равной 400 пикселей
newCell.align="center";//указываем позиционирование по центру
newCell.innerText="<b>строка 1 столбец 2</b>";//заполняем ячейку текстом

var newRow=newElem.insertRow(1);//добавляем ещё одну строку в таблицу
var newCell = newRow.insertCell(0); //в созданной строке добавляем столбец
newCell.width="200";//указываем длину столбца равной 200 пикселей
newCell.align="center";//указываем позиционирование по центру

addText=document.createTextNode("<b>строка 2 столбец 1</b>");//генерируем текстовый узел
newCell.appendChild(addText);//созданный текстовый узел добавляем в ячейку

var newCell = newRow.insertCell(-1); //добавляем ещё один столбец
newCell.width="400";//указываем длину столбца равной 400 пикселей
newCell.align="center";//указываем позиционирование по центру
addElem=document.createElement("b");//создаём новый элемент страницы (B)
addText=document.createTextNode("строка 2 столбец 2");//генерируем текстовый узел
addElem.appendChild(addText);//созданный текстовый узел добавляем к новому элементу (addElem)
newCell.appendChild(addElem);//полученный узел (addElem) добавляем в ячейку

document.body.appendChild(newElem);//прописываем созданную таблицу на страницу
}
</script><input type="button" value="Create" onclick="createTable()">

После выполнения функции createTable() на экране должна отобразиться таблица, следующего вида:

 

Строка 1 столбец 1

<b>строка 1 столбец 2</b>

<b>строка 2 столбец 1</b>

Строка 2 столбец 2

 

Форматированный вывод строк в PHP

<html>
<head><title>Форматирование вывода в окно браузера</title></head>
<body>
<?php
$TOVARY = array ("помидоры" => 15, "огурцы" => 11, "картофель" => 10);
echo "<pre>";
printf ("%-25s%25s\n%'=50s\n", "Наименование", "Цена", "");
foreach ($TOVARY as $NAME => $PRICE)
printf ("%'.-25s%'.22.2f\n", $NAME, $PRICE);
echo "</pre>";
?>
</body></html>

Проверка введенных данных на PHP, отправка заполненной формы на почту

В нашем примере у нас 5 полей, которые необходимо заполнить:

 

- имя

- сообщение

- e-mail

- контактный телефон

- контрольное число для защиты

 

Помимо простой проверки на пустоту поля, мы покажем, как проверить, правильно ли введен e-mail и телефон

<?phpif(isset($_POST["go"])){ $e1=null; $uname=trim(htmlspecialchars($_POST["uname"])); if(strlen($uname)=="0"){$e1.="Заполните поле 'Ваше имя'<br>";} $e2=null; $utext=trim(htmlspecialchars($_POST["utext"])); if(strlen($utext)=="0"){$e2.="Заполните поле 'Текст Сообщения'<br>";} $e3=null; $umail=trim(htmlspecialchars($_POST["umail"])); if((strlen($umail)=="0") || (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.-]+\.[a-z]{2,3}/i",$umail))) {$e3.="Поле 'Ваш E-Mail' не заполнено, либо введен неверный E-Mail<br>";} $e4=null; $uphone=trim(htmlspecialchars($_POST["uphone"])); if((strlen($uphone)<5) || (preg_match("/[%a-z_@.,^=:;а-я\"*()&$#№!?<>\~`|[{}\]]/i",$uphone))) {$e4.="Поле 'Контактный телефон' не заполнено, либо введен неверный Контактный телефон<br>";} $e5=null; $umath=trim(htmlspecialchars($_POST["umath"])); if($umath!="48"){$e5.="Введено неверное контрольное число<br>";} $eAll=$e1.$e2.$e3.$e4.$e5;}if(isset($_POST["go"]) && $eAll==null){ $dt=date("d F Y, H:i:s"); // дата и время $mail="my@email.ru"; // e-mail куда уйдет письмо $title=""; // заголовок(тема) письма $utext=str_replace("\r\n","<br>",$utext); // обрабатываем $mess="<b>Имя:</b> $uname<br>"; $mess.="<b>Сообщение:</b> $utext<br>"; // ссылка на e-mail $mess.="<b>E-Mail:</b> <a href='mailto:$umail'>$umail</a><br>"; $mess.="<b>Телефон:</b> $uphone<br>"; $mess.="<b>Дата и Время:</b> $dt"; $headers="MIME-Version: 1.0\r\n"; $headers.="Content-type: text/html; charset=windows-1251\r\n"; //кодировка $headers.="From: $umail\r\n"; // откуда письмо (необязательнакя строка) mail($mail, $title, $mess, $headers); // отправляем // выводим уведомление об успехе операции и перезагружаем страничку print"<script language='Javascript' type='text/javascript'> <!-- alert ('Ваше сообщение отправлено! Спасибо!'); function reload() {location = \"index.php\"}; setTimeout('reload()', 0); --> </script>";}?><form action="index.php" method="post"><span style="background:#EDC3C3;color:Red"><?=@$e1;?></span>Ваше Имя:<br><input type="text" name="uname" value="<?=@$uname;?>"><br><br> <span style="background:#EDC3C3;color:Red"><?=@$e2;?></span>Текст Сообщения:<br><textarea name="utext" rows="10"><?=@$utext;?></textarea><br><br> <span style="background:#EDC3C3;color:Red"><?=@$e3;?></span>Ваш E-Mail:<br><input type="text" name="umail" value="<?=@$umail;?>"><br><br> <span style="background:#EDC3C3;color:Red"><?=@$e4;?></span>Контактный телефон:<br><input type="text" name="uphone" value="<?=@$uphone;?>"><br><br> <span style="background:#EDC3C3;color:Red"><?=@$e5;?></span>Введите результат 24*2=?:<br><input type="text" name="umath" value=""><input type="hidden" name="go" value="5"><br><button type="submit">Отправить</button></form>

Ошибки заполнения $e1-$e5 можно разместить в удобном для Вас месте на странице, я разместила ошибки над соответствующими полями формы.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...