Что не так в коде? Не пропускает и все
<?php
if (isset($_POST['name'])) { $name = $_POST['name']; if ($name == '') { unset($name);} } //Имя
if (isset($_POST['family'])) { $family = $_POST['family']; if ($family == '') { unset($family);} } //Фамилия
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }//Пароль
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }//E-mail
if (empty($email) or empty($password)or empty($name) or empty($family)){
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев
}
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)) //проверка е-mail адреса регулярными выражениями на корректность
{exit ("Неверно введен е-mail!");}
//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$name = stripslashes($name);
$name = htmlspecialchars($name);
$family = stripslashes($family);
$family = htmlspecialchars($family);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$email = stripslashes($email);
$email = htmlspecialchars($email);
//удаляем лишние пробелы
$name = trim($name);
$family = trim($family);
$login = trim($login);
$password = trim($password);
//добавляем проверку на длину логина и пароля
if (strlen($email) < 1 or strlen($email) > 15) {
exit ("E-mail должен состоять не менее чем из 4 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
if (strlen($password) < 3 or strlen($password) > 15) {
exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
$password = md5($password);//шифруем пароль
$password = strrev($password);// для надежности добавим реверс
$password = $password."bt";
require '../system_dvs/core/coreBASE.php';
// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM profile WHERE email='$email'");
$myrow = mysql_fetch_row($result);
if (!empty($myrow['id'])) {
exit ("Извините, введённый вами E-mail уже зарегистрирован. Введите другой E-mail."); //останавливаем выполнение сценариев
}
// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO profile (email,password,name,family,date) VALUES('$email','$password','$name','$family',NOW())");
// Проверяем, есть ли ошибки
if ($result2=='TRUE'){
echo 'Core Base Save';
}
else {
exit ("Ошибка! Вы не зарегистрированы."); //останавливаем выполнение сценариев
}
PHP
Регистрация php обработчик, нужна помощь
Проверка e-mail в php делается так:
if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false) ...
Использовать stripslashes совершенно бессмысенно.
Преде записью в БД значения необходимо обрабатывать функцией mysql_real_escape_string.
Совершенно излишне делать if ($name == '') { unset($name);} и т. д. Если $name == '', то empty($name) вернёт true.
Trim надо делать ДО того, как проверяешь на empty.
if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false) ...
Использовать stripslashes совершенно бессмысенно.
Преде записью в БД значения необходимо обрабатывать функцией mysql_real_escape_string.
Совершенно излишне делать if ($name == '') { unset($name);} и т. д. Если $name == '', то empty($name) вернёт true.
Trim надо делать ДО того, как проверяешь на empty.
В каком смысле не пропускает? Выводит какую-то сообщение? В базу добавляется новая запись?
global $db;
$error = '';
$login = mysqli_real_escape_string($db, strip_tags(trim($_POST['login'])));
$pass = trim($_POST['password']);
$name = mysqli_real_escape_string($db, strip_tags(trim($_POST['name'])));
$address = mysqli_real_escape_string($db, strip_tags(trim($_POST['address'])));
$email = mysqli_real_escape_string($db, strip_tags(trim($_POST['email'])));
$phone = mysqli_real_escape_string($db, strip_tags(trim($_POST['phone'])));
if(empty($login)) $error .= 'Не указан логин';
if(empty($pass)) $error .= 'Не указан пароль';
if(empty($name)) $error .= 'Не указано имя';
if(empty($address)) $error .= 'Не указан адрес';
if(empty($email)) $error .= 'Не указан емайл';
if(empty($phone)) $error .= 'Не указан телефон';
if(empty($error)){
$res = mysqli_query($db,"select customers_id from customers where login = '$login' limit 1");
$row = mysqli_num_rows($res);
if($row){
$_SESSION['reg']['res'] = " пользователь с таким именем уже существует ";
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}else{
$pass = md5($pass);
$res = mysqli_query($db,"insert into customers (name,email,phone,address,login,password) value ('$name','$email','$phone','$address','$login','$pass')");
if(mysqli_affected_rows($db) > 0){
$_SESSION['reg']['res'] = " регистрация прошла успешно ";
$_SESSION['auth']['user'] = $name;
$_SESSION['auth']['customer_id'] = mysqli_insert_id($db);
$_SESSION['auth']['email'] = $email;
}else{
$_SESSION['reg']['res'] = "ошибка";
$_SESSION['reg']['login'] = $login;
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}
}
}else{
$_SESSION['reg']['res'] = "не заполнены поля: $error";
$_SESSION['reg']['login'] = $login;
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}
эт не доработанный вариант но я думаю доработаеш, останеться только функцию придумать одну для полей, чтоб не мучаться с длинными и регулярок еще можеш набросать
$error = '';
$login = mysqli_real_escape_string($db, strip_tags(trim($_POST['login'])));
$pass = trim($_POST['password']);
$name = mysqli_real_escape_string($db, strip_tags(trim($_POST['name'])));
$address = mysqli_real_escape_string($db, strip_tags(trim($_POST['address'])));
$email = mysqli_real_escape_string($db, strip_tags(trim($_POST['email'])));
$phone = mysqli_real_escape_string($db, strip_tags(trim($_POST['phone'])));
if(empty($login)) $error .= 'Не указан логин';
if(empty($pass)) $error .= 'Не указан пароль';
if(empty($name)) $error .= 'Не указано имя';
if(empty($address)) $error .= 'Не указан адрес';
if(empty($email)) $error .= 'Не указан емайл';
if(empty($phone)) $error .= 'Не указан телефон';
if(empty($error)){
$res = mysqli_query($db,"select customers_id from customers where login = '$login' limit 1");
$row = mysqli_num_rows($res);
if($row){
$_SESSION['reg']['res'] = " пользователь с таким именем уже существует ";
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}else{
$pass = md5($pass);
$res = mysqli_query($db,"insert into customers (name,email,phone,address,login,password) value ('$name','$email','$phone','$address','$login','$pass')");
if(mysqli_affected_rows($db) > 0){
$_SESSION['reg']['res'] = " регистрация прошла успешно ";
$_SESSION['auth']['user'] = $name;
$_SESSION['auth']['customer_id'] = mysqli_insert_id($db);
$_SESSION['auth']['email'] = $email;
}else{
$_SESSION['reg']['res'] = "ошибка";
$_SESSION['reg']['login'] = $login;
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}
}
}else{
$_SESSION['reg']['res'] = "не заполнены поля: $error";
$_SESSION['reg']['login'] = $login;
$_SESSION['reg']['email'] = $email;
$_SESSION['reg']['name'] = $name;
$_SESSION['reg']['address'] = $address;
$_SESSION['reg']['phone'] = $phone;
}
эт не доработанный вариант но я думаю доработаеш, останеться только функцию придумать одну для полей, чтоб не мучаться с длинными и регулярок еще можеш набросать
Фаррух Икромов
Спасибо
Похожие вопросы
- Нужна помощь по PHP
- Нужна помощь c запросами и базой данных, PHP, MySQL
- Php нужна помощь
- Почему боты обходят обработчик PHP
- какой функционал делают на сайтах с помощью php? вообще не пойму что конкретно пишут на этом языке на сайтах..
- Как спарсить страницы с помощью PHP (адрес страниц тот же, но содержимое разное в зависимости от введённого логина)?
- Авторизация php и регистрация проблемы с хэшэм
- Как заменить html код с помощью php файла.
- Для чего нужен PHP?
- PHP язык: Помощь