Serafim1991
User-
Posts
64 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Serafim1991
-
Есть вот такой скрипт: Скрипт работает вполне нормально(мне пока хватает). Но как обычно без "НО" не обошлось. Есть 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. если нужны еще какие-то данные - говорите, поделюсь.
-
Да, работает. Спасибо.
-
Меня пока устраивает вариант, описанный во втором сообщении. Но до сих пор очень интересно - почему же на jsfiddle.net мой скрипт работает нормально, а на форме - нет. Хотя все действия - идентичны.
-
http://htmlbook.ru/css/background
-
Я с ИЕ не дружу вообще. Он все портит) Ну или просто я не умею его готовить. Все проверялось в Хроме, но не работало(
-
Не работает подмена полей http://jsfiddle.net/NTrbx/ Должно быть: если чекбокс установлен, то вместо символов "*" в поле "Пароль" выводятся сами символы(цифры или буквы, не важно). Иначе - символы "*" И вроде как все правильно, но не работает подмена, хоть ты тресни. UPD: на jsfiddle работает при подключении любой из версий jQuery, но вот на форме - отказывается работать. Вот полный код формы(php код я убрал. Может проблема в нем?)
-
Как-то так http://jsfiddle.net/8SsMH/ Чтобы картинка подсвечивалась - не знаю как. Поэтому просто добавил изменение курсора при наведении. Если не нужно - то label:hover { cursor: pointer; }? можно удалить. Но тогда сложнее понять, что radiobutton можно выбрать кликнув на картинку
-
Вот так? http://jsfiddle.net/nEgYG/1/
-
Чтобы не создавать новую тему, спрошу тут. $ErrorString. и echo поддаются css стилизации? Т.е. можно ли этой строке $ErrorString="Ошибка"; задать какие-то свойства используя css? Например padding. Или color. Или какие-либо другие.
-
Я как-то не подумал, что им можно заменить ctype_alpha. Да, это то, что я хотел. Спасибо за терпение и советы.
-
Вы не совсем поняли. Я не использую preg_match Я просто привел его как эквивалентную функцию для ctype_alpha
-
Сама функция - да. Если я правильно понял работу 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"]);
-
Чтобы была возможность вводить русские символы. Сейчас - при вводе любых русских символов в любое поле будет ошибка. Например, если ввести "Сергей" - будет ошибка, имя будет считаться некорректным. Если ввести "Sergey" - ошибки не будет. Нужно, чтобы при вводе "Сергей" не было ошибок и имя считалось корректным.
-
Я пробовал Russian_Russia.1251 писать. Все равно если вводить данные в какое-либо из полей русскими буквами - данные не принимаются, выдается ошибка.
-
Да, в качестве примера как раз то что нужно. Он натолкнул меня на кое-какие мысли. С проверкой вроде разобрался. А вот почему не хочет работать setlocale - не знаю.
-
Не-не, это не для поля 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 адресом.
-
С инклудом не понял(перед тегом 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"); (кавычки использовал как одинарные, так и двойные - результат один и тот же) На русские буквы он ругается сообщением о недопустимых символах. Что здесь не так?
-
Ну на первый вопрос мне ответили. Описать переменные я описал, но не использовал их. Про текст - это так, по мелочи, ибо тот вывод, который я себе представляю, самолично я сделать не могу, а просить сделать его за меня я как-то стесняюсь(в свои-то 21 и стесняюсь... Позор мне) Валидацию я вроде как прошел(валидатор показал только одно предупреждение) Насчет exit - буду знать, спасибо За ссылку благодарен, почитаю на досуге. P.S. прочитать личное сообщение не могу, нет 30 сообщений.
-
Бьюсь-бьюсь, но результата все нет. Вернее есть, только отрицательный. В голову пришла следующая мысль: а не проще ли сделать ту же самую проверку используя цикл 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"); ?>
-
плохая практика, я бы не советовал. Лучше пустым оставить, или ".", смотря по доктайпу. А можно обоснование? Я, к примеру, не знаю, почему "можно и так и так, но лучше так"
-
Спасибо большое за код. Постараюсь подкорректировать под нужды без посторонней помощи. Однако есть один небольшой вопрос: можно ли организовать редирект после нажатия на кнопку Submit на ту же страницу с формой с выводом ошибок где-то справа?
-
Насчет первого пункта: тамошняя проверка происходит только на наличие каких-либо символов в поле(практически для каждого инпута я добавил свойство "required"). В поле "Имя" можно ввести "!%?:1sdsd;:" и форма посчитает это правильным именем Насчет второго, третьего и четвертого - получается, что я взял только список переменных и просто их объявил без какого-либо использования? Ужас, вот так и копируй чужие скрипты... Спасибо.
-
Держите http://dump.ru/file/5680538
-
Есть форма, в которую подключается 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 строчках(решается простым закомментированием этих строк, но почему она появляется для меня тоже загадка)