Итак, вот моя проблема подвела итог:
У меня есть эта форма (на примере X для примера), которая отправляет данные на страницу обработки, адрес которой является URL-адресом, отображаемым Apache RewriteAlias. Этот URL-адрес действия формы содержит ключ хэша сеанса в качестве запроса GET, который требуется для его прохождения, и это изменяется при каждой загрузке страницы для каждого пользователя. Этот хэш сеанса не изменяется, когда вы находитесь на странице обработки. Обычно это проходило, но в этом случае это не так.
Через некоторое время выяснилось, что наиболее вероятная причина этого заключается в том, что сопоставленный URL-адрес должен был перенаправляться через страницы каким-то образом, когда Apache обработал файл.htaccess, содержащий все условия перезаписи, и изменил хэш-ключ сеанса на сопоставленной странице X. Я узнал об этом, когда использовал оригинальный немаркированный URL-адрес этой страницы X (который был бы index.php? Snowglobe = {snowglobe} в отличие от /sg/{snowglobe}. Я не знаю, что заставляет отображаемый URL-адрес измените хэш сеанса, и в этом случае, как исправить эту проблему.
Фрагмент PHP, содержащий хэш сеанса
if(!isset($_GET['verify'])){ $_SESSION['temp_n'] = md5(microtime(true));} //this changes at every page except the processing page
Файл.htaccess
RewriteEngine On
RewriteRule ^profile/([A-Za-z0-9]+)/?$ index.php?profile=$1 [PT]
RewriteRule ^thread/([-_A-Za-z0-9]+)/?$ index.php?thread_view=$1 [PT]
RewriteRule ^profile_nuise/([-_A-Za-z0-9]+)/?$ index.php?query=$1 [PT]
RewriteRule ^profile_nuise/([-_A-Za-z0-9]+)/notifs/?$ index.php?query=$1¬ifs=all [PT]
RewriteRule ^profile_nuise/([-_A-Za-z0-9]+)/find/([A-Za-z_-]+)/?$ index.php?query=$1&find=$2 [PT]
RewriteRule ^profile_nuise/([-_A-Za-z0-9]+)/find/([A-Za-z_-]+)/?$ index.php?find=$2&query=$1 [PT]
RewriteRule ^profile_nuise/([-_A-Za-z0-9]+)/find/([A-Za-z_-]+)/submit index.php?find=$2&query=$1&direct=$2_submit [PT]
RewriteRule ^thread/([-_A-Za-z0-9]+)/comment/([a-z0-9]+)/?$ index.php?comment=$2&thread_view=$1 [PT]
RewriteRule ^thread/([-_A-Za-z0-9]+)/comment/([a-z0-9]+)/?$ index.php?thread_view=$1&comment=$2 [PT]
RewriteRule ^sg/([-_A-Za-z0-9]+)/?$ index.php?snowglobe=$1 [PT]
Форма HTML
echo "<div id='content' class='contentbox'>".$nx['31']."</div>";
echo "<form method='POST' action='".$main_dir."index.php?direct=new_post&verify=". $_SESSION['temp_n'] ."' id='post_k'>
<span id='input_save'></span>
<div class='extra_opts'><a href='add-poll' class='prompt' id='attach_poll_q'>".$nx[30]."</a></div><div id='main_new_post' class='contentbox'>";
echo "<div class='sect_1'><input type='text' maxlength='150' value='".$nx['17']."' class='flick largeform' name='tcha1' id='title_trigger'>
<textarea name='tcha2' class='flick largeform'>".$nx['18']."</textarea></div>";
//post as: formats
//title and content
echo "<div class='sect_2 button_row'>
";
//check for all snowglobes they can make a thread in, of course being able to post in your own profile snowglobe is always your right, and it'll be called "1"
echo "<input type='hidden' name='sg_".$sg_details['sg_url']."' value='on'>";
//as for the rest...
echo "
<input type='submit' value='".$nx['21']."'></div>";
echo "</div></form>";
Страница обработки http://pastebin.com/iHsRbVZw
Ваша проблема не очень ясна, ваша форма не использует сопоставленный переписанный URL-адрес.
Однако я протестировал ваши правила перезаписи на http://htaccess.madewithlove.be/, и ваш хэш-адрес md5 прошел через URL-адрес, например http://test.com/sg/yourhashhere
который отлично работал бы с вашим файлом .htaccess
, способом, который вы опубликовали Это.
Возможно, вы также можете показать свою страницу обработки, возможно, мы найдем ошибку там