Adatum
Апр
11
2013

Делаем страницу — заглушку с формой подписки e-mail на Sqlite.

FILTER_VALIDATE_EMAIL
Сегодня пишем пример форму подписки для сайта на базе данных 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 "Не верно";
 }
}
?>

logreg

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>

Источник урока: http://www.adatum.ru
Автор: Сергоманов Дмитрий

Похожие статьи

Оставить комментарий