GKoss / fest2016

lp 2016
1 stars 0 forks source link

functions.php | by Serega #3

Open GKoss opened 8 years ago

GKoss commented 8 years ago
<?php 

if (!session_id()) session_start();

// $db_host = "localhost";
// $db_user = "root";
// $db_password = "";
// $db_name = "m_fest";

$db_host = "mysql13.000webhost.com";
$db_user = "a1041974_mfest";
$db_password = "word123123";
$db_name = "a1041974_mfest";

$mysqli = @new mysqli($db_host, $db_user, $db_password, $db_name);
if ($mysqli->connect_errno) exit("$mysqli->connect_error - $mysqli->connect_errno");
$mysqli->set_charset("utf8");

// unset($_SESSION["message_success"]);

$was_registration = false;
$was_search = false;
$ajax = false;

if ($_REQUEST["register"]) $was_registration = true;
if ($_REQUEST["search"]) $was_search = true;

if ($_REQUEST["func"]) {
    $ajax = true;
    $func = $_REQUEST["func"];
}

if (($was_registration) || ($func == "register")) {

    $name = $_REQUEST["name"];
    $surname = $_REQUEST["surname"];
    $city = $_REQUEST["city"];
    $age =  $_REQUEST["age"];
    $email = $_REQUEST["email"];
    $phone = $_REQUEST["phone"];

    $pattern_email = "/^[a-z0-9_][a-z0-9\._-]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+$/i";
    $pattern_phone = "/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/";
    if (!preg_match($pattern_email, $email)) $error[] = "email";
    if (!preg_match($pattern_phone, $phone)) $error[] = "phone";
    if ((mb_strlen($age) > 2)) $error[] = "age";

    $error_email = false;
    $error_phone = false;
    $error_age = false;
    $two_errors = false;
    $errors = false;
    $message_error = false;

    if (!empty($error)) {                                                // <--!начало условия-- Если непустой массив ошибок то : --!>
        $message_error = true;                                                   // Переменная $message_error = true
        if (count($error) == 1) {            // <--!начало условия-- Если количество элементов в массиве ошибок = 1, то :
            if ($error[0] == "email") $error_email = true;           // Если 1й элемент массива ошибок = "email" , то $error_email = true
            elseif ($error[0] == "phone") $error_phone = true;       // Иначе, если 1й элемент массива ошибок = "phone" , то $error_phone = true
            else $error_age = true;                                  // Иначе $error_age = true;
        } elseif (count($error) == 2) {      // <--! конец условия (Если количество элементов в массиве ошибок = 1), иначе если кол-во эл-в = 2--!>
            if($error[0] == "email") {        // Если 1й элемент массива ошибок = "email" , то
                $field_1 = "Email";           // $field_1 = "Email";
                if ($error[1] == "phone") {   // Если 2й элемент массива ошибок = "phone" то
                    $field_2 = "Телефон";     // $field_2 = "Телефон";
                } else $field_2 = "Возраст";  // Иначе $field_2 = "Возраст";
            } elseif ($error[0] == "phone") { // Иначе, если 1й элемент массива ошибок = "phone" , то
                $field_1 = "Телефон";         // $field_1 = "Телефон";  
                if ($error[1] == "age") {     // Если 2й элемент массива ошибок = "age" то
                    $field_2 = "Возраст";      // $field_2 = "Возраст";   
                } else $field_2 = "Email";    // Иначе $field_2 = "Email"; 
            } else {                          // Иначе
                $field_1 = "Возраст";         // $field_1 = "Возраст";
                if ($error[1] == "email") $field_2 = "Email";  // Если 2й элемент = "email" то $field_2 = "Email";
                else $field_2 = "Телефон";                     // Иначе $field_2 = "Телефон"; 
            }
            $two_errors = true;
        } else $errors = true;                // <--! конец условия  (если кол-во эл-в = 2) , иначе $errors = true;

        if (!$ajax) {
            if ($error_email) $message_text = "Неверно заполнено поле \"Email\"";
            if ($error_phone) $message_text = "Неверно заполнено поле \"Телефон\"";
            if ($error_age) $message_text = "Неверно заполнено поле \"Возраст\"";
            if ($two_errors) $message_text = "Неверно заполнены поля \"$field_1\" и \"$field_2\"";
            if ($errors) $message_text = "Неверно заполнены поля \"Email\", \"Телефон\", и \"Возраст\"";
        } else {
            if ($error_email) echo json_encode(array("r" => false, "message" => "Неверно заполнено поле \"Email\""));
            elseif ($error_phone) echo json_encode(array("r" => false, "message" => "Неверно заполнено поле \"Телефон\""));
            elseif ($error_age) echo json_encode(array("r" => false, "message" => "Неверно заполнено поле \"Возраст\""));
            elseif ($two_errors) echo json_encode(array("r" => false, "message" => "Неверно заполнены поля \"$field_1\" и \"$field_2\""));
            else echo json_encode(array("r" => false, "message" => "Неверно заполнены поля \"Email\", \"Телефон\", и \"Возраст\""));
        }
    } else {                                                            // <--! конец условия (Если непустой массив ошибок) --!>
        $query = "INSERT INTO `fest_members` (`name`, `surname`, `city`, `age`, `email`, `phone`) 
                            VALUES ('$name', '$surname', '$city', '$age', '$email', '$phone')";
        $result = $mysqli->query($query);
        if ($result) {
            $_SESSION["message_success"] = "Вы успешно зарегистрировались на фестиваль !";
            if (!$ajax) {
                $url = $_SERVER['HTTP_REFERER'];
                header("Location: $url");   
            } else echo json_encode(array("r" => true, "message" => "Вы успешно зарегистрировались на фестиваль !"));
        } else {
            if (!$ajax) {
                $message_error = true;
                $message_text = "Произошла неизвестная ошибка. Попробуйте повторить операцию позже.";
            } else echo json_encode(array("r" => false, "message" => "Произошла неизвестная ошибка. Попробуйте повторить операцию позже."));
        }
    }
} elseif (!empty($_SESSION["message_success"])) {
    $message_success = $_SESSION["message_success"];
}

if (($was_search) || ($func == "search")) {

    $name = $_REQUEST["name"];
    $surname = $_REQUEST["surname"];
    $city = $_REQUEST["city"];
    $age =  $_REQUEST["age"];
    $phone = $_REQUEST["phone"];

    $error_empty = false;
    $search_empty = false;

    $fields = array("name" => $name, "surname" => $surname, "city" => $city, "age" => $age, "phone" => $phone);

    $empty_fields = 0;
    foreach ($fields as $field => $value) {
        if (empty($value)) {
            $empty_fields++;
        } else $s_fields["$field"] = str_replace(",", "", trim($value));
    }

    if ($empty_fields == 5) {
        if (!$ajax) $error_empty = true;
        else echo json_encode(array("r" => false, "message" => "Вы не ввели поисковый запрос ! Заполните поля для поиска !"));
    } else {
        foreach ($s_fields as $field => $value) {
            $search_fields[] = $field;
            $search_values[] = str_replace(",", "", trim($value));
        }
        if (count($s_fields) == 1) {
            $query_search = "SELECT * FROM `fest_members` WHERE `$search_fields[0]` LIKE '%$search_values[0]%'";
            $go_search = $mysqli->query($query_search);
            while ($row = $go_search->fetch_assoc()) {
                $search_result[] = $row;
            }
        } else {
            $query_search = "SELECT * FROM `fest_members`";
            $where = array();
            foreach ($s_fields as $field => $value) {
                $where[] = "`$field` LIKE '%$value%'";
            }
            $where = implode(" OR", $where);
            if ($where) $query_search .= " WHERE $where";
            $go_search = $mysqli->query($query_search);
            while ($row = $go_search->fetch_assoc()) {
                $search_result[] = $row;
            }
        }
        if (empty($search_result)) {
            $search_empty = true;
            if ($ajax) echo json_encode(array("r" => false, "message" => "По вашему запросу пользователи не найдены."));
        } elseif ($ajax) echo json_encode(array("r" => true, "message" => false, "search_data" => $search_result));
    }

}

?>
GKoss commented 8 years ago

Серега, наконец-то код поменял. Спасибо теперь норм