Забыли пароль?
Запросите новый здесь.

Автор темы: Rikki
ID темы: 2519
Информация:
Тема содержит 22 сообщения, была просмотрена 44339 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Народное творчество
 Распечатать тему
Беспрецендентно удобная JSфункция валидации полей
Rikki
Доброго времени уважаемые форумчане!

Предлагаю свою js-функцию валидации полей ввода

Загрузить источник  GeSHi: Javascript
  1. function RikkiValidInput(element, reg, aler, sClass, eClass, clr) {
  2. if (reg.test(element.value)) {
  3. element.parentNode.className = sClass;
  4. } else if (element.value) {
  5. if (clr) {
  6. element.parentNode.className = clr;
  7. element.value = "";
  8. } else {
  9. element.parentNode.className = eClass;
  10. }
  11. if (aler) {
  12. alert(aler);
  13. }
  14. }
  15. return false;
  16. }
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10


примеры использования:
протестировать различные поля ввода здесь: http://citr.tk
1) RikkiValidInput(this, /(^(\d+-)*\d+$)/, '', 'input-group has-success', 'input-group', ''); и
RikkiValidInput(idOn_number, /(^[0-9]{1,2}([\-]{1}[0-9]{1,5}){3}$)/, '', 'input-group has-success', 'input-group has-error', '');
Загрузить источник  GeSHi: PHP
  1. $misc_on_number = "onClick=\"clearInput(this);\" onKeyup=\"RikkiValidInput(this, /(^(\d+-)*\d+$)/, '', 'input-group has-success', 'input-group', '');\"";
  2. echo $RikkiInput->RikkiInputFG('input-group', $locale['search104'], 'idOn_number', 'on_number', '', '20', $locale['search105'], $misc_on_number, '');
  3. echo "<p><input type='submit' name='searchON' class='btn btn-default' value='".$locale['search29']."' onMouseover=\"RikkiValidInput(idOn_number, /(^[0-9]{1,2}([\-]{1}[0-9]{1,5}){3}$)/, '', 'input-group has-success', 'input-group has-error', '');\">\n</p>\n";
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10

2) RikkiValidInput(this, /(^[A-ZА-Яa-zа-я0-9№'\(\)\,\.\_\:\s\-]*?$)/, '".$locale['e45']."', 'input-group has-success', '', 'input-group');
Загрузить источник  GeSHi: PHP
  1. $misc_title_area = "onDblclick=\"clearInputSpan(this); $('#11111').html('50');\" onKeyup=\"countInput(this,'#11111',50); RikkiValidInput(this, /(^[A-ZА-Яa-zа-я0-9№'\(\)\,\.\_\:\s\-]*?$)/, '".$locale['e45']."', 'input-group has-success', '', 'input-group');\"";
  2. $RikkiInput->CountRikkiInput('input-group', '&nbsp;', '50', '1111', 'on_title_area', '', '52', $locale['a36'], $misc_title_area);
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


3) Ну и с ячейками таблицы: RikkiValidInput(this, /(^[0-9]+$)/, '', 'success', 'danger', '');

Загрузить источник  GeSHi: PHP
  1. $this->html .= "<input id='3".$num."' type='text' placeholder='".$locale['client50']."' name='user_phone_num_".$num."' class='form-control text-center' value='".((isset($_POST['Send'])) ? InputValuePost ($_POST["user_phone_num_".$num.""], "") : InputValueData ($data["user_phone_num_".$num.""], ""))."' maxlength='8' onClick=\"clearTd(this);\" onKeyup=\"RikkiValidInput(this, /(^[0-9]+$)/, '', 'success', 'danger', '');\">\n";
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


Изменил(а) Rikki, 25.06.2015 17:30
 
Polarfox
Оффтопик 'опасность' ab

очень сильно зависит от верстки.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Rikki
PolarFox, для bootstrapa проверено во всех браузерах) я здесь уже встречала индивидуумов тоже юзающих bootstrap :)
вот кусок исходного кода для большей наглядности:
Загрузить источник  GeSHi: HTML
  1. <div id="on_title_area" class="input-group">
  2. <span class="input-group-addon"> <span id="11111" class="collapse">50</span>
  3. </span>
  4. <input id="1111" name="on_title_area" type="text" class="form-control text-center" value="" maxlength="52" placeholder="название" ondblclick="clearInputSpan(this, '#11111');" onkeydown="$('#11111').show('slow');" onkeyup="countInput(this,'#11111',50); RikkiValidInput(this, /(^[A-ZА-Яa-zа-я0-9№'\(\)\,\.\_\:\s\-]*?$)/, 'Разрешены только русские или латинские буквы, цифры, одинарные кавычки, точка, запятая, двоеточие, дефис, пробел и знаки: № ( _ )', 'input-group has-success', 'input-group has-error', 'input-group', '#11111');"></div>
  5. </div>
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10


