-
Log di errore 500
Salve, ho caricato uno script PHP scritto da me sul mio spazio. Durante l'esecuzione di questo, dopo circa 5 o 6 secondi mi compare la schermata di "Errore 500 :-(", è possibile sapere cosa c'è all'interno dei log per capire cosa devo correggere nel mio script?
Grazie
-
Puoi postare il codice dello script?
-
Mi correggo, a volte produce l'errore..altre no.
Il numero delle volte che lo produce, però, è maggiore rispetto alle volte che funziona correttamente.
Fondamentalmente sono riuscito ad individuare che il problema si nasconde tra queste righe, e l'errore si presenta in questo ciclo:
Codice PHP:
foreach ($arr as $i => $value) {
$out = fopen($file, 'wb');
$ch = curl_init();
$pic = 'http://xxx.php?string='.$value.'&font='.$font.'&red='.$red.'&grn='.$grn.'&blu='.$blu;
curl_setopt($ch, CURLOPT_URL, $pic);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FILE, $out);
curl_exec($ch);
curl_close($ch);
fclose($out);
$args = array(
'message' => 'xxx',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'https://xxx?access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$res = curl_exec($ch);
curl_close($ch);
$fval = explode('{"id":',$res);
$obje = explode('}', $fval[1]);
$ch = curl_init();
$urlx = 'https://xxx/'.$obje[0].'?access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $urlx);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xdata = curl_exec($ch);
curl_close($ch);
$plink = json_decode($xdata,true);
$pieces = explode("id=", $plink['link']);
settype($pieces[1], "integer");
$pid = $pieces[2]."_".$pieces[1];
$ch = curl_init();
$son = 'https://xxx?pid='.$pid.'&tag_uid='.$uid.'&x=3&y=3&access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $son);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xdd = curl_exec($ch);
curl_close($ch);
}
La prima connessione fatta dal ciclo è ad una pagina presente sempre nel mio spazio, le altre 3 sono tutte connessioni esterne.
E' possibile che data la quantità di richieste fatte in poco tempo, il server di av si rifiuti di eseguirle?
Oppure è un problema causato da una delle connessioni esterne?
Ho notato anche che il ciclo viene eseguito correttamente 4 volte, la quinta (e ultima) si interrompe prima dell'ultima (o a volte penultima) connessione.
Se si potesse sapere il contenuto dei log sarebbe tutto più semplice, ma anche se riuscite a trovare un qualche errore nello script sarei contento ugualmente :)
Grazie
-
A che ti serve connetterti verso una pagina del tuo stesso sito? Crea una funzione e richiamala!
Probabilmente è un errore di timeout, le connessioni potrebbero richiedere troppo tempo.
-
Potresti farmi un esempio? La pagina richiamata è uno script che genera un'immagine, che io salvo in un file e poi utilizzo nelle connessioni seguenti.
-
Se la salvi in un file, perché non lo apri usando le funzioni del filesistem anziché effettuare una richiesta HTTP?
-
Perchè l'altro script genera solo l'immagine, non la salva in un file.
Però potrei modificarlo e fare in modo che la salvi, ci provo e vi farò sapere se ha risolto il problema!
Grazie!
EDIT
Risparmiando sulla prima connessione, lo script ora funziona!
Grazie di nuovo! :wink:
EDIT 2
Purtroppo ho gridato vittoria troppo presto...di nuovo errore 500...anche eliminando la prima connessione!