PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Ts.Saltan
Отправлено: 10 Апреля, 2015 - 20:03:24
Посетитель
Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013
Откуда: Belarus
Помог: 22 раз(а)
с "магией"
PHP:
скопировать код в буфер обмена
<?
$vars = [ 'vara' , 'varb' , 'varc' ] ;
$varb = true ;
foreach ( $vars as $var ) {
echo 'Переменная $' . $var . ' ' . ( ! isset ( $$var ) ?
'не ' : '' ) . 'установлена' . PHP_EOL
; }
/*
Переменная $vara не установлена
Переменная $varb установлена
Переменная $varc не установлена
*/
SpearMint
Отправлено: 10 Апреля, 2015 - 20:14:42
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
DeepVarvar , А каким методом из двух выше перечисленных предложили бы сделать вы? Просто в php я новичок и если и делаю, то возможно не правильно.
Вообще этот код предназначен для регистрации, где он проверяет формы на то заполнены ли они, далее проверяет их содержание, ну а в случае чего даёт ошибку.
(Отредактировано автором: 10 Апреля, 2015 - 20:17:12)
DeepVarvar
Отправлено: 11 Апреля, 2015 - 07:58:44
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008
Откуда: Альфа Центавра
Помог: 353 раз(а)
SpearMint пишет: А каким методом из двух выше перечисленных предложили бы сделать вы?
А ни один из предложенных методов не отвечает условиям задачи, т.к. и условия были не известны.
SpearMint пишет: он проверяет формы на то заполнены ли они, далее проверяет их содержание
А разве пустая строка в инпуте не является значением/содержанием?
Ну давай приведи актуальный кусок кода, тогда по полочкам разберем.
SpearMint
Отправлено: 13 Апреля, 2015 - 13:32:52
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Набросал собственно вчера, не уверен что правильно, но работает корректно.
Пока что с БД не ворочался, что бы потом полностью не делать все снова.
PHP:
скопировать код в буфер обмена
<?PHP
header ( "Content-Type: text/html; charset=utf-8" ) ; //Устанавливаем кодировку include ( '../lib/mysql/connection.php' ) ; //Подключение к БД
$login = $_POST [ 'login' ] ; //Форма логина
$email = $_POST [ 'email' ] ; //Форма Email адреса
$password = $_POST [ 'password' ] ; //Форма пароля
$cpassword = $_POST [ 'cpassword' ] ; //Проверка пароля на совпадение
//Удаляем пробелы
//Проверяем на то, введена ли капча верно
if ( $_POST [ 'captcha' ] != $_SESSION [ 'captcha' ] ) {
exit ( '1 Капча введена не верно!' ) ; }
else {
//Если да, то продолжаем
//Логин меньше 4 или 18 символов?
exit ( '2 Логин менее 4 или более 18 символов!' ) ; }
else {
//Нет, идём дальше
//Достаём из БД необходимые данные
$logresult = mysqli_query ( $mysqli , "SELECT id FROM users WHERE login='$login '" ) ; //Пользователь с таким логином существует?
if ( ! empty ( $myrow [ 'id' ] ) ) { exit ( '3 Данный логин уже существует!' ) ; }
else {
//Нет, идём дальше
//Email имеет необходимые символы?
if ( ! preg_match ( "/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i" , $email ) ) { exit ( '4 Email был введён не верно!' ) ; }
else {
//Да, имеет
//Пароль менее 4 символов?
exit ( '5 Пароль менее 4 символов!' ) ; }
else {
//Нет, более
//Пользователь его верно ввёл повторно?
if ( $password != $cpassword ) {
exit ( '6 Проверка пароля не совпадает!' ) ; }
else {
//Да
//Шифруем пароль
$password = md5 ( $password ) ; echo 'Yup!!' ;
//ЗАПИСЫВАЕМ В БД
} //6
} //5
} //4
} //3
} //2
} //1
?>
exlant
Отправлено: 13 Апреля, 2015 - 18:21:08
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
такая вложенность if-ов, во первых не нужна, а во вторых делает код менее читабельным, если код особо не менять, то можно вот так:
PHP:
скопировать код в буфер обмена
<?PHP
header ( "Content-Type: text/html; charset=utf-8" ) ; //Устанавливаем кодировку include ( '../lib/mysql/connection.php' ) ; //Подключение к БД
$login = $_POST [ 'login' ] ; //Форма логина
$email = $_POST [ 'email' ] ; //Форма Email адреса
$password = $_POST [ 'password' ] ; //Форма пароля
$cpassword = $_POST [ 'cpassword' ] ; //Проверка пароля на совпадение
//Удаляем пробелы
//Проверяем на то, введена ли капча верно
if ( $_POST [ 'captcha' ] != $_SESSION [ 'captcha' ] ) {
exit ( '1 Капча введена не верно!' ) ; }
//Если да, то продолжаем
//Логин меньше 4 или 18 символов?
exit ( '2 Логин менее 4 или более 18 символов!' ) ; }
//Нет, идём дальше
//Достаём из БД необходимые данные
$logresult = mysqli_query ( $mysqli , "SELECT id FROM users WHERE login='$login '" ) ; //Пользователь с таким логином существует?
if ( ! empty ( $myrow [ 'id' ] ) ) { exit ( '3 Данный логин уже существует!' ) ; }
//Нет, идём дальше
//Email имеет необходимые символы?
if ( ! preg_match ( "/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i" , $email ) ) { exit ( '4 Email был введён не верно!' ) ; }
//Да, имеет
//Пароль менее 4 символов?
exit ( '5 Пароль менее 4 символов!' ) ; }
//Нет, более
//Пользователь его верно ввёл повторно?
if ( $password != $cpassword ) {
exit ( '6 Проверка пароля не совпадает!' ) ; }
//Да
//Шифруем пароль
$password = md5 ( $password ) ; echo 'Yup!!' ;
//ЗАПИСЫВАЕМ В БД
?>
код не проверял, может, где то и потерял какую то скобку!
если попадаем в if-блок, то нас все-равно выкинет из кода функция exit()!
а вообще это все лучше обернуть или функциями, или методами! и вместо exit(), использовать return
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB