Ufai Rock
Новичок
Снова насчёт хедера и решетки (просьба не удалять)
В общем, я на этой странице http://phpclub.ru/talk/showthread.php?s=&threadid=94162&rand=21 задавал вопрос. Искал косяк банально начав с простого редиректа и потом наростил его до того момента, где начали появлятся глюки (да-да, именно индукцией). И я его нашёл. И был очень удивлен.
Дело в том, что данные передавались странице через форму (методом пост), в action которой был прописан, как вы догадались, адресс страницы, в этом адресе была переменная iakori=2 (допустим), страница-обработчик функцией header() переделывала эту переменную и добавляла в конец адреса в виде "#2", т.е. должна была переделывать, но не делала этого из-за, внимание, инпута для загрузки файла, да, того самого <input type=file name=file>, который был в форме, причём если у него не был прописан нейм - всё ок, решетка шла в адресную строку, якорь срабатывал, стоит только прописать нейм этому инпуту - никакой решетки в адресе нет и в помине.
Может хоть кто-нибудь мне это научно обосновать??
Если вам не лень, проверьте это у себя, буду жутко благодарен.
Вот то что работает:
А вто то что уже нет:
Попробуйте просто создать страницу test.php, вставить туда код и проверить.
В общем, я на этой странице http://phpclub.ru/talk/showthread.php?s=&threadid=94162&rand=21 задавал вопрос. Искал косяк банально начав с простого редиректа и потом наростил его до того момента, где начали появлятся глюки (да-да, именно индукцией). И я его нашёл. И был очень удивлен.
Дело в том, что данные передавались странице через форму (методом пост), в action которой был прописан, как вы догадались, адресс страницы, в этом адресе была переменная iakori=2 (допустим), страница-обработчик функцией header() переделывала эту переменную и добавляла в конец адреса в виде "#2", т.е. должна была переделывать, но не делала этого из-за, внимание, инпута для загрузки файла, да, того самого <input type=file name=file>, который был в форме, причём если у него не был прописан нейм - всё ок, решетка шла в адресную строку, якорь срабатывал, стоит только прописать нейм этому инпуту - никакой решетки в адресе нет и в помине.
Может хоть кто-нибудь мне это научно обосновать??
Если вам не лень, проверьте это у себя, буду жутко благодарен.
Вот то что работает:
PHP:
<?php
if ($_GET['action']=='check'){
header('Location: test.php#'.$_GET['mark']);
}
echo "<form action='?action=check&mark=3' method=post enctype='multipart/form-data'>
<input type=file><br>
<input type=submit value="Проверить">
</form>";
?>
PHP:
<?php
if ($_GET['action']=='check'){
header('Location: test.php#'.$_GET['mark']);
}
echo "<form action='?action=check&mark=3' method=post enctype='multipart/form-data'>
<input type=file [B]name=imya[/B]><br>
<input type=submit value="Проверить">
</form>";
?>
