Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    mail ricevute due volte

    certamente mi sfugge qualcosa di semplice, tuttavia non riesco a venirne a capo!
    Ho una piccola funzione all'interno di una classe:
    Codice PHP:
        public function send_mail ($nome$email$oggetto$testo) {
            
    $testo str_replace("\\","",$testo); 
            
    $error=0;
            
    $messaggio_risposta="";
            
    $mittente "redazione@cantodellasfinge.net";
        
            if (
    $nome=="") { $error=1; }
            if (
    $email=="") { $error=1; }
            if (
    $email!="" && !eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) { $error=1; }
            if (
    $error==1) { return false;
            } else {
            
    $headers.= "MIME-version: 1.0\n";
            
    $headers.= "Content-type: text/html; charset= iso-8859-1\n";
            
    $headers.= "Content-Transfer-Encoding: 7bit\n";
    //        $headers.= "Reply-To: " . $mittente . "\r\n";
            
    $headers.= "To: $nome <" $email ">\n";
            
    $headers.= "From: Canto della Sfinge <redazione@cantodellasfinge.net>\n";
            
    $headers.= "X-Mailer: PHP/" phpversion();

            
    $messaggio_risposta.=$testo;
            if ( ! 
    php_uname("s") == "Linux") {
                
    $imposta ini_set("sendmail_from""redazione@cantodellasfinge.net");
                if (!
    $imposta) { die ("Non posso impostare sendmail_from!
    \n"
    ); }
            }
                
    mail($email$oggetto$messaggio_risposta$headers);        // , "-f$mittente");
            
    }
        return 
    true;
        } 
    A meno che l'età mi abbia del tutto demolito, questa routine viene chiamata una sola volta attraverso un unico passaggio (non è difficile controllarlo!).

    Codice PHP:
    if ($this->send_mail ($nick$email$oggetto$text)) {
        return 
    true; } 
    else die (
    "Send mail errato"); 
    Il problema è che (facendo delle prove) ricevo due volte la stessa mail!
    Qualcuno ha idea del motivo di tutto questo?
    Grazie.
    Non ho sbagliato: ho invece scoperto mille modi per fare lampadine che non funzionano...
    (Thomas Alva Edison)

  2. #2
    alla seconda riga c'è un errore
    Codice PHP:
    $testo str_replace("\","",$testo); 
    se metti \" php lo interpreta come l'apostrofo (')
    quindi devi mettere una doppia \
    Codice PHP:
    $testo str_replace("\\","",$testo); 

  3. #3
    E' vero, hai perfettamente ragione: servirebbe a evitare che compaiano degli escape \ che il sistema mette automaticamente a presenza di apici. Ma non credo sia quello il motivo della doppia email!
    Comunque grazie.

    Però guardavo adesso che è questo forum che elimina automaticamente uno slash, infatti nel mio codice originale il doppio slash esiste.
    $testo = str_replace("\\","",$testo);
    Non ho sbagliato: ho invece scoperto mille modi per fare lampadine che non funzionano...
    (Thomas Alva Edison)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    dal codice postato direi che non c'è nulla che possa contribuire al doppio invio

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 © 2025 vBulletin Solutions, Inc. All rights reserved.