Autor Zpráva
kabanos
Profil *
Ahoj,
mám php stránku, která načítá data do databáze. Dat je hodně, a tak jsem načítání rozkouskoval po cca 500 řádcích, abych nepřekročil časový limit. Přesto mi to po nějaké době v FF nahlásí "Smyčka při přesměrování". Znamená to, že existuje nějaké omezení i na počet přesměrování nebo tak něco? Jak to případně vyřešit, abych zpracoval vše a nemusel to dávkovat ručně. Přístup do vlastních nastavení serveru nemám.

<?php
$krok = 500;//odhadnutý počet zpracovávaných řádků
$cislo_radku = 0;
if (empty ($r)){$r = 0;}
if (empty ($f)){$f = 0;} 
$file = 'data.txt'; 
$pocet_radku_file = 20000;//zde mám funkci na výpočet počtu řádků ve $file nebo pevné omezení a každý řádek načtu do array $farr
foreach ($farr as $line) {
  if ($cislo_radku >= $r && $cislo_radku < ($r+$krok)) {include('./convert.php'); //soubor, který provádí různé věci s daty z řádku}
  $cislo_radku = $cislo_radku + 1;
}
function get_var($name,$default) {
  if($var = getenv($name)) {return $var;}
  else {return $default;}
}
$url = get_var("REQUEST_URI", "");
$url = explode("?", $url);
if ($pocet_radku > ($r+$krok)) {header('Location: '.$url[0].'?f='.$f.'&r='.($r+$krok));}
else {echo 'HOTOVO';}
?>  
Keeehi
Profil
kabanos:
Znamená to, že existuje nějaké omezení i na počet přesměrování nebo tak něco?
Ano, ale je to vlastnost prohlížeče.

Jak se to dá obejít:
Nepoužívej header('Location: xxx'); ale echo '<meta http-equiv="refresh" content="0;URL=xxx">';
Je to prakticky to samé.
Pokud by ani to případně nešlo (ale mělo by jít), tak použij javascriptové přesměrování.
kabanos
Profil *
Bezva, funguje to:-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: