Проверка введенных данных на PHP, отправка заполненной формы на почту
Стр 1 из 2Следующая ⇒ Практическая работа № 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 и телефон <?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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|