|
|
|
| помогите плиз. у меня не передаются 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 не удалял? | |
|
|
|
|
|
|
|
для: speedsoft
(09.11.2009 в 22:43)
| | попробовал, только добавил
RewriteBase /
и два последних выражения как-бы много, просто в сонце вместо "'/" сделал "/?" типа слеш или есть или его нет
у меня ничего не срезается,
Array
(
[action] => user
[regist] => 1
[fname] => ;;;;;;
[fpass] => lllll
[subregg] => Зарегистрироваться
) | |
|
|
|
|
|
|
|
для: heed
(10.11.2009 в 16:05)
| | О слава и хвала великим!
В смысле, спасибо большое.
:) | |
|
|
|
|
|
|
|
для: speedsoft
(10.11.2009 в 16:50)
| | Блин, это я на локальном проверил :(
А на сервере все равно не работает :'( | |
|
|
|
|
|
|
|
для: 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] , чтобы увидеть в адресной строке на что-же заменяется строка запроса | |
|
|
|
|
|
|
|
для: 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] | |
|
|
|