Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблемы с передачей данных формой
Форумы портала PHP.SU » PHP » Программирование на PHP » Проблемы с передачей данных формой

Страниц (1): [1]
 

1. dedyshka - 08 Февраля, 2011 - 12:17:07 - перейти к сообщению
Здравствуйте. У меня следующая проблема:
Есть форма, передающая два поля типа text. И есть .php-сценарий, который проверяет эти поля с помощью
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['surname'])||empty($_POST['surname']))

Вопрос: почему когда вводятся русские буквы, сценарий выполняет то, что будет в цикле if, когда условие по идее не выполняются (значение $_POST есть и оно не пустое)?
2. OrmaJever - 08 Февраля, 2011 - 12:32:29 - перейти к сообщению
Оба условия одинаковые. Можно использовать только одно
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['surname'])){
  2. echo 'переменой нету';
  3. }
3. garvey - 08 Февраля, 2011 - 12:59:51 - перейти к сообщению
Цитата:
выполняет то, что будет в цикле if

IF - это не цикл. IF - это условный оператор.
4. dedyshka - 08 Февраля, 2011 - 13:09:37 - перейти к сообщению
OrmaJever пишет:
Оба условия одинаковые. Можно использовать только одно

Ну я думал, что при нажатии submit и пустом поле передаётся пустая переменная, но она передаётся.
Но тем не менее проблема всё-таки не в этом)
Спасибо.)
(Добавление)
garvey пишет:
Цитата:
выполняет то, что будет в цикле if

IF - это не цикл. IF - это условный оператор.

я подразумеваю, что после проверки isset и empty в самом условии if у меня стоит только загрузка обратно формы. А при вводе русских букв у меня как раз и загружается обратно форма. Сценарий как-будто русские буквы принимает за пустые поля.

зы. с английским вариантом или цифрами всё просто прекрасно.
5. DiosPA - 08 Февраля, 2011 - 17:00:56 - перейти к сообщению
dedyshka
Я не понял тебе надо сделать? Огорчение

или подумав Улыбка

Цитата:
... сценарий выполняет то, что будет в цикле if, когда условие по идее не выполняются (значение $_POST есть и оно не пустое)?


попробуй сначала только проверкой !isset($_POST['surname']) а потом если что можно * обычно и нужно на длину проверить текст мол что strlen($_POST['surname']) > 5 (к примеру)
6. dedyshka - 08 Февраля, 2011 - 22:40:05 - перейти к сообщению
DiosPA пишет:
dedyshka
Я не понял тебе надо сделать?

.php-сценарий показывает, что русский текст не передаётся вышеуказанным способом)
7. OrmaJever - 08 Февраля, 2011 - 22:53:04 - перейти к сообщению
dedyshka это как так? Не понял Что если ввести в поле руский текстто переменая $_POST['surname'] пустая?
8. voskan - 08 Февраля, 2011 - 23:06:22 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. if(empty($surname))
  3. {
  4. echo "Заполните все поля";
  5. exit;//остановливаем скрипт
  6. }
  7.  
  8.  

(Добавление)
ищи ошибку наверно имя переменной в форме не правильная и до обработчика не доходит

так как при таком случае ты запрашиваешь то что не объявлял
9. dedyshka - 08 Февраля, 2011 - 23:09:38 - перейти к сообщению
OrmaJever
да, именно так..у меня стоит условие if :
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['surname'])) {
  2.         echo file_get_contents('translate_md5.html');
  3.         die();
  4. }

и когда вводишь именно русский текст, открывается снова файл translate_md5.html.
(Добавление)
voskan
Переменная правильная)) я же написал, что при вводе латинских символов и цифр всё работает)
10. voskan - 08 Февраля, 2011 - 23:13:30 - перейти к сообщению
тогда попробуй кодировку перевести в другую может поможет.
но такая проблема бывает при записи в базу когда пустоту записывает если кодировки не сходяться а вот на счет формы никогда не встречал такое Улыбка
11. OrmaJever - 08 Февраля, 2011 - 23:36:23 - перейти к сообщению
Ну дак выведите перед формой эту перменую
12. dedyshka - 10 Февраля, 2011 - 23:09:29 - перейти к сообщению
php почему-то не хочется выводить русский текст, даже не спасает перебирание кодировок в браузере. Может и поэтому проблемы с передачей русских символов формой?

зы. хех. Это всё из-за zend studio и кодировки файлов..так и знал, что надо было писать в любимом простеньком редакторе..

 

Powered by ExBB FM 1.0 RC1