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

Форум Apache

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

 

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

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

тема: htaccess и ЧПУ
 
 автор: speedsoft   (09.11.2009 в 22:43)   письмо автору
 
 

помогите плиз. у меня не передаются POST данные из формы.
В .htaccess у меня есть правило

AddDefaultCharset windows-1251
Options +FollowSymLinks
RewriteEngine on

RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)/index.html$ ?$1=$2&$3=$4 [QSA,L]
RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)/$ ?$1=$2&$3=$4 [QSA,L]
RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)$ ?$1=$2&$3=$4 [QSA,L]


имеется форма находящаяся на виртуальном адресе

  <form id="form1" name="form1" method="post" action="/action/user/regist/1/">
    <h2>Регистрация пользователя</h2>
  
      <input type="text" name="fname" value=""/>
      <input type="password" name="fpass" />
      <input type="submit" name="subregg" value="Зарегистрироваться" />
  </form>


Как видите action ведет на /action/user/regist/1/
но вот беда, когда я делаю var_dump($_REQUEST); тут только GET данные. а POST как будто не передавались. Делаю action="/test.php", т.е. на реальный адрес, тогда все передается. Как сделать правильно правила, чтобы он POST не удалял?

  Ответить  
 
 автор: heed   (10.11.2009 в 16:05)   письмо автору
 
   для: speedsoft   (09.11.2009 в 22:43)
 

попробовал, только добавил
RewriteBase /
и два последних выражения как-бы много, просто в сонце вместо "'/" сделал "/?" типа слеш или есть или его нет

у меня ничего не срезается,
Array
(
[action] => user
[regist] => 1
[fname] => ;;;;;;
[fpass] => lllll
[subregg] => Зарегистрироваться
)

  Ответить  
 
 автор: speedsoft   (10.11.2009 в 16:50)   письмо автору
 
   для: heed   (10.11.2009 в 16:05)
 

О слава и хвала великим!
В смысле, спасибо большое.

:)

  Ответить  
 
 автор: speedsoft   (10.11.2009 в 17:12)   письмо автору
 
   для: speedsoft   (10.11.2009 в 16:50)
 

Блин, это я на локальном проверил :(
А на сервере все равно не работает :'(

  Ответить  
 
 автор: heed   (10.11.2009 в 19:10)   письмо автору
 
   для: speedsoft   (10.11.2009 в 17:12)
 

нужно отлавливать причину, почему не работает

возможно пути в запросах поменялись, возможно вообще не проходит такое в файлах htaccess

удобнее сделать отдельную папку, например я проверял как работает эта форма создав в "/" (корне сайта) папку "test"

и изменял только
RewriteBase /test/

и в index.php
была только одна эта форма где "action" пришлось заменить на
action="/test/action/user/regist/1/"
и кусочек кода
<pre><?php
print_r
($_REQUEST);
?></pre>

в htaccess мне только не понравилось что AddDefaultCharset
в самом верху
, обычно первой строкой идёт
Options

Часто просто проверяю с флагом [R] , чтобы увидеть в адресной строке на что-же заменяется строка запроса

  Ответить  
 
 автор: speedsoft   (11.11.2009 в 00:16)   письмо автору
 
   для: heed   (10.11.2009 в 19:10)
 

RewriteEngine on
RewriteBase /test/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)/index.html$ ?$1=$2&$3=$4 [R]
RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)/$ ?$1=$2&$3=$4 [R]
RewriteRule ^([-a-z]+)/([-0-9a-zA-Z]+)/([-a-z]+)/([-0-9a-zA-Z]+)$ ?$1=$2&$3=$4 [R]


вообще не работает, как будто не преобразует :(

в строке браузера
/test/action/user/regist/1/
и 404

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

  Ответить  
 
 автор: ....   (12.11.2009 в 23:43)
 
   для: speedsoft   (11.11.2009 в 00:16)
 

Options +FollowSymlinks
зря не поставили , обычно по умолчанию эта опция выключена.

Насчёт запрещения включения/выключения опций это в httpd . conf обычно регулируется , диррективой AllowOverride.

  Ответить  
 
 автор: ....   (12.11.2009 в 23:50)
 
   для: speedsoft   (11.11.2009 в 00:16)
 

Проверьте более простым правилом, типа
(.*)$ /?$1 [R]

  Ответить  
Rambler's Top100
вверх

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