Апр
11
2013
11
2013
Делаем страницу — заглушку с формой подписки e-mail на Sqlite.
Сегодня пишем пример форму подписки для сайта на базе данных sqlite.
Для проверки корректности e-mail адреса мы будем использовать функцию filter_var() и флагFILTER_VALIDATE_EMAIL.
На всякий случай ещё список флагов.
FILTER_VALIDATE_FLOAT — проверка на число с плавающей точкой FILTER_VALIDATE_BOOLEAN — проверка на булево число FILTER_VALIDATE_URL — проверка URL-адрес FILTER_VALIDATE_EMAIL — проверка e-mail адреса FILTER_VALIDATE_IP — проверка IP-адреса FILTER_UNSAFE_RAW — проверка на небезопасный текст.
Проверку будем осуществлять функцией filter_var.
$email = 'info@adatum.ru'; $valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
Результат работы этой функции имеет логический тип(bool) и принимает значениеtrue если email действительный, и false противном случае.
if ($valid_email !== false) { echo "E-mail адрес корректный"; } else { echo "Некорректный E-mail адрес"; }
Посмотрим как это работает.
<body> <form method='POST'> <input type="email" name="email" method="post"> <input type="submit" value="Проверить"> </form> </body> <?PHP filter_var('example@mail.ru', FILTER_VALIDATE_EMAIL); if($_POST){ if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){ echo "Верно"; } else{ echo "Не верно"; } } ?>
Html форма главного окна регистрации.
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <title>Зарегистрироваться</title> <link rel="stylesheet" href="style.css"> <link rel="icon" href="favicon.ico" type="image/x-icon"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> </head> <body data-twttr-rendered="true"> <div class="intro animated fadeInDown"> <h1>Зарегистрироваться</h1> <h2>Живи мечтой.</h2> <form method="post" id="sampleForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="form uniformForm validateForm"> <?php $user = $_SERVER['REMOTE_ADDR']; $da = date("d.m.Y"); $ho = date("h")+6; $min = date(":i:s"); $tim = $ho.$min; filter_var('example@mail.ru', FILTER_VALIDATE_EMAIL); if($_POST){ if(filter_var($_POST['id'], FILTER_VALIDATE_EMAIL)){ $data = $_POST['id']; $db = new PDO('sqlite:./database/main.sqlite'); $db->exec('INSERT INTO mail (mail,data,time,ip) VALUES ("'.$data.'","'.$da.'","'.$tim.'","'.$user.'")'); echo "Верно"; } else{ echo "Не верно"; } } ?> <input type='email' value='' name='id' size='20' method="post"/> <button class="signup check" type='submit' name='submit'> <span class='icon-save'></span> Подписаться</button> </form> <h2><a href="log.php">Посмотреть подписанных</a></h2> </div> </body></html>
Html форма окна просмотра зарегистрированных, в базу сохраняется дата, время, ip человека и его E-mail.
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <title>Зарегистрироваться</title> <link rel="stylesheet" href="style.css"> <link rel="icon" href="favicon.ico" type="image/x-icon"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> </head> <body data-twttr-rendered="true"> <div class="intro animated fadeInDown"> <h1>История регистрации</h1> <br> <h2> <?php $db = new PDO('sqlite:./database/main.sqlite'); $st = $db->query('SELECT * FROM mail');$results = $st->fetchAll(); foreach ($results as $row) { echo $row['data']." / "; echo $row['time']." / "; echo $row['ip']." / "; echo $row['mail']."<br>"; } ?> </h2> <h2> <a href="index.php">Вернуться на страницу регистрации</a></h2> </div> </body></html>