[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: а Я всё про ту-же регистрацию
YVSIK
дело было так, при помощи попова ВОТ
с использованием issetвсё работало
прочитал от- twin пришел к выводу что не пойдёт так
перстариваю на empty
в коде так-же не всё, защита пока не включена, пока это не так важно на этом
этапе это чють позже будем дорабатывать
пока что минимум ВОТ перменные такого типа тут не все но у мен есть
$imyl = !empty($_POST['imyl'])            ? $_POST['imyl'] : NULL; 
$famel = !empty($_POST['famel']) ? $_POST['famel'] : NULL;
$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;

вот внем пока не всё разобрал

<?php
include ("blok/perem2.php");
/*imyl поле для имени проверка*/
if ( empty($_POST['imyl']))
echo "Для корректной переписки скажите как вас зорвут <br> ";
/*imyl поле для проверка*/
if ( empty($_POST['famel']))
echo "Имен много а фамилия одна Вы не хотите ? Хм, странно <br> ";
/* если логин пустой то мы его уничтожаем и выводим Ваш логин не назначен! */
if ( empty($_POST['loginl']))
echo "Ваш логин не назначен! <br> ";
/* проверкa чтоб логин и пароль не совпадали */
if($loginl == $parol)
echo "Выберете разные логин и пароль, Вам-же спокойнее. <br >";
/* проверкa подтверждения пароля */
if($parol == $textfield7)
echo "Поле Пароль и Подтверждение не совпадают.<br>";
/*добавляем проверку на длину логина */
if(strlen($loginl) < 3 or strlen($loginl) > 15)
echo ("Логин должен состоять от 3 и до 15 символов. <br> ");
/*добавляем проверку на длину пароля */
if(strlen($parol) < 3 or strlen($parol) > 15)
echo ("Пароль должен состоять от 3 и до 15 символов <br>");
/*ПРОВЕРКА ПОЧТЫ НА ПРАВИЛЬНОЕ НАПИСАНИЕ */
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $maill))
echo ("Введите e-mail в виде <i>mail@server.com</i> <br>"."");
/*проверка на существование пользователя с таким же логином */

/* Запись IP адреса в базу */

$ip = getenv("HTTP_X_FORWARDED_FOR");

if(empty($ip) || $ip == 'unknown')
{
$ip = getenv("REMOTE_ADDR");
}
/*сам скрип занесения в базу */
if(isset($Data_regl, $Data_okn, $imyl, $famel, $textfield7, $loginl, $parol,
$maill, $gorod, $ad_pred, $ad_agen, $tele_SOT, $tele_GTS))
{
$resylt1 = mysql_query( "INSERT INTO reg_li_ag ( Data_regl, Data_okn, imyl, "
."famel, loginl, parol, maill, gorod, ad_pred, ad_agen, "
."tele_SOT, tele_GTS ,ip)
VALUES('
$Data_regl','$Data_okn','$imyl','$famel','$logiinl'"
."'$parol','$maill','$gorod','$ad_pred', "
." '$ad_agen','$tele_SOT','$tele_GTS','$ip')"
);
if($resylt1)
echo "<p>Вы зарегистрированы на сайте </p> ";
}
/*сдесь пока еще не все готово это будет в дальнейшем */
else { echo include("blok/for_reg1.php");
/*Здесь выводи что будет видно после занесения информации в базу*/
}

думаю вернее где-то здесь не то что надо после
/*сам скрип занесения в базу */
потому что выбрасывает на страницу регистрации назат
может подправите что не так плизз



Спустя 6 часов, 9 минут, 46 секунд (1.02.2011 - 09:15) linker написал(а):
isset() вертай обратно, оно гораздо логичнее здесь.

Спустя 29 минут, 9 секунд (1.02.2011 - 09:44) YVSIK написал(а):
тут так
Цитата
isset() вертай обратно, оно гораздо логичнее здесь.

хачу; чтоб всё было по науке
чё зря я тут постюсь уже не отрываясь
не хочу как придетьси
поэтому и переделываю
ещё хочу в команду потому и буду учиться
потом надобно это чтоб всё толком разобрать
как ещё это возможно сделать
меня толком интересует точно как переписать чтоб
как логичнее отправлять в базу эти поля
вообщем подскажи как ещё это сделать
и потом уже будет выбор
по моему я тут уже достаточно много перечитал
так вот про то что спрашиваю пока не попадалось

Спустя 22 минуты, 47 секунд (1.02.2011 - 10:07) linker написал(а):
Объясняю по науке.

empty() проверяет на пустоту УСТАНОВЛЕННУЮ(СУЩЕСТВУЮЩУЮ) переменную или элемент массива. При нормальном раскладе, т.е. включены все ошибки, при попытке сделать empty() для несуществующей переменной или несуществующему элементу массива, будет выдана ошибка-нотис - это плохо.
isset() проверяет, а существует ли вообще указанная переменная или элемент массива.

В POST, GET попадают данные из формы и урла. Это массивы, где ключи есть названия параметров, а значения собственно значения этих параметров. Т.е. если мы какой-то параметр не передаем, то такого элемента не будет в этих массивах. Поэтому, если мы для такого параметра вызываем empty($_POST['paramname']) - получаем нотис, т.к. такого элемента нет в массиве. Следовательно, логичнее всего использовать isset($_POST['paramname']), который собственно и проверяет, а пришел ли такой параметр через POST. Собственно значение уже в данном случае (хрен с ним, что оно пустое) не волнует.

Спустя 1 час, 10 минут, 40 секунд (1.02.2011 - 11:18) twin написал(а):
Цитата
при попытке сделать empty() для несуществующей переменной или несуществующему элементу массива, будет выдана ошибка-нотис - это плохо.
Упс. А в мануал?
Цитата
empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.

В чем её и прелесть кстати. Если игнорировать ноль, то тут она гораздо логичнее.

Спустя 10 минут, 10 секунд (1.02.2011 - 11:28) twin написал(а):
А по сути вопроса... Не нужно пытаться все делать методом тыка. И тем более не стоит пытаться объеденить два кода, совершенно разных по концепции.

Код на столько безобразен, что пытаться его привести в порядок - пустая трата времени. Нужно все полностью переделать. Отсюда стоит начать. Там все принципы расписаны.

Спустя 25 минут, 26 секунд (1.02.2011 - 11:53) linker написал(а):
twin
Ну да проглядел. Но не суть в этом, а суть в логике. При неправильном использовании которой получаем трудно находимые ошибки.

Спустя 3 минуты, 26 секунд (1.02.2011 - 11:57) YVSIK написал(а):
ДА ВОТ СЧАС ПЕРЕВАРИВАЮ
КАК подступиться; всёж равно по новому буду делать
в голове не всё укладываеться пока
всё верно надо почитать ещё и ещё
зато теперь я знаю что такое НОТИС и урла прогуглил
а то пролетало; внимания не соредатачивалось не акцентировалось
потому и пролетало половина того что надо
Цитата
а тут ещё эти вопросы придумываються меж делом по пути

Спустя 19 минут, 53 секунды (1.02.2011 - 12:17) twin написал(а):
Цитата
Но не суть в этом, а суть в логике. При неправильном использовании которой получаем трудно находимые ошибки.

Никаких ошибок. Это
!empty($_POST['var']) 

короткая запись этого:
(isset($_POST['var']) && $_POST['var'] != '')
если принять как условие невозможность использовать ноль. В данном случае ни ни логин, ни пароль, ни мыло не могут быть равными нулю. А по сему это логично, просто, надежно и эфективно.

Спустя 7 минут, 37 секунд (1.02.2011 - 12:24) linker написал(а):
Нет empty() не короткая запись чего-то другого. empty() занимается проверкой на пустое значения в переменной. Чтобы понять суть empty() приведу пример на обдумку
$_POST['a'] = 0;
if (!empty($_POST['a'])) // Логическая ошибка.
{
}
Логичность подразумевает исключение ошибок в логике, там где есть вероятность ошибки - логика страдает из-за недопонимания. Лучше приучить себя сразу исключать такие вероятности, тогда и с логичностью проблем не будет.

Спустя 8 минут (1.02.2011 - 12:32) twin написал(а):
Ну а я про что? Посмотри внимательно.
(isset($_POST['var']) && $_POST['var'] != '')

проверяем существование и на пустоту. empty сразу проверяет на пустоту. Параллельно и на существование, ибо если пусто, то не важно, есть она или нет. Так как функция не генерит нотис, соответственно можно смело пользоваться возвращаемым false.
Но только в том случае, когда значением не может быть ноль. О чем в третий раз повторяю.

Так что твой пример не корректен.

Спустя 3 минуты, 26 секунд (1.02.2011 - 12:36) linker написал(а):
При проверке логинов и паролей вообще пофигу ноль там, пусто или еще что.

Спустя 1 час, 40 минут, 42 секунды (1.02.2011 - 14:17) YVSIK написал(а):
обрезал скрип по самое нихачу
как всегда оставил только запись в базу
никаких проверок только капчу
всё равно выбрасыват
тут достал старый PHP-5 Практика создания WEB- сайтов
Кузнецова и Семдянова
вот и думаую терь так
а зачам собственно нужна строчка
 if(isset($Data_regl, $Data_okn, $imyl, $famel, $textfield7, $loginl, $parol,
$maill, $gorod, $ad_pred, $ad_agen, $tele_SOT, $tele_GTS))

когда мы и так кучу условий выполняем а тут ещё одно
достаточно и так
надо сбегать в центр занятости сейчас
позже буду править
УХ УЖ этот ЖП
по моему логичнее будет
ломаем все стереотипы

Спустя 6 дней, 12 часов, 5 минут, 23 секунды (8.02.2011 - 02:22) YVSIK написал(а):
В конечном итоге вот что вышло ;
терь всё работает ; для полной картины не хватает защиты вернее;
она есть; может не полная
вот в это и вопрос
что помимо мд5 капчаны надо прикрутить чтоб всё было в ажуре
может ещё ошибки кто не полениться весь код просмотреть ;
найдутся; говорим и исправляем; желаем высказаться
ВЫСКАЗЫВАЕМСЯ по полной;
<?php 
$ip = !empty($_POST['ip']) ? $_POST['ip'] : NULL;
$Data_regl = !empty($_POST['Data_regl']) ? $_POST['Data_regl'] : NULL;
$Data_okn = !empty($_POST['Data_okn']) ? $_POST['Data_okn'] : NULL;
$imyl = !empty($_POST['imyl']) ? $_POST['imyl'] : NULL;
$famel = !empty($_POST['famel']) ? $_POST['famel'] : NULL;

$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;
$parol = !empty($_POST['parol']) ? $_POST['parol'] : NULL;
$textpass =!empty($_POST['textpass']) ? $_POST['textpass'] : NULL;
$maill = !empty($_POST['maill']) ? $_POST['maill'] : NULL;

/*Проверка на заполнение поля ИМЯ*/
if ( empty($_POST['imyl']))
echo "Для корректной переписки скажите как вас зорвут <br> ";
/*добавляем проверку на длину ИМЕНИ*/
if (strlen($imyl) < 3 or strlen($imyl) > 25)
/* */ { /*---*/
unset($imyl);
echo ("\"Имя\" должно состоять от 3 и до 25 символов <br >");
/* */ } /*---*/
/* поле для проверкИ ФаМИЛИЯ*/

if ( empty($_POST['famel']))
echo "Имен много, а фамилия одна; Вы не хотите? Хм, странно! <br> ";
/*Проверка на заполнение поля ЛОГИНА*/
if ( empty($_POST['loginl']))
echo "Ваш логин не назначен! <br > ";
/* проверкa на совпадение ЛОГИН-ПАРОЛЬ*/
if($loginl == $parol)
{
unset($parol);
echo "Выберете разные логин и пароль, Вам-же спокойнее.<br>";
}
elseif ($parol !== $textpass)
{
unset($textpass);
echo "Поле Пароль и подтверждение не совпадают!<br>";
}
/*добавляем проверку на длину ЛОГИНА*/
if (strlen($loginl) < 3 or strlen($loginl) > 15)
/*---*/{/*---*/
unset($loginl);
echo ("\"Логин\" должен состоять от 3 и до 15 символов <br >");
/*---*/}/*---*/
//добавляем проверку на длину пароля

if (strlen($parol) < 3 or strlen($parol) > 15)
{
unset($parol);
echo ("Пароль должен состоять от 3 и до 15 символов <br >");
}
/*ПРОВЕРКА ПОЧТЫ НА ПРАВИЛЬНОЕ НАПИСАНИЕ*/
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $maill))
{
unset($maill);
echo ("Введите e-mail в виде <i>mail@server.com</i><br >");
}
/*проверка на существование пользователя с таким же логином*/
$result = mysql_query("SELECT id FROM reg_li_ag WHERE loginl='$loginl'", $db);
$myrow = mysql_fetch_assoc($result);
if(!empty($myrow['id']))
{
unset($loginl);
echo "Такой логин уже есть, Вам необходимо подобрать "
."другой логин.<br>";
}
/* Запись IP адреса в базу СсСдеся УТОЧНИТЬ У ХОСТЕРА КАКИЕ ОН ПОДДЕРЖИВАЕТ ФУНКЦИИ */
$ip = getenv("HTTP_X_FORWARDED_FOR");
if(empty($ip) || $ip == 'unknown')
{
$ip = getenv("REMOTE_ADDR");
}

if(isset($Data_regl, $Data_okn, $imyl, $loginl, $famel, $parol, $maill ))
{
$resylt1 = mysql_query("INSERT INTO reg_li_ag ( ip, Data_regl, Data_okn, imyl,"
." famel, loginl, parol, maill )"
." VALUES
('
$ip', '$Data_regl', '$Data_okn',
'"
. mysql_real_escape_string($imyl) ."',
'"
. mysql_real_escape_string($famel) ."',
'"
. mysql_real_escape_string($loginl) ."',
'"
. mysql_real_escape_string($parol) ."',
'"
. mysql_real_escape_string($maill) ."'
)
"
);
///////////////////////////////////
if($resylt1 == true)
{
echo "регистрация прошла УСПЕШНО!...";
}
else
{
echo "Неверны данные, не соответствуют логике скрипа.";
echo include ("blok/reg11.php");
}
}

else
{
echo "!!!________!!!ВОЗВРАТ НА СТРАНИЦУ РЕГИСТРАЦИИ!!!_______!!!" ;
echo include ("blok/reg11.php");
}

?>

положим так может и нагородил ? все-ж ОН работает
все ваши претензии
принимаются и выполняются

Спустя 44 минуты, 17 секунд (8.02.2011 - 03:06) Сандин написал(а):
У меня вопрос.Я новичек.

$parol = !empty($_POST['parol'])                  ? $_POST['parol'] : NULL;


Я правельно понимаю,если ячейка пустая то мы присваиваем ей значение 0? зачем так делать? я бы просто if else сделал..если пустота ругатся..

Спустя 6 минут, 52 секунды (8.02.2011 - 03:13) YVSIK написал(а):
Сандин
все непонятное начинается здесь
это уточнение зачем и почему

Спустя 9 минут (8.02.2011 - 03:22) inpost написал(а):
YVSIK
Загляни в последнюю ссылку моей подписи, там кое-что похожее, больше источников, больше знаний =)

Спустя 2 минуты, 12 секунд (8.02.2011 - 03:24) Сандин написал(а):
Славу богу что я Попова всего пару уроков глянул..)
YVSIK глубоко же ты меня послал)


_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.