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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблемы с передачей данных формой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
dedyshka
Отправлено: 08 Февраля, 2011 - 12:17:07
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




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

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

(Отредактировано автором: 08 Февраля, 2011 - 12:18:06)

 
 Top
OrmaJever Модератор
Отправлено: 08 Февраля, 2011 - 12:32:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Оба условия одинаковые. Можно использовать только одно
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['surname'])){
  2. echo 'переменой нету';
  3. }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
garvey
Отправлено: 08 Февраля, 2011 - 12:59:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Цитата:
выполняет то, что будет в цикле if

IF - это не цикл. IF - это условный оператор.
 
 Top
dedyshka
Отправлено: 08 Февраля, 2011 - 13:09:37
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




OrmaJever пишет:
Оба условия одинаковые. Можно использовать только одно

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

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

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

зы. с английским вариантом или цифрами всё просто прекрасно.

(Отредактировано автором: 08 Февраля, 2011 - 13:46:07)

 
 Top
DiosPA
Отправлено: 08 Февраля, 2011 - 17:00:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




dedyshka
Я не понял тебе надо сделать? Огорчение

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

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


попробуй сначала только проверкой !isset($_POST['surname']) а потом если что можно * обычно и нужно на длину проверить текст мол что strlen($_POST['surname']) > 5 (к примеру)
 
 Top
dedyshka
Отправлено: 08 Февраля, 2011 - 22:40:05
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




DiosPA пишет:
dedyshka
Я не понял тебе надо сделать?

.php-сценарий показывает, что русский текст не передаётся вышеуказанным способом)
 
 Top
OrmaJever Модератор
Отправлено: 08 Февраля, 2011 - 22:53:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




dedyshka это как так? Не понял Что если ввести в поле руский текстто переменая $_POST['surname'] пустая?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
voskan
Отправлено: 08 Февраля, 2011 - 23:06:22
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. if(empty($surname))
  3. {
  4. echo "Заполните все поля";
  5. exit;//остановливаем скрипт
  6. }
  7.  
  8.  

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

так как при таком случае ты запрашиваешь то что не объявлял

(Отредактировано автором: 08 Февраля, 2011 - 23:08:53)

 
 Top
dedyshka
Отправлено: 08 Февраля, 2011 - 23:09:38
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




OrmaJever
да, именно так..у меня стоит условие if :
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['surname'])) {
  2.         echo file_get_contents('translate_md5.html');
  3.         die();
  4. }

и когда вводишь именно русский текст, открывается снова файл translate_md5.html.
(Добавление)
voskan
Переменная правильная)) я же написал, что при вводе латинских символов и цифр всё работает)
 
 Top
voskan
Отправлено: 08 Февраля, 2011 - 23:13:30
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




тогда попробуй кодировку перевести в другую может поможет.
но такая проблема бывает при записи в базу когда пустоту записывает если кодировки не сходяться а вот на счет формы никогда не встречал такое Улыбка
 
 Top
OrmaJever Модератор
Отправлено: 08 Февраля, 2011 - 23:36:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Ну дак выведите перед формой эту перменую


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dedyshka
Отправлено: 10 Февраля, 2011 - 23:09:29
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




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

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

(Отредактировано автором: 11 Февраля, 2011 - 00:18:34)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB