Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ка вписать UrlEncode в форму?
 
 автор: Freddie_X   (07.02.2008 в 16:02)   письмо автору
 
 

В форме (метод POST) есть такое поле:
<input name="login" type="text" value="" size="26" maxlength="20">
Как мне передаваемое значение из этого поля закодировать с помощью urlencode?

   
 
 автор: bronenos   (07.02.2008 в 17:05)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 16:02)
 

оно само

   
 
 автор: Freddie_X   (07.02.2008 в 18:16)   письмо автору
 
   для: bronenos   (07.02.2008 в 17:05)
 

Не понял...
Можно пример, куда писать urlencode?

   
 
 автор: bronenos   (07.02.2008 в 19:35)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 18:16)
 

браузер позаботится о форме

   
 
 автор: Freddie_X   (07.02.2008 в 20:06)   письмо автору
 
   для: bronenos   (07.02.2008 в 19:35)
 

Но мой скрипт тогда не работает!
Эта тема является продолжением данной темы http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=49093&page=1
Регулярное выражение не распознаёт русские буквы из поля, и если строка содержит хоть 1 символ кирилицы, РВ возвращает FALSE.
Поэтому надо закодировать данные из поля, а потом раскодировать....

   
 
 автор: bronenos   (07.02.2008 в 20:40)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 20:06)
 

Так и сказали бы, что не про поле речь..
<?=urlencode("")?>

   
 
 автор: Freddie_X   (07.02.2008 в 21:18)   письмо автору
 
   для: bronenos   (07.02.2008 в 20:40)
 

Передающий скрипт:
<input name="login" type="text" value="<?php echo urlencode(""); ?>" size="26" maxlength="20">

Принимающий:
<?php $login urldecode($_POST['login']); ?>

Странно, но не работает! Т.е. 0 реакции на изменение.

   
 
 автор: bronenos   (07.02.2008 в 21:24)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 21:18)
 

не нужно нафих ее декодировать
и зачем ее вообще.. пфф.. разбирайтесь сами если не можете без этого

но я так считаю что это лишнее

   
 
 автор: Freddie_X   (07.02.2008 в 22:13)   письмо автору
 
   для: bronenos   (07.02.2008 в 21:24)
 

Ну так скажите, каким другим способом это сделать? Что делать, если preg_match() не распознаёт русский язык? =\

   
 
 автор: rusty_angel   (08.02.2008 в 16:20)
 
   для: Freddie_X   (07.02.2008 в 22:13)
 

set_locale('ru_RU');

   
 
 автор: kasmanaft   (07.02.2008 в 22:17)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 21:18)
 

> 0 реакции на изменение.
Потому что в скрипт поступает уже декодированная строка. Смысла делать это еще раз нет.

> Что делать, если preg_match() не распознаёт русский язык?
Может быть текст в другой кодировке приходит?
Попробуйте помимо <meta ...> послать HTTP заголовки, определяющие кодировку.

   
 
 автор: Freddie_X   (07.02.2008 в 22:20)   письмо автору
 
   для: kasmanaft   (07.02.2008 в 22:17)
 

Ну тогда я вообще не понимаю, как заставить рег.выр. работать с русским языком ;-(((
====
Спасибо, Космонавт! Хеадер помог!

   
 
 автор: jbs   (07.02.2008 в 22:51)   письмо автору
 
   для: Freddie_X   (07.02.2008 в 22:20)
 

.

   
 
 автор: Faraon   (07.02.2008 в 22:55)   письмо автору
 
   для: jbs   (07.02.2008 в 22:51)
 

Это к чему?

   
 
 автор: jbs   (07.02.2008 в 22:56)   письмо автору
 
   для: jbs   (07.02.2008 в 22:51)
 

> Что делать, если preg_match() не распознаёт русский язык? =\
Немогу понять, почему не распознаёт? старая версия PHP?
Или я чего-то непонял?

У меня это работает, на PHP5

x.php

<?
if(isset($_POST['rusStr'])) {

  if (
$i preg_match ("/[а-я]/i"$_POST['rusStr']))
  {
    echo 
"подходит";
  }
  else
  {
    echo 
"не подходит";
  }
  exit();
}
?>

<form action="x.php" method="post">
<input name="rusStr" value="Чебурашка">
<input type="submit" value="OK">
</form>
<br>
<form action="x.php" method="post">
<input name="rusStr" value="Terminator">
<input type="submit" value="OK">
</form>


блин, вчитался =)
>Эта тема является продолжением данной темы http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=49093&page=1

   
 
 автор: jbs   (08.02.2008 в 03:28)   письмо автору
 
   для: jbs   (07.02.2008 в 22:56)
 

> http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=49093&page=1
Всё работает, и нечего не надо кодировать!.

x.php

<?php
if(isset($_POST['ins0']))

  for (
$i=0$i<7$i++)
  {
    
$wrd $_POST["ins$i"];
    
//автор: Faraon   (01.02.2008 в 09:42)
    
if (preg_match("/^(([a-z0-9_\(\)\s]+)|([а-яё0-9_\(\)\s]+))$/is"$wrd))
    { 
      echo 
"<p>$wrd - да</p>"
    } 
    else 
    { 
      echo 
"<p>$wrd - нет</p>"
    } 
  }
  exit();
}
?> 
<form action="x.php" method="post"> 
<input name="ins0" value="абв"><br>
<input name="ins1" value="abc"><br>
<input name="ins2" value="абвabc"><br>
<input name="ins3" value="abcабв"><br>
<input name="ins4" value="абв abc"><br>
<input name="ins5" value="abc абв"><br>
<input name="ins6" value="абв ёпр Ёё Яя Чч"><br>
<input type="submit" value="Проверить"> 
</form> 

   
 
 автор: rusty_angel   (08.02.2008 в 16:23)
 
   для: Freddie_X   (07.02.2008 в 16:02)
 

enctype у формы указать.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования