Jump to content
  • 0

Проверка введенных данных


Serafim1991
 Share

Question

Есть форма, в которую подключается 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 строчках(решается простым закомментированием этих строк, но почему она появляется для меня тоже загадка)

Link to comment
Share on other sites

Recommended Posts

  • 0

Я пробовал Russian_Russia.1251 писать. Все равно если вводить данные в какое-либо из полей русскими буквами - данные не принимаются, выдается ошибка.

ээм, а для чего вам это вообще? то есть что должно быть на выходе?

Link to comment
Share on other sites

  • 0

Чтобы была возможность вводить русские символы.

Сейчас - при вводе любых русских символов в любое поле будет ошибка.

Например, если ввести "Сергей" - будет ошибка, имя будет считаться некорректным. Если ввести "Sergey" - ошибки не будет.

Нужно, чтобы при вводе "Сергей" не было ошибок и имя считалось корректным.

Link to comment
Share on other sites

  • 0

Чтобы была возможность вводить русские символы.

Сейчас - при вводе любых русских символов в любое поле будет ошибка.

Например, если ввести "Сергей" - будет ошибка, имя будет считаться некорректным. Если ввести "Sergey" - ошибки не будет.

Нужно, чтобы при вводе "Сергей" не было ошибок и имя считалось корректным.

Ну как бы эта ф-ция не для этого предназначена, или я вас не совсем понимаю...

Зачем для поля name вообще применять эту ф-цию?

Выше я же привел пример для валидации имени, чем он вас не устраивает?

Link to comment
Share on other sites

  • 0

Ну как бы эта ф-ция не для этого предназначена, или я вас не совсем понимаю...

Сама функция - да.

Если я правильно понял работу ctype_alpha, то эта функция эквивалентна

preg_match("[a-zA-Z]")

(в синтаксисе может ошибся, но суть думаю ясна). Т.е. проверяет только английские буквы

А чтобы ctype_alpha проверяло русские буквы, перед ней нужно написать


setlocale(LC_ALL, 'Russian_Russia.1251');

Так вот, в этом случае setlocale не хочет работать.

Немного сумбурно, но, надеюсь, понятно описал.

Зачем для поля name вообще применять эту ф-цию?

Функция применяется не для поля 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"]);

Edited by Serafim1991
Link to comment
Share on other sites

  • 0

Если я правильно понял работу ctype_alpha, то эта функция эквивалентна

preg_match("[a-zA-Z]")

(в синтаксисе может ошибся, но суть думаю ясна). Т.е. проверяет только английские буквы

А чтобы ctype_alpha проверяло русские буквы, перед ней нужно написать


setlocale(LC_ALL, 'Russian_Russia.1251');

Чтобы Было хорошо то надо не от a до z, a от а до я, т.е.:


preg_match("[a-zA-Zа-яА-Я]")

Link to comment
Share on other sites

  • 0

Чтобы не создавать новую тему, спрошу тут.

$ErrorString. и echo поддаются css стилизации?

Т.е. можно ли этой строке


$ErrorString="Ошибка";

задать какие-то свойства используя css? Например padding. Или color. Или какие-либо другие.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • 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