Изменил(а) Rikki, 25.06.2015 16:30
 
lucky
Оффтопик удалено, по невнимательности не то написал))

 
Rikki
lucky,
Оффтопик я же помню там одни гетэлементбайидэ были? так подумали? ag

 
PahaW
Rikki, alert, конечно, удобен для тестирования, но на мой взгляд не для рабочей версии. Есть пользователи, которые при наборе текста смотря на клавиатуру и печатают медленно, ошибившись где-то по тексту alert не даст набраться текст далее, и им снова придется набирать текст, который они уже набирали на alert'е )) будет вызывать неприязнь.

Опять же раздувание input до ужасных размеров и вставку описания ошибки в сам input опять же на мой взгляд дурной тон, а если несколько полей с таким:
Загрузить источник  GeSHi: Javascript
  1.  
  2. RikkiValidInput(this, /(^[A-ZА-Яa-zа-я0-9№'\(\)\,\.\_\:\s\-]*?$)/, 'Разрешены только русские или латинские буквы, цифры, одинарные кавычки, точка, запятая, двоеточие, дефис, пробел и знаки: № ( _ )', 'input-group has-success', 'input-group has-error', 'input-group', '#11111', '50');
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10


Будет проще описать один раз в переменной и выводить только переменные.
Просто какие задачи вы ставите этой валидации: сделать ее универсальной или же сделать под конкретные случаи.


-----
Лайкай авууууу, авы себя не залайкают
x1
 
Web
Rikki
PahaW, очистку можно отключить для этого clr='' и алерт можно отключить aler=''
Есть пользователи, которые при наборе текста смотря на клавиатуру и печатают медленно
для этого регулярки простейшие, исключены только агрессивные знаки ", $, # и тд Порядочный пользователь на них никогда и не нажмет а значит и не увидит алерт и не придется заново набирать, алерты с очисткой это для начинающих кулхацкеров желающих показать что они крутые, мягкий отпор так сказать. Во всех числовых input alert с очисткой пустота, тоесть отключены - это можно проверить у меня на сайте

пусть будет лучше длинная строка входных данных функции, чем лишние метры js-скрипта, я раньше писала под конкретные случаи более менее универсальные функции, сейчас все меняю и удаляю, неэффективно, слишком много путанно и не исключена вероятность повторных дублирующих функций засоряющих код что сильно снижает модульность программы

а если очистка в числовых полях, то это отдельная функция на onclick мне например проще набрать число заново, это уменьшает вероятность ошибочного ввода, это же не осмысленный текст Если уж так не удобно то очистку можно вызывать на onDblclick
Загрузить источник  GeSHi: Javascript
  1. function clearInput(element, clr, idSpan) {
  2. element.value = "";
  3. element.parentNode.className = clr;
  4. if (idSpan) {
  5. $(idSpan).hide('slow');
  6. }
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10


то что вы привели - это уже готовый исходный код, который я привела для того чтобы можно было отследить родителя, а сам php код в первом сообщении

$misc_on_number = "onClick=\"clearInput(this, '');\" onKeyup=\"RikkiValidInput(this, /(^(\d+-)*\d+$)/, '', 'input-group has-success', 'input-group', '');\"";
echo $RikkiInput->RikkiInputFG('input-group', $locale['search104'], 'idOn_number', 'on_number', '', '20', $locale['search105'], $misc_on_number, '');
echo "<p><input type='submit' name='searchON' class='btn btn-default' value='".$locale['search29']."' onMouseover=\"RikkiValidInput(idOn_number, /(^[0-9]{1,2}([\-]{1}[0-9]{1,5}){3}$)/, '', 'input-group has-success', 'input-group has-error', '');\">\n</p>\n";

вы перед тем как обвинять в друном тоне повнимательней почитали бы первое сообщение


Изменил(а) Rikki, 26.06.2015 10:04
 
PahaW
Rikki, критика, критика, критика ))
я писал: "на мой взгляд дурной тон", значит что это мое мнение и прислушиваться к нему ваше решение ;)
На счет php кода, что вы привели, я имел совсем другое.

Пример (чтобы код не раздувать):
Загрузить источник  GeSHi: Javascript
  1. add_to_head(
  2. <script>
  3. var errors = {
  4. error1: 'Описание ошибки',
  5. error2: 'Описание ошибки',
  6. error3: 'Описание ошибки',
  7. error4: 'Описание ошибки'
  8. }
  9. </script>
  10. );
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10


Массив один раз загрузили и все, а обращаетесь по элементу массива. Я к тому что форма может быть и сложной из нескольких полей и элементов.

Если посмотреть самый простой вариант для чата )) красиво и место мала занимает.
Скачать исходники  Код
insertText('shout_message', '*THUMBS UP*', 'shout_form');




А забыл сказать про регулярку ее можно занести в другой массив и так же брать из него, опять же при большом количестве элементов, да и чтобы самому не теряться, поправил в одном месте и у тебя во всех нужных местах автоматически подхватывает ;)

перед тем как обвинять

Желаю бобра cs3-2.4pda.to/3051824.png


Изменил(а) PahaW, 26.06.2015 15:08
-----
Лайкай авууууу, авы себя не залайкают
 
Web
Polarfox
PahaW, в js ассоциативных массивов нет, есть некие объекты.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
PahaW
PolarFox, думал про php, вот и результат, подправил!

Кстати, кому будет интересно (ассоциативные массивы):
https://learn.javascript.ru/object
https://toster.ru/q/12635


-----
Лайкай авууууу, авы себя не залайкают
x1
 
Web
Rikki
PahaW, вы предлагаете нагрузить массивов, ради красоты строки внутри скрипта? Не знаю как в js, но в php при использовании массивов еще необходима масса безопасных оберток при их создании и обращении к ним, если честно я просто признаюсь я не представляю возможным организовать безопасную работу с массивами на чистом js, да так чтобы это еще выглядело красиво и в одну коротенькую строчку. Масло масляное шеф. Вторая ссылка вообще не внушает доверия, js такой опасный язык, да еще и в формах, через него могут и взломать, другое дело чат, в котором скорей всего все пишется в txt
Оффтопик PS если бы не было хакеров, то вес любого движка уменьшился бы в половину

я всегда адекватно отношусь к критике, но дискуссию веду в ключе оппонента, докажите мне что предложенные вами методы безопасны и приведите примерный код я с удовольствием воспользуюсь им и выложу исправленный код функции, если ваш БЕЗОПАСНЫЙ код будет красивее и короче

а за идею спасибо я на php кое что сейчас так переделаю

Объединено 27.06.2015 06:58:
PahaW, ну вот я выполнила ваш метод на php (см. скриншот), это 100% безопасно:
Загрузить источник  GeSHi: PHP
  1. public function RikkiTxt($RIA) {
  2. if (!empty($RIA['simple'])) {
  3. echo "<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".(!empty($RIA['value']) ? $RIA['value'] : "")."' ".(!empty($RIA['maxlength']) ? "maxlength='".$RIA['maxlength']."'" : "")." ".(!empty($RIA['placeholder']) ? "placeholder='".$RIA['placeholder']."'" : "")." ".(!empty($RIA['js']) ? $RIA['js'] : "")." ".(!empty($RIA['readonly']) ? "readonly" : "").">\n";
  4. } elseif (!empty($RIA['simpleInGr'])) {
  5. echo "<div id='idDi".$RIA['inputName']."' class='input-group'>\n";
  6. echo "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."</span>\n<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".(!empty($RIA['value']) ? $RIA['value'] : "")."' ".(!empty($RIA['maxlength']) ? "maxlength='".$RIA['maxlength']."'" : "")." ".(!empty($RIA['placeholder']) ? "placeholder='".$RIA['placeholder']."'" : "")." ".(!empty($RIA['js']) ? $RIA['js'] : "")." ".(!empty($RIA['readonly']) ? "readonly" : "").">\n";
  7. echo "</div>\n";
  8. } elseif (!empty($RIA['countInGr'])) {
  9. echo "<div id='idDi".$RIA['inputName']."' class='input-group'>\n";
  10. echo "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."<span id='idSp".$RIA['inputName']."' class='".$RIA['countSpanClass']."'>".($RIA['maxlength']-2)."</span>\n</span>\n<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".(!empty($RIA['value']) ? $RIA['value'] : "")."' ".(!empty($RIA['maxlength']) ? "maxlength='".$RIA['maxlength']."'" : "")." ".(!empty($RIA['placeholder']) ? "placeholder='".$RIA['placeholder']."'" : "")." ".(!empty($RIA['js']) ? $RIA['js'] : "")." ".(!empty($RIA['readonly']) ? "readonly" : "").">\n";
  11. echo "</div>\n";
  12. }
  13. }
