без разницы, лишь бы код покороче с циклом писался и внятно / приятно на глаз --- Добавлено --- array_map / while
@MouseZver Согласен я люблю когда код красивый, да а когда он еще и расписан все разжевано то вообще обожаю, хоть начинаю соображать что и для чего там именно так написан код) спасибо вам ребята, что помогаете вы лучшие!!!
@denis01 у меня получается фигня через foreach с месяцем делаю так: PHP: <?php $month = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']; foreach($month as $key => $value){ ?> <select id="month" name="month" class=""> <option>Месяц рождения</option> <option value="<?=$key?>"><?=$value?></option> </select> <div class="clear"></div> <?php } ?> вот скрин ниже что получается, в каждом меню по одному месяцу то-есть его названию
Все с датой в форме я разобрался, решение было вот такое, оптимально, и довольно отличное: PHP: <select id="day" name="day" class=""> <option>День рождения</option> <?php for($day = 1; $day<=31; $day++){ echo '<option value="'.$day.'">'.$day.'</option>'; } ?> </select> <div class="clear"></div> <select id="month" name="month" class=""> <option>Месяц рождения</option> <?php //организовываем цикл foreach $month = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']; // в цикл будем ставить ключ который будет обращаться передавать данные в переменную $value foreach($month as $key => $value){ echo '<option value="'.$key.'">'.$value.'</option>'; } ?> </select> <div class="clear"></div> <select id="year" name="year" class=""> <option>Год рождения</option> <?php for($year = 1930; $year <= 2017; $year++){ echo '<option value="'.$year.'">'.$year.'</option>'; } ?> </select> <div class="clear"></div> И в итоге я добавил еще 4 поля для регистрации, перейдем к php... вопрос звучит теперь так, как обычно делается проверка для таких полей, именно для дня рождения и пола пользователя, что нужно проверять?
функция date может сообщать сколько дней в текущем месяце проверять дату на правильность aeyrwbz checkdate, если день рождение, то надо, чтобы дата не находилась в будущем, учитывая часовые пояса, пола обычно два
@denis01 Посмотрел примеры: PHP: if (checkdate($month, $day, $year)) echo "Дата корректная"; else echo "Дата некорректная"; но перед проверкой нужно выставлять от какого и до какого она корректная? Сразу напишу второй вопрос, на счет проверок логина пароля на правильность чтобы не чего лишнего туда не писали, стоил ли проверять именно так, или есть лучше способ? PHP: if(empty($login)){ $live_register = false; } if(!preg_match('/^[a-zA-Z0-9-_]+$/', $login)){ $live_register = false; } if(!preg_match('/\A(\w){3,20}\Z/', $login)){ $live_register = false; }
@denis01 Warning: checkdate() expects parameter 1 to be long, string given in PHP: if (checkdate($user_month, $user_day, $user_year)) echo "Дата корректная"; else echo "Дата некорректная"; То-есть заметил поведения если пользователь не ввел не чего в поля он выкидывает Warning и говорит что дата не корректная, как мне Warning убрать? исправил так, не знаю на сколько это правильно: PHP: $user_month = 0; $user_day = 0; $user_year = 0; if (checkdate($user_month, $user_day, $user_year)) echo "Дата корректная"; else echo "Дата некорректная";
не понял это условие надо написать!!! @denis01 Либо лучше так сделать? PHP: if ($user_day>0 and $user_day<31) {} else { $live_register = false; } if ($user_month>0 and $user_month<12) {} else { $live_register = false; } if ($user_year>1954 and $user_year<2017) {} else { $live_register = false; }