Есть предположение что у Вас трижды запускается скрипт (т.е. источник проблемы не в приведенном коде).
это легко проверить, назначив какой либо переменной, которую пишите в базу, в начале скрипта (до открытия базы) рандомное значение (или до инсерта получите из базы количество записей в таблице и присвойте это значение одной из записываемых переменных).
Если в базе все три записи будут с разными значениями в этой переменной, то просто скрипт вызывается трижды.
SwordsMan,
попробуйте еще такой вариант
$e = explode('/', '/'.$folder.'.');
while (array_pop($e)){
print(implode('/', $e)."/<br>");
}
по моим тестам он чуть быстрее остальных
(видимо из-за отсутствия проверки размера массива и использования оригинала, а не псевдонима функции implode)
можно еще избавиться от присвоения в строке
foreach ($e as $a) {
таким образом
while (sizeof($e)){
print(join('/', $e)."/<br>");
array_pop($e);
у меня локально версия более ранняя
Apache/1.3.33 (Win32) PHP/4.4.4
но на хостинге тоже работает, там
Apache/2.0.63-lk.d (Unix) ...
не уверен что поможет, но все таки попробуйте добавить флаг NE
RewriteRule ([^.]*)[.]* index.php?file=$1 [L,QSA,NE,T=application/x-httpd-php]
сам по себе приведенный Вами реврайт не способен вызвать ответ с кодом 403
403 Forbidden
При отсутствии полных данных остается только гадать
либо у Вас в .htaccess есть правило, которое после приведенного реврайта (а может и до него) отдает ответ с кодом 403 (посмотрите строки RewriteRule с флагом F)
либо 403 код возвращает index.php в данной ситуации (при адресе содержащем типа ...%F1%F2%E0...)
вторую версию легко проверить, создав файл index1.php со следующим кодом
<?php
print '<pre>';
print_r($_GET);
?>
и изменив строку реврайта
RewriteRule ([^.]*)[.]* index1.php?file=$1 [L,QSA,T=application/x-httpd-php]
если будет работать со всеми тремя приведенными адресами (у себя проверил - работает), то 403 код отдает index.php
...
$s2 = "";
$sh=0;
while ($send = mysql_fetch_array ($load)) {
++$sh;
$s1.= "<div class='slider-image' rel='section".$sh."'> </div> картинка из новости";
если скрипт запускается из командной строки или кроном то значение $_SERVER['DOCUMENT_ROOT'] не устанавливается
не,
конец кода это 20 строка, а дальше (на 23 строке) может еще раз объявляется функция (код дальше 20 строки не показан)
смотрите код на хостинге
vlasoff, можно проверку из первой строки засунуть в третью строку вместо ".*" и обойтись двумя строками
и еще, если домен при редиректе остается прежним, то можно так
элементарно !!! (написать правильно, с одним s и двумя l)
Disallow: /*/*/*/*
но кажется это запрет 4 уровня (хотя если корень сайта считать первым уровнем, то может быть)