Что касается сопоставления URL-адресов Apache и PHP-сессий

0

Итак, вот моя проблема подвела итог:

У меня есть эта форма (на примере 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&notifs=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

Теги:
session
.htaccess
hash

1 ответ

0

Ваша проблема не очень ясна, ваша форма не использует сопоставленный переписанный URL-адрес.

Однако я протестировал ваши правила перезаписи на http://htaccess.madewithlove.be/, и ваш хэш-адрес md5 прошел через URL-адрес, например http://test.com/sg/yourhashhere который отлично работал бы с вашим файлом .htaccess, способом, который вы опубликовали Это.

Возможно, вы также можете показать свою страницу обработки, возможно, мы найдем ошибку там

  • 0
    размещение в одну секунду Это довольно долго: /
  • 0
    Также страница обработки не имеет сопоставленного переписанного URL. Может ли это быть проблемой?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню