PHP fopen () reindirizzamento limite raggiunto Errore
Domanda
Quando si esegue il seguente blocco di codice:
foreach($eventfiles as $eventfile)
{
if($eventfile['filename'])
{
$file = $eventfile['filepath'];
// Open File
if( !($fp = fopen($file, "r")))
{
echo '<br>CAN NOT READ FILE.';
exit;
}
// Read data from the file into $data
$data = "";
while (!feof($fp)) $data .= fread($fp,1024);
query("update event_rtab set html = '".escape($data)."' where id = {$eventfile[id]}");
}
if($eventfile['eventType']=='email')
{
query("INSERT INTO event_email_rtab (event_id,subject) values ($eventfile[id],'".escape($eventfile[email_subject])."')");
}
}
Lo script non riesce con il seguente errore:
fopen (test.html) [Function.fopen]: failed to open stream: limite di reindirizzamento raggiunto, abortire in /data/www/example.com/public/test.php on line 843
Quali sono le cause di questo errore e come posso correggerlo?
Soluzione
Dove sono i file che si trovano che si sta tentando di aprire? Sono sul filesystem locale o stai cercando di accedervi tramite HTTP (S)?
Se stai usando un po 'di involucro protocollo di rete, allora, questo errore è più probabile collegata con troppi (HTTP - nel caso del protocollo HTTP (S)) reindirizza sulla strada che dallo script per il file che si desidera aprire . Il href="http://de3.php.net/manual/en/context.http.php" rel="nofollow noreferrer"> limite di reindirizzamento . Come 20 redirect sono un bel po 'ci potrebbe essere qualche errore nel nome del file stesso (causando ad esempio il server web su l'altra estremità a fare un po' il controllo ortografico-redirect), o l'altro server è configurato correttamente o ci sono alcune misure di sicurezza in atto o ...
Se si sente la necessità di estendere l'20 reindirizza si potrebbe usare un contesto flusso.
$context = array(
'http'=>array('max_redirects' => 99)
);
$context = stream_context_create($context);
// hand over the context to fopen()
$fp = fopen($file, 'r', false, $context);
// ...
Si veda:
Altri suggerimenti
E 'molto probabile che a causa del file che si sta tentando di aprire sta cercando di aprire un altro file e questa convenzione è raggiunto il limite di reindirizzamento.
Modifica:. Quando dico probabilmente, voglio dire che possono causare l'errore e questo può essere quella situazione