Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146

    500 internal server error

    Buonasera a tutti!

    Dopo due ore di ricerca su internet e centinaia di prove mi trovo costretto a chiedere ai "più grandi" un aiuto su questo dannato errore che non mi da pace.

    Ho visto che può essere dovuto a un sacco di cose quindi premetto che:
    - non ho file .htaccess
    - le cartelle hanno i permessi giusti (spero :P)
    - lo script ha un ciclo non infinito

    Allora.. è semplice:
    Hosting Linux Aruba. Database con 3 tabelle: Email, Email_Right, Email_Wrong. Lo script prende l'email dalla tabella "email", controlla se esiste tramite controllo smtp e dns e la inserisce in Email_Right se esiste, in Email_Wrong con relativo problema.

    Codice PHP:
    if(trim($_POST['limit']) != '') {
    $a $_POST['limit'];
    $y 0;
    $n 0;

    $sql mysql_query("SELECT * FROM Email LIMIT 0,".$a);

    while(
    $rs mysql_fetch_array($sql)) {

        
    $email $rs['email'];
        
    $categoria $rs['categoria'];
        
    $regione $rs['regione'];    
        if(
    validateEmail($emailtruetrue'info@liberodegliernici.it''liberodegliernici.it')) {
            
    mysql_query("INSERT INTO Email_Right VALUES('','".$email."', '".$categoria."', '".$regione."');");
            
    $y++;
        } else {
            
    $check validateEmail($emailtruetrue'info@liberodegliernici.it''liberodegliernici.it'true);
            echo 
    $check."\n";
            
    $exp1 "/rejected/";
            
    $exp2 "/Address syntax not correct/";
            
    $exp3 "/No usable DNS records found for domain/";
            if(
    preg_match($exp2$check$matches))
                
    mysql_query("INSERT INTO Email_Wrong VALUES('','".$email."', '".$categoria."', '".$regione."', '1');");
            elseif (
    preg_match($exp3$check$matches))
                
    mysql_query("INSERT INTO Email_Wrong VALUES('','".$email."', '".$categoria."', '".$regione."', '2');");
            elseif (
    preg_match($exp1$check$matches))
                
    mysql_query("INSERT INTO Email_Wrong VALUES('','".$email."', '".$categoria."', '".$regione."', '3');");
            else
                
    mysql_query("INSERT INTO Email_Wrong VALUES('','".$email."', '".$categoria."', '".$regione."', '4');");
            
    $n++;
        }
        
    set_time_limit(0);
        
    mysql_query("DELETE FROM Email_Bank WHERE id = ".$rs['id']);
    }
    echo 
    "$y indirizzi corretti\n$n indirizzi errati\n$a indirizzi totali";

    Se lancio con Limit di 5 va tranquillo... con 10 a volte va a volte no.. da 20 in su non ho altro che un Internal Error. Dato che non posso mettermi lì a cliccare ogni 2 minuti e fare 5 email alla volta, mi serve la possibilità di alzare il limite senza incappare nel maledetto 500.




    Spero mi sappiate aiutare e vi ringrazio preventivamente per la vostra pazienza ^__^



    Matteo

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Ma la funzione validateEmail cosa fa?? Se va a fare delle richieste remote valuta eventualmente di inserire un piccolo "sleep" tra una richiesta e l'altra...

  3. #3
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Si, ValidateEmail apre una richiesta tramite socket quindi una richiesta remota..

    Ho letto la funzione sleep ma non capisco come devo usarla. Se non ho capito male interrompe lo script e lo mette in pausa per x secondi, millisecondi se si usa usleep.

    Quanti secondi metto?


    Altra questione:
    Per provare ho annullato la scelta della limit.. ho fatto fisso a limit 1 e ho fatto uno script in javascript che quando la pagina è caricata, rimanda il form e si riavvia la pagina con lo script php. E va .. va ... va.. ma dopo un po' che si aggiorna ricapita il 500 .. Why?

    Era "plausibile" su un ciclo.. ma su una richiesta ?

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Ti consiglio di verificare i log di apache per capire qual'è l'errore che avviene...
    I file dovrebbero essere:

    -var/log/message
    -/var/log/httpd/error_logs

  5. #5
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Piccolo problema: Aruba non fa mostrare i log di apache

  6. #6
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Prova a metterlo in locale e a vedere come si comporta

  7. #7
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Altro piccolo problema: per la richiesta HELO per il controllo smtp devo dare email e indirizzo della macchina che funge da mailserver. In locale non ce l'ho e dopo pochi tentativi mi bloccano l'ip in graylist perché mi "spaccio" per un altro server.

    Sob

    ho provato a mettere lo sleep, ad aumentare il tempo di timeout, a settare lo stream timeout a 30 secondi (un eternità per un socket) e ancora non va.. Ora ho lasciato lo script che si richiama da solo ma ogni poco devo aggiornarlo a mano per demoralizzante errore 500.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.