Jump to content

Serafim1991

User
  • Posts

    64
  • Joined

  • Last visited

Everything posted by Serafim1991

  1. Есть вот такой скрипт: Скрипт работает вполне нормально(мне пока хватает). Но как обычно без "НО" не обошлось. Есть 2 условия: 1. if(!ctype_alnum($lg)|| strlen($lg) < 6) { $ErrorString.= '<span><b> - Логин:</b> некорректно заполенное поле</span><br>'; $formErr= true; $errlg=true; } 2. if(!ctype_alnum($pw)|| strlen($pw) < 6) { $ErrorString.= '<span><b> - Пароль:</b> некорректно заполенное поле</span><br>'; $formErr= true; $errps=true; } которые немного портят всю картину. Если оба эти условия активны(не закомментированы), то текст на странице отображается крокозябликами. Если одного из условий(или оба) закомментированы при помощи символов "//", то так же отображаются крокозябры. Но если одно из условий(или оба) закомментированы при помощи "/* */" - то текст отображается нормально. Условия правильно написаны(иначе бы проверка не происходила), но почему происходит именно так - не могу понять. Может, кто знает в чем проблема P.S. вариант решения типа "удалить одно из условий" я пока что использую, для того, чтобы на странице все отображалось нормально, но оставлять так не хочется. Да и проблема есть(причем непонятно почему) и хотелось бы ее решить. P.P.S. если нужны еще какие-то данные - говорите, поделюсь.
  2. Да, работает. Спасибо.
  3. Меня пока устраивает вариант, описанный во втором сообщении. Но до сих пор очень интересно - почему же на jsfiddle.net мой скрипт работает нормально, а на форме - нет. Хотя все действия - идентичны.
  4. Я с ИЕ не дружу вообще. Он все портит) Ну или просто я не умею его готовить. Все проверялось в Хроме, но не работало(
  5. Не работает подмена полей http://jsfiddle.net/NTrbx/ Должно быть: если чекбокс установлен, то вместо символов "*" в поле "Пароль" выводятся сами символы(цифры или буквы, не важно). Иначе - символы "*" И вроде как все правильно, но не работает подмена, хоть ты тресни. UPD: на jsfiddle работает при подключении любой из версий jQuery, но вот на форме - отказывается работать. Вот полный код формы(php код я убрал. Может проблема в нем?)
  6. Как-то так http://jsfiddle.net/8SsMH/ Чтобы картинка подсвечивалась - не знаю как. Поэтому просто добавил изменение курсора при наведении. Если не нужно - то label:hover { cursor: pointer; }? можно удалить. Но тогда сложнее понять, что radiobutton можно выбрать кликнув на картинку
  7. Чтобы не создавать новую тему, спрошу тут. $ErrorString. и echo поддаются css стилизации? Т.е. можно ли этой строке $ErrorString="Ошибка"; задать какие-то свойства используя css? Например padding. Или color. Или какие-либо другие.
  8. Я как-то не подумал, что им можно заменить ctype_alpha. Да, это то, что я хотел. Спасибо за терпение и советы.
  9. Вы не совсем поняли. Я не использую preg_match Я просто привел его как эквивалентную функцию для ctype_alpha
  10. Сама функция - да. Если я правильно понял работу ctype_alpha, то эта функция эквивалентна preg_match("[a-zA-Z]") (в синтаксисе может ошибся, но суть думаю ясна). Т.е. проверяет только английские буквы А чтобы ctype_alpha проверяло русские буквы, перед ней нужно написать setlocale(LC_ALL, 'Russian_Russia.1251'); Так вот, в этом случае setlocale не хочет работать. Немного сумбурно, но, надеюсь, понятно описал. Функция применяется не для поля name. Она применяется для самописной функции NameVal, которая проверяет 4 поля: имя, фамилию, адрес и страну. Он же(пример) работает только для одного поля. Если вдруг добавятся новые, подобные полю name поля, то для них придется описывать это отдельно. А так, если есть готовая функция, которая проверяет такие поля, то можно не описывать для каждого поля отдельно проверку. Конечно, если не получится заставить setlocale работать, то придется использовать ваш вариант И еще парочка моментов 1. $ErrorString.= "<b id="error1">** Телефон: поле может содержать только цифры. **</b><br>"; Почему так нельзя делать? Если так написать, то обработчик попросту не запускается. 2. <textarea id="nazva" rows="4" name="nazva" value="<?php echo $nz; ?>" placeholder="Восточноукраинский национальный университет имени В. Даля" required></textarea> Для textarea не работает запоминание введенного текста? Или я что-то неправильно написал? В php файле nz описана $nz = trim($_REQUEST["nazva"]);
  11. Чтобы была возможность вводить русские символы. Сейчас - при вводе любых русских символов в любое поле будет ошибка. Например, если ввести "Сергей" - будет ошибка, имя будет считаться некорректным. Если ввести "Sergey" - ошибки не будет. Нужно, чтобы при вводе "Сергей" не было ошибок и имя считалось корректным.
  12. Я пробовал Russian_Russia.1251 писать. Все равно если вводить данные в какое-либо из полей русскими буквами - данные не принимаются, выдается ошибка.
  13. Да, в качестве примера как раз то что нужно. Он натолкнул меня на кое-какие мысли. С проверкой вроде разобрался. А вот почему не хочет работать setlocale - не знаю.
  14. Не-не, это не для поля name. Вернее, функция для этого поля, но вопрос не про name. Это для поля адреса. Хотя, возможно вы правы и не стоит так извращаться. Это же не полноценный сайт. Да нет, в той же папке. Я думал, что неправильно подключил, но раз претензий нет, значит ошибка где-то в другом месте. Просто не хочется оставлять php и html код в одном файле. Возможно, это моя ошибка, но мне гораздо удобнее, ежели каждый код(php, JS, html, css, etc) будет находится в отдельном файле. Все объясняется очень просто - они у меня не работают. Например: $name=$_POST['name']; if (!preg_match("|^[\w\d\. ]+$|i",$name)) echo ("Неверный формат имени"); выводит ошибку при любых символах. $email=$_POST['email']; if(!preg_match("|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i", $email)) echo("Неверный формат E-mail"); проверяет только чтобы были символы перед собачкой, сама собачка и после собачки. Можно написать test@test - и это будет правильным, по мнению условия, email адресом.
  15. С инклудом не понял(перед тегом form написал <?php include("PhpScript.php"); ?>, action оставил пустым - но ничего не вышло). Поэтому я просто взял код формы и добавил в php-файл после самого php-кода От регексов решил отказаться, оставил старую версию(слегка модифицированную). Остался только два момента: function NameVal(&$src, $nametype){ global $ErrorString; global $formErr; if(empty($src)){ $ErrorString.= "<b>** $nametype незаполненное поле. **</b><br>"; $err=true; $formErr= true; }else{ setlocale(LC_ALL,'Russian_Russia.1251'); $str="Русский"; $src = ucfirst($src); if(!ctype_alpha($src)){ $ErrorString.= "<b>** $nametype имеются некорректные символы. **</b><br>"; $err=true; $formErr= true; } } return $err; } функция работает корректно там, где нужно проверять символы на буквы(если не буквы - выводить ошибку). Но мне мешает "ctype_alpha". Ну как мешает - он свою работу делает, но не пропускает такие символы как точка, запятая и пробел. Есть что-то похожее, что будет разрешать вводить точку, запятую и пробел не используя условия if как в проверке e-mail'а? И второй момент: setlocale(LC_ALL,'Russian_Russia.1251'); - отказывается работать. Пробовал разные способы: setlocale(LC_ALL,"rus.1251"); setlocale(LC_ALL,"rus"); setlocale(LC_ALL,"russian"); (кавычки использовал как одинарные, так и двойные - результат один и тот же) На русские буквы он ругается сообщением о недопустимых символах. Что здесь не так?
  16. Ну на первый вопрос мне ответили. Описать переменные я описал, но не использовал их. Про текст - это так, по мелочи, ибо тот вывод, который я себе представляю, самолично я сделать не могу, а просить сделать его за меня я как-то стесняюсь(в свои-то 21 и стесняюсь... Позор мне) Валидацию я вроде как прошел(валидатор показал только одно предупреждение) Насчет exit - буду знать, спасибо За ссылку благодарен, почитаю на досуге. P.S. прочитать личное сообщение не могу, нет 30 сообщений.
  17. Бьюсь-бьюсь, но результата все нет. Вернее есть, только отрицательный. В голову пришла следующая мысль: а не проще ли сделать ту же самую проверку используя цикл if и регексы? И правда, не проще ли так будет? Что-то типа(код не мой, спер у товарища): <?php $name=$_POST['name']; $password=$_POST['password']; $email=$_POST['email']; $message=$_POST['message']; $url=$_POST['url']; if (!preg_match("|^[\w\d\. ]+$|i",$name)) exit ("Неверный формат имени"); if(!preg_match("|^[\w\d\. ]+$|i", $password)) exit("Неверный формат пароля"); if(!preg_match("|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i", $email)) exit("Неверный формат E-mail"); if(!preg_match("|^[^';]+$|i", $message)) exit("Неверный формат E-mail"); if(!preg_match("#http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*'%$]*\.(html?|php|pl|cgi|ru)#i", $url)) exit("Неверный формат URL"); ?>
  18. плохая практика, я бы не советовал. Лучше пустым оставить, или ".", смотря по доктайпу. А можно обоснование? Я, к примеру, не знаю, почему "можно и так и так, но лучше так"
  19. Спасибо большое за код. Постараюсь подкорректировать под нужды без посторонней помощи. Однако есть один небольшой вопрос: можно ли организовать редирект после нажатия на кнопку Submit на ту же страницу с формой с выводом ошибок где-то справа?
  20. Насчет первого пункта: тамошняя проверка происходит только на наличие каких-либо символов в поле(практически для каждого инпута я добавил свойство "required"). В поле "Имя" можно ввести "!%?:1sdsd;:" и форма посчитает это правильным именем Насчет второго, третьего и четвертого - получается, что я взял только список переменных и просто их объявил без какого-либо использования? Ужас, вот так и копируй чужие скрипты... Спасибо.
  21. Держите http://dump.ru/file/5680538
  22. Есть форма, в которую подключается php-скрипт проверки правильности ввода данных(скрипт не дописан на все поля, но не суть) При запуске формы через WebMatrix после нажатия на кнопку Submit идет перенаправление либо на страницу скрипта с выводом его текста(localhost:8080/PhpScript.php в адресной строке и текст этого файла в окне браузера), либо на пустую страницу(localhost:8080/PhpScript.php и пустая страница в окне браузера) Собственно вопрос: скрипт не делает никаких действий(хотя, судя по написанному должен ругаться как минимум на 2 поля). В чем проблема? В какую сторону копать, чтобы эту ошибку исправить? P.S. архив с файлами - http://d01.megashares.com/dl/HmTbP8d/LB1_IIS.rar jQuery подключен локально(мне так удобнее) P.P.S. это исходная версия, поэтому в ней может быть ошибка в php-файле на 8 и 129 строчках(решается простым закомментированием этих строк, но почему она появляется для меня тоже загадка)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy