2013-08-14 3 views
0

Я делаю сайт на PHP, все работает нормально, но когда я изменил метод post post form .htaccess, вы не отправляете данные.данные не публикуются после изменения .htaccess

файл .htaccess (я нашел это на stackoverflow.com)

#Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## don't touch /forum URIs 
RewriteRule ^forums/ - [L,NC] 

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

форма

<form method="post" id="form" action="view_images.php"> 
    <input type="text" name="img" value="images/1.jpg" id="img_name" /> 
    <input type="submit" id="submit" value="submit" /> 
</form> 

какие-либо идеи, что не так?

+0

Вы знаете, разрешен ли файл «view_images.php»? Что я имею в виду, попробуйте перейти непосредственно к «view_images.php» в своем браузере. Возможно, добавьте строку отладки и повторите ее. Я предполагаю, что один из ваших RewriteRule сломан и предотвращает загрузку view_images.php. –

+0

view_images.php загружается, но переменная $ _POST ['img'] показывается пустой. –

ответ

0

Это правило:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L] 

вызывает ваш запрос POST для view_images.php быть перенаправлены на view_images, и, таким образом, вы потеряете тело запроса (все ваши Отправленные данные). Вы не хотите вызывать перенаправление, поэтому не отправляйте POST на адрес view_images.php. Удалите часть .php так, чтобы она не перенаправлялась:

<form method="post" id="form" action="view_images"> 
    <input type="text" name="img" value="images/1.jpg" id="img_name" /> 
    <input type="submit" id="submit" value="submit" /> 
</form> 
Смежные вопросы