Добавлено за 0.035 секунд, используя GeSHi 1.0.8.10

на странице
Загрузить источник  GeSHi: PHP
  1. $wcSSum = array('simpleInGr' => '1', 'inputName' => 'wcSSum', 'spanTitle' => 'wc', 'inputClass' => 'form-control text-center', 'value' => '888', 'maxlength' => '5', 'placeholder' => '', 'js' => '', 'readonly' => '');
  2. echo $RikkiInput->RikkiTxt($wcSSum);
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10

теперь за вами на javasript/jQuery для моей функции, я не знаю как, сразу говорю
или просто предложите свой код а я вот здесь http://javascript... попрошу оценить риски его использования

Rikki присоединено следующее:изображение:
2015-06-27_095301.jpg

Изменил(а) Rikki, 27.06.2015 07:09
 
Polarfox
Rikki, риски по empty
Скачать исходники  Код
var_dump( empty(0) );

bool(true)




еще раз - емпту не замена иссету, и не синоним, это другая функция.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Rikki
PolarFox, а как же:
empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false


вот здесь обсуждаем http://php.ru/for...mp;t=53756

предыдущий код это была болванка, вот окончательный, про empty пока неясно на практике походу никто не выполнял
Загрузить источник  GeSHi: PHP
  1. public function RikkiTxt($RIA) {
  2. if (isset($RIA['pTxt']) && !empty($RIA['pTxt'])) echo "<p".(isset($RIA['pClass']) && !empty($RIA['pClass']) ? " class='".$RIA['pClass']."'" : "").">".$RIA['pTxt']."</p>".PHP_EOL;
  3. if (isset($RIA['simpleInGr'])) {
  4. echo "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL;
  5. echo "<span class='input-group-addon'>".(isset($RIA['spanTitle']) && !empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."</span>".PHP_EOL;
  6. } elseif (isset($RIA['countInGr'])) {
  7. echo "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL;
  8. echo "<span class='input-group-addon'>".(isset($RIA['spanTitle']) && !empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."<span id='idSp".$RIA['inputName']."' class='".$RIA['countSpanClass']."'>".($RIA['maxlength']-2)."</span></span>".PHP_EOL;
  9. }
  10. echo "<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".(isset($RIA['value']) ? $RIA['value'] : "")."'".(isset($RIA['maxlength']) && !empty($RIA['maxlength']) ? " maxlength='".$RIA['maxlength']."'" : "").(isset($RIA['placeholder']) && !empty($RIA['placeholder']) ? " placeholder='".$RIA['placeholder']."'" : "").(isset($RIA['js']) && !empty($RIA['js']) ? " ".$RIA['js'] : "").(isset($RIA['readonly']) && !empty($RIA['readonly']) ? " readonly" : "").">".PHP_EOL;
  11. if (isset($RIA['simpleInGr']) || isset($RIA['countInGr'])) echo "</div>".PHP_EOL;
  12. }
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10


Изменил(а) Rikki, 28.06.2015 09:47
 
lucky
1) конкретно html-разметку под этот js-код можно увидеть?

2) про проверку на php.., мне не понятно для чего делать так:

Скачать исходники  Код
if (isset($RIA['pTxt']) && !empty($RIA['pTxt'])) ...




зачем $RIA['pTxt'] проверять два раза, когда нам нужна конкретно не пустая переменная и не равная нулю, следовательно ИМХО вполне достаточно сделать одну проверку на пустоту:

Скачать исходники  Код
if (!empty($RIA['pTxt'])) ...




даже если $RIA['pTxt'] не существует ошибок ведь не будет и условие нормально отработает,

другое дело, когда нам нужно точно знать, что переменная существует, например, когда кнопку нажал, то тут да, необходимо сделать isset(), иначе нажатая кнопка без значения при проверке empty() не прокатит

или когда сначала нужно узнать существует ли переменная а уже потом проверить её на пустоту.. или же в переменной нужно пропустить "0" empty() не подходит,

ну так зачем в данном случае $RIA['pTxt'] дополнительно проверять на существование?

x1
 
Rikki
lucky, да все уже на php.ru даже уже модеры подключились, всех достала)))
в итоге вот так
Загрузить источник  GeSHi: PHP
  1. public function RikkiTxt($RIA) {
  2. $RikkiTxt = "";
  3. if ($RIA['inputClass'] != 'hide') $RikkiTxt .= "<p".(!empty($RIA['pClass']) ? " class='".$RIA['pClass']."'" : "").">".(!empty($RIA['pTxt']) ? $RIA['pTxt'] : "")."</p>".PHP_EOL;
  4. if (isset($RIA['simpleInGr'])) {
  5. $RikkiTxt .= "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL;
  6. $RikkiTxt .= "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."</span>".PHP_EOL;
  7. } elseif (isset($RIA['countInGr'])) {
  8. $RikkiTxt .= "<div id='idDi".$RIA['inputName']."' class='input-group'>".PHP_EOL;
  9. $RikkiTxt .= "<span class='input-group-addon'>".(!empty($RIA['spanTitle']) ? $RIA['spanTitle'] : "")."<span id='idSp".$RIA['inputName']."' class='".$RIA['countSpanClass']."'>".($RIA['maxlength']-2)."</span></span>".PHP_EOL;
  10. }
  11. $RikkiTxt .= "<input type='text' id='id".$RIA['inputName']."' name='".$RIA['inputName']."' class='".$RIA['inputClass']."' value='".$RIA['value']."'".(!empty($RIA['maxlength']) ? " maxlength='".$RIA['maxlength']."'" : "").(!empty($RIA['placeholder']) ? " placeholder='".$RIA['placeholder']."'" : "").(!empty($RIA['js']) ? " ".$RIA['js'] : "").(!empty($RIA['readonly']) ? " readonly" : "").">".PHP_EOL;
  12. if (isset($RIA['simpleInGr']) || isset($RIA['countInGr'])) $RikkiTxt .= "</div>".PHP_EOL;
  13. return $RikkiTxt;
  14. }
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10

клещами все тянуть нужно эхх:)


Изменил(а) Rikki, 28.06.2015 12:40
 
lucky
lucky, да все уже на php.ru даже уже модеры подключились, всех достала)))


что всё?, типа поезд уехал))

а для чего в конце некоторых строк прилепили ".PHP_EOL;" ?

просто интересуюсь ab

 
Rikki
lucky, ой там такая замута пошла, ну вобщем ты на 100% прав, вот цитирую romachа:
Про empty нужно помнить одну вещь: empty('') или empty('0') вернут true, т.ч. если для вас пустая строка или 0 тоже результат, то лучше в данном случае воспользоваться другим способом. И да, для empty() отсутствие переменной тоже является пустотой, а значит делать доп. проверки isset`ом нет необходимости. Короче, все зависит от ситуации, однозначных решений не бывает )

END OF LINE кросплатформенность, вместо \n или \r\n и тому подобное, не надо заморачиваться просто ".PHP_EOL; и все

Объединено 28.06.2015 15:57:
1) конкретно html-разметку под этот js-код можно увидеть?

Загрузить источник  GeSHi: Javascript
  1. function RikkiValidInput(element, reg, aler, sClass, eClass, clr, idSpan, num) {
  2. if (reg.test(element.value)) {
  3. if (idSpan) {
  4. var count = num - element.value.length;
  5. $(idSpan).html(count);
  6. if (element.value.length <= num) {
  7. element.parentNode.className = sClass;
  8. } else {
  9. element.parentNode.className = eClass;
  10. }
  11. } else {
  12. element.parentNode.className = sClass;
  13. }
  14. } else if (element.value) {
  15. if (clr) {
  16. element.parentNode.className = clr;
  17. element.value = "";
  18. if (idSpan) {
  19. $(idSpan).hide();
  20. }
  21. } else {
  22. element.parentNode.className = eClass;
  23. }
  24. if (aler) {
  25. alert(aler);
  26. }
  27. }
  28. return false;
  29. }
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10

ну вот из исходного кода
Загрузить источник  GeSHi: HTML
  1. <div id="on_title_area" class="input-group">
  2. <span class="input-group-addon"> <span id="11111" class="collapse">50</span>
  3. </span>
  4. <input id="1111" name="on_title_area" type="text" class="form-control text-center" value="" maxlength="52" placeholder="название" ondblclick="clearInput(this, 'input-group', '#11111');" onkeydown="$('#11111').show('slow');" onkeyup="RikkiValidInput(this, /(^[A-ZА-Яa-zа-я0-9№'\(\)\,\.\_\:\s\-]*?$)/, 'Разрешены только русские или латинские буквы, цифры, одинарные кавычки, точка, запятая, двоеточие, дефис, пробел и знаки: № ( _ )', 'input-group has-success', 'input-group has-error', 'input-group', '#11111', '50');"></div>
  5. <p></p>
  6. </div>
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10


Изменил(а) Rikki, 28.06.2015 15:57
 
lucky
lucky, ой там такая замута пошла, ну вобщем ты на 100% прав, вот цитирую romachа:
Про empty нужно помнить одну вещь: empty('') или empty('0') вернут true, т.ч. если для вас пустая строка или 0 тоже результат, то лучше в данном случае воспользоваться другим способом. И да, для empty() отсутствие переменной тоже является пустотой, а значит делать доп. проверки isset`ом нет необходимости. Короче, все зависит от ситуации, однозначных решений не бывает )



Я тут не причём, всего лишь повторил то, что выше написал про empty() PolarFox

END OF LINE кросплатформенность, вместо \n или \r\n и тому подобное, не надо заморачиваться просто ".PHP_EOL; и все


спасибо, понял, значит в данном случае она просто для красоты

про html-разметку.., там только один input ? просто поиск?
с библиотекой jquery я бы примерно так сделал:

html:
Скачать исходники  Код
<form id="form-search">

  <input name="search" type="text" value="" maxlength="50" placeholder="название" />
  <input type="submit" class="btn" value="Искать" />

</form>




js (для работы требуется подключение jquery):


конкретно этот js не проверял (возможно есть синтаксические ошибки), но похожий есть на одном из сайтов, вроде работает нормально

данный js проверяет поле на пустоту, кол-во символов и на допустимые символы, если не проходит проверку полю ввода добавляется класс "error" (например пусть это будет красная рамка), а вверху показывается сообщение(конечно, если оно есть), - блок с классом "messages" (разумеется оформить можно как угодно в стилях)


Изменил(а) lucky, 28.06.2015 19:51
 
PahaW
Rikki, js выполняется на стороне сервера, как вы будете хакать сервер? ))
вот если ajax... тут еще можно согласиться на проверки и взлом )
не нравятся массивы попробуйте через case ), вон как пример lucky сделал для поиска, только выборка ошибок ad
Оффтопик PHP_OEL себе на заметку ay


-----
Лайкай авууууу, авы себя не залайкают
 
Web
Rikki
lucky, PahaW, спасибо, попробую с массивами на js чуть позже, щас правлю свой индусский php
спасибо, понял, значит в данном случае она просто для красоты
получилось автоматически заменой в notepade \n на PHP_EOL, действительно визуально оценить действие перевода строки можно только если писать в файл, а так непонятно зачем fusion везде ставит \n, это отдельная тема по видимому, но мне очень удобно самой видеть где конец строки если в конце стоит PHP_EOL, с моей подсветкой

Rikki присоединено следующее:изображение:
2015-06-29_100047.png
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)