Init.
@@ -0,0 +1 @@
|
||||
AddCharset WIN-1251 .php
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
Class Captcha{
|
||||
|
||||
public $imgDir = 'images'; // директория где хранятся изображения
|
||||
|
||||
public $length = '5'; // количество цифр в капче
|
||||
|
||||
public function __construct(){
|
||||
|
||||
$this->keystring=array();
|
||||
|
||||
for($i=0;$i < $this->length;$i++){
|
||||
$this->keystring[] .= mt_rand(0,9);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function draw(){
|
||||
$img = '';
|
||||
foreach($this->keystring as $keystring){
|
||||
$img .= '<img src="'.$this->imgDir.DIRECTORY_SEPARATOR.$keystring.'.gif" border="0">';
|
||||
}
|
||||
|
||||
return $img;
|
||||
}
|
||||
|
||||
|
||||
public function getKeyString(){
|
||||
return implode($this->keystring);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
require "captcha.class.php"; //Подключаем класс капчи
|
||||
|
||||
//Инициализируем капчу
|
||||
$captcha = new Captcha();
|
||||
|
||||
$_SESSION['keystring'] = $captcha->getKeyString();
|
||||
|
||||
echo $captcha->draw();
|
||||
|
||||
?>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 621 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 330 B |
|
After Width: | Height: | Size: 318 B |
@@ -0,0 +1,303 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
//error_reporting(E_ALL);
|
||||
//ini_set('display_errors', 'On');
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
|
||||
require_once 'validator.php';
|
||||
|
||||
$validator = new Validator();
|
||||
|
||||
$validator->set_error_delimiters('<div class="error">', '</div>');
|
||||
|
||||
//Задаем правила валидации
|
||||
$rules = array(
|
||||
array(
|
||||
'field' => 'user_name',
|
||||
'label' => 'Ваше ник в игре',
|
||||
'rules' => array(
|
||||
'trim' => '', //Обрезаем пробелы по бокам
|
||||
'strip_tags' => '', // Удаляем HTML и PHP теги
|
||||
'required' => 'Поле %s обязательно для заполнения'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'field' => 'user_email',
|
||||
'label' => 'Ваш e-mail адрес связанный с ником',
|
||||
'rules' => array(
|
||||
'trim' => '',
|
||||
'required' => 'Поле %s обязательно для заполнения',
|
||||
'valid_email' => 'Поле %s должно содержать правильный email-адрес'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'field' => 'user_url',
|
||||
'label' => 'URL info персонажа',
|
||||
'rules' => array(
|
||||
'trim' => '',
|
||||
'valid_url' => 'Поле %s должно содержать правильный URL адрес'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'field' => 'subject',
|
||||
'label' => 'Тема обращения',
|
||||
'rules' => array(
|
||||
'trim' => '', //Обрезаем пробелы по бокам
|
||||
'strip_tags' => '', // Удаляем HTML и PHP теги
|
||||
'required' => 'Поле %s обязательно для заполнения'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'field' => 'text',
|
||||
'label' => 'Суть проблемы/обращения',
|
||||
'rules' => array(
|
||||
'trim' => '', //Обрезаем пробелы по бокам
|
||||
'strip_tags' => '', // Удаляем HTML и PHP теги
|
||||
'required' => 'Поле %s обязательно для заполнения'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'field' => 'keystring',
|
||||
'label' => 'Капча',
|
||||
'rules' => array(
|
||||
'trim' => '', //Обрезаем пробелы по бокам
|
||||
'required' => 'Вы не ввели цифры изображенные на картинке',
|
||||
'valid_captcha[keystring]' => 'Вы ввели не правильный цифры с картинки'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
//Устанавливаем правила валидации
|
||||
$validator->set_rules($rules);
|
||||
$message = '';
|
||||
|
||||
//Запускаем валидацию POST данных
|
||||
if($validator->run()){
|
||||
|
||||
//Здесь впишите свой e-mail адрес
|
||||
//на негу будут приходить уведомления с формы
|
||||
$to = 'support@new-combats.com';
|
||||
|
||||
$from = "=?UTF-8?b?" . base64_encode($validator->postdata('user_name')) . "?=";
|
||||
$subject = "=?UTF-8?b?" . base64_encode( $validator->postdata('subject') ) . "?=";
|
||||
|
||||
$mail_body = "Поступил новый ответ от формы обратной связи.\r\nАвтор оставил такие данные:\r\n";
|
||||
|
||||
//Формируем текст сообщения
|
||||
foreach($rules as $rule){
|
||||
if($rule['field'] == 'keystring') continue;
|
||||
$mail_body .= $rule['label'].': '.$validator->postdata($rule['field'])."\r\n";
|
||||
}
|
||||
|
||||
$header = "MIME-Version: 1.0\n";
|
||||
$header .= "Content-Type: text/plain; charset=UTF-8\n";
|
||||
$header .= "From: ". $from . " <" . $validator->postdata('user_email'). ">";
|
||||
|
||||
//Отправка сообщения
|
||||
if(mail($to, $subject, $mail_body, $header)){
|
||||
|
||||
$message = '<div class="error">Ваше сообщение успешно отправлено!</div>';
|
||||
|
||||
//Очищаем форму обратной связи
|
||||
$validator->reset_postdata();
|
||||
}
|
||||
else{
|
||||
|
||||
$message = '<div class="error">Ваше сообщение не отправлено!</div>';
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
//Получаем сообщения об ошибках в виде строки
|
||||
$message = $validator->get_string_errors();
|
||||
|
||||
//Получаем сообщения об ошибках в виде массива
|
||||
$errors = $validator->get_array_errors();
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Форма обратной связи с Администрацией проекта «Бойцовский клуб» </title> <meta name="description" content="Здесь Вы можете обратиться к Администрации Бойцовского клуба, с просьбой решения технического характера, связанной с нашей игрой"/>
|
||||
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body {
|
||||
font: 100% Verdana, Arial, Helvetica, sans-serif;
|
||||
background: #666666;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
color: #000000;
|
||||
}
|
||||
.oneColFixCtrHdr #container {
|
||||
width: 780px;
|
||||
background: #FFFFFF;
|
||||
margin: 15px auto;
|
||||
border: 1px solid #000000;
|
||||
text-align: left;
|
||||
}
|
||||
.oneColFixCtrHdr #mainContent {
|
||||
padding: 0 20px;
|
||||
background: #FFFFFF;
|
||||
position: relative;
|
||||
}
|
||||
.oneColFixCtrHdr #footer {
|
||||
padding: 0 10px;
|
||||
background:#DDDDDD;
|
||||
}
|
||||
.oneColFixCtrHdr #footer p {
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
|
||||
form.form{
|
||||
width: 600px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
form.form div {
|
||||
padding:4px;
|
||||
margin: 4px 0;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
form.form input.text,
|
||||
.textarea {
|
||||
padding:5px 10px;
|
||||
height:20px;
|
||||
border:1px solid #ddd;
|
||||
color:#333;
|
||||
background:url(images/bginput.jpg) repeat-x bottom #fff;
|
||||
position:relative;
|
||||
z-index:2;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
form.form input.text {
|
||||
width:290px;
|
||||
}
|
||||
|
||||
form.form .textarea {
|
||||
height:150px;
|
||||
width:290px;
|
||||
}
|
||||
|
||||
form.form label {
|
||||
float:left;
|
||||
width:120px;
|
||||
text-align:right;
|
||||
margin-right:15px;
|
||||
font-weight:bold;
|
||||
color:#666;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
form.form .btn {
|
||||
display:block;
|
||||
height:31px;
|
||||
padding:0 10px;
|
||||
background:url(images/bgbtn.jpg) repeat-x;
|
||||
color:#565e62;
|
||||
font-weight:bold;
|
||||
font-size:12px;
|
||||
border:1px solid #e1e0df;
|
||||
outline:none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* CSS3 */
|
||||
form.form .btn,
|
||||
form.form .text,
|
||||
form.form .textarea {
|
||||
-moz-border-radius:8px;
|
||||
-webkit-border-radius:8px;
|
||||
border-radius:8px;
|
||||
}
|
||||
|
||||
|
||||
div.error_field{
|
||||
background: #FEDAFB;
|
||||
border: 1px solid #FA74F0;
|
||||
}
|
||||
|
||||
div.errors{
|
||||
width: 580px;
|
||||
margin: 15px auto;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #FDFEC2;
|
||||
}
|
||||
|
||||
div.errors .error{
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body class="oneColFixCtrHdr">
|
||||
|
||||
<div id="container"> <p><align="center"><strong>Заполните контактную форму и мы свяжемся с вами в ближайшее время, чтобы сообщить об устранении неисправностей.</strong></p>
|
||||
|
||||
<div id="mainContent">
|
||||
|
||||
<?=(!empty($message))? '<div class="errors">'.$message.'</div>': ''?>
|
||||
<form action="" method="post" class="form">
|
||||
<div <?=(!empty($errors['user_name']))? 'class="error_field"': '';?>>
|
||||
<label>Ваш ник в игре:</label>
|
||||
<input type="text" class = "text" name="user_name" value="<?=$validator->postdata('user_name');?>" />
|
||||
</div>
|
||||
|
||||
<div <?=(!empty($errors['user_email']))? 'class="error_field"': '';?>>
|
||||
<label>Ваш e-mail адрес:</label>
|
||||
<input type="text" class = "text" name="user_email" value="<?=$validator->postdata('user_email');?>" />
|
||||
</div>
|
||||
|
||||
<div <?=(!empty($errors['user_url']))? 'class="error_field"': '';?>>
|
||||
<label>URL Info персонажа:</label>
|
||||
<input type="text" class = "text" name="user_url" value="<?=$validator->postdata('user_url');?>" />
|
||||
</div>
|
||||
|
||||
<div <?=(!empty($errors['subject']))? 'class="error_field"': '';?>>
|
||||
<label>Тема обращения:</label>
|
||||
<input type="text" class = "text" name="subject" value="<?=$validator->postdata('subject');?>"/>
|
||||
</div>
|
||||
|
||||
<div class="area<?=(!empty($errors['text']))? ' error_field': '';?>">
|
||||
<label>Суть обращения:</label>
|
||||
<textarea cols="40" class = "textarea" rows="5" name="text"><?=$validator->postdata('text');?></textarea>
|
||||
</div>
|
||||
|
||||
<div <?=(!empty($errors['keystring']))? 'class="error_field"': '';?>>
|
||||
<label class="captcha">Введите цифры изображенные на картинке:</label>
|
||||
<div class="capth_images"><?php require 'captcha.php';?></div>
|
||||
<input type="text" class = "text" name="keystring" value=""/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label> </label>
|
||||
<input type="submit" class="btn" value="Отправить сообщение" />
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,459 @@
|
||||
<?php
|
||||
|
||||
class Validator{
|
||||
|
||||
private $_field_data = array();
|
||||
private $_error_messages = array();
|
||||
private $_error_prefix = '<p>';
|
||||
private $_error_suffix = '</p>';
|
||||
|
||||
|
||||
function __construct(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Установка полей валидации
|
||||
*/
|
||||
function set_rules($field, $label = '', $rules = ''){
|
||||
|
||||
//Нет POST данных
|
||||
if (sizeof($_POST) == 0){
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//Если правила валидации переданы в виде массива
|
||||
if(is_array($field)){
|
||||
|
||||
foreach ($field as $row){
|
||||
|
||||
//Если не установлено поле валидации или правила валидации,
|
||||
//то пропускаем это поле
|
||||
if ( ! isset($row['field']) OR ! isset($row['rules'])){
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
//Если название поля не передано используем имя поля
|
||||
$label = ( ! isset($row['label'])) ? $row['field'] : $row['label'];
|
||||
|
||||
|
||||
$this->set_rules($row['field'], $label, $row['rules']);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
//Правила валидации должны быть переданы в виде массива,
|
||||
//а поле валидации строкой
|
||||
if ( ! is_string($field) OR ! is_array($rules) OR $field == ''){
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//Если название поля не передано используем имя поля
|
||||
$label = ($label == '') ? $field : $label;
|
||||
|
||||
|
||||
$this->_field_data[$field] = array(
|
||||
'field' => $field,
|
||||
'label' => $label,
|
||||
'rules' => $rules,
|
||||
'postdata' => NULL,
|
||||
'error' => ''
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Валидация данных
|
||||
*/
|
||||
function run(){
|
||||
|
||||
//Нет POST данных
|
||||
if (sizeof($_POST) == 0){
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//Если нет заданных полей для валидации
|
||||
if(sizeof($this->_field_data) == 0){
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
foreach ($this->_field_data as $field => $row){
|
||||
|
||||
//Получаем POST данные для установленных полей валидации
|
||||
//if (isset($_POST[$field])){
|
||||
|
||||
$this->_field_data[$field]['postdata'] = (isset($_POST[$field]))? $_POST[$field]: NULL;
|
||||
|
||||
//Проверка правил валидации
|
||||
$this->checkrule($row,$this->_field_data[$field]['postdata']);
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
$total_errors = sizeof($this->_error_messages);
|
||||
|
||||
if($total_errors == 0){
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Проверка правил валидации
|
||||
*/
|
||||
function checkrule($field,$postdata){
|
||||
|
||||
if(is_array($postdata)){
|
||||
|
||||
foreach($postdata as $key => $val){
|
||||
|
||||
$this->checkrule($field,$val);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
foreach($field['rules'] as $rule => $message){
|
||||
|
||||
$param = FALSE;
|
||||
|
||||
if (preg_match("/(.*?)\[(.*?)\]/", $rule, $match))
|
||||
{
|
||||
$rule = $match[1]; //Правило валидации
|
||||
$param = $match[2]; //Параметры
|
||||
}
|
||||
|
||||
//если это правило не входит с состав библиотеки
|
||||
if(!method_exists($this, $rule)){
|
||||
|
||||
//то будем считать, что это стандартная функция PHP
|
||||
//которая принимает только один входной параметр
|
||||
if(function_exists($rule)){
|
||||
|
||||
$result = $rule($postdata);
|
||||
|
||||
//Если функция возвращает булевое значение (TRUR|FALSE),
|
||||
//то мы не изменяем переданные POST данные, иначе записываем
|
||||
//отформатированные данные
|
||||
$postdata = (is_bool($result)) ? $postdata : $result;
|
||||
$this->set_field_postdata($field['field'],$postdata);
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
$result = $this->$rule($postdata,$param);
|
||||
}
|
||||
|
||||
|
||||
$postdata = (is_bool($result)) ? $postdata : $result;
|
||||
$this->set_field_postdata($field['field'],$postdata);
|
||||
|
||||
//если данные не прошли валидацию
|
||||
if($result === FALSE && $message != ''){
|
||||
|
||||
//Формируем сообщение об ошибке
|
||||
$error = sprintf($message, $field['label']);
|
||||
|
||||
//Сохраняем сообщение об ошибке
|
||||
$this->_field_data[$field['field']]['error'] = $error;
|
||||
|
||||
if ( ! isset($this->_error_messages[$field['field']])){
|
||||
|
||||
$this->_error_messages[$field['field']] = $error;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Установка POST данных
|
||||
*/
|
||||
private function set_field_postdata($field,$postdata){
|
||||
|
||||
if(isset($this->_field_data[$field]['postdata'])){
|
||||
|
||||
$this->_field_data[$field]['postdata'] = $postdata;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает POST данные для нужного элемента
|
||||
*/
|
||||
function postdata($field){
|
||||
|
||||
if(isset($this->_field_data[$field]['postdata'])){
|
||||
|
||||
return $this->_field_data[$field]['postdata'];
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Очищает все POST данные
|
||||
*/
|
||||
function reset_postdata(){
|
||||
|
||||
$this->_field_data = array();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает все сообщения об ошибках в виде строки
|
||||
*/
|
||||
function get_string_errors($prefix = '',$suffix = ''){
|
||||
|
||||
|
||||
if (count($this->_error_messages) === 0){
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($prefix == '')
|
||||
{
|
||||
$prefix = $this->_error_prefix;
|
||||
}
|
||||
|
||||
if ($suffix == '')
|
||||
{
|
||||
$suffix = $this->_error_suffix;
|
||||
}
|
||||
|
||||
// Формируем строку с ошибками
|
||||
$str = '';
|
||||
foreach ($this->_error_messages as $val)
|
||||
{
|
||||
if ($val != '')
|
||||
{
|
||||
$str .= $prefix.$val.$suffix."\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $str;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает все сообщения об ошибках в виде строки
|
||||
*/
|
||||
function get_array_errors(){
|
||||
|
||||
return $this->_error_messages;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает сообщение об ошибка для указанного поля
|
||||
* @param string
|
||||
*/
|
||||
function form_error($field){
|
||||
|
||||
if(isset($this->_error_messages[$field])){
|
||||
|
||||
return $this->_error_prefix.$this->_error_messages[$field].$this->_error_suffix;
|
||||
}
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function set_error_delimiters($prefix = '<p>', $suffix = '</p>')
|
||||
{
|
||||
$this->_error_prefix = $prefix;
|
||||
$this->_error_suffix = $suffix;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Значение не может быть пустым
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function required($str)
|
||||
{
|
||||
if ( ! is_array($str))
|
||||
{
|
||||
return (trim($str) == '') ? FALSE : TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ( ! empty($str));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Проверка поля на целое цисло
|
||||
* @param string
|
||||
*/
|
||||
function integer($str){
|
||||
|
||||
|
||||
return filter_var($str, FILTER_VALIDATE_INT);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Проверка поля на цисло c плавающей точкой
|
||||
* @param string
|
||||
*/
|
||||
function float($str){
|
||||
|
||||
|
||||
return filter_var($str, FILTER_VALIDATE_FLOAT);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Валидация URL
|
||||
* @param string
|
||||
*/
|
||||
function valid_url($str){
|
||||
|
||||
return filter_var($str, FILTER_VALIDATE_URL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Валидация email-адреса
|
||||
* @param string
|
||||
*/
|
||||
function valid_email($str){
|
||||
|
||||
|
||||
return filter_var($str, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Валидация IP-адреса
|
||||
* @param string
|
||||
*/
|
||||
function valid_ip($str){
|
||||
|
||||
|
||||
return filter_var($str, FILTER_VALIDATE_IP);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Match one field to another
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @param field
|
||||
* @return bool
|
||||
*/
|
||||
function matches($str, $field)
|
||||
{
|
||||
if ( ! isset($_POST[$field]))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$field = $_POST[$field];
|
||||
|
||||
return ($str !== $field) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Только буквы латинского алфавита
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function alpha($str)
|
||||
{
|
||||
return ( ! preg_match("/^([a-z])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Проверка капчи
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function valid_captcha($str,$name){
|
||||
|
||||
return (!empty($_SESSION[$name]) && $_SESSION[$name] == $str)? TRUE: FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Проверка даты
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function valid_date($str){
|
||||
|
||||
$stamp = strtotime( $str );
|
||||
|
||||
if (!is_numeric($stamp)){
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$month = date( 'm', $stamp );
|
||||
$day = date( 'd', $stamp );
|
||||
$year = date( 'Y', $stamp );
|
||||
|
||||
return checkdate($month, $day, $year);
|
||||
}
|
||||
|
||||
|
||||
function unique($str,$fields){
|
||||
|
||||
list($table,$field) = explode('.',$fields);
|
||||
|
||||
$result = mysql_query("SELECT COUNT(*) AS count FROM `".$table."` WHERE ".mysql_real_escape_string($field)."='".mysql_real_escape_string($str)."'");
|
||||
|
||||
$myrow = mysql_fetch_assoc($result);
|
||||
|
||||
return $myrow['count'] == 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||