Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Problema con invio mail

    Salve ragazzi,
    ho un serio problema. Ho realizzato una pagina che prende la conferma dell'avvenuto pagamento sulla piattaforma banca sella. In questa pagina ho una query che dovrebbe estrarre i dati da due tabelle: una chiamata utenti, l'altra ordini. Nella prima sono contenuti i dati di chi acquista, nella seconda i dettagli dell'ordine stesso.

    Una volta eseguita la query, i dati estratti dovrebbero entrare in una mail ed essere spediti per poi essere stampati dall'utente quale ricevuta del pagamento stesso. Or bene, la mail non parte!!!!!!! La cosa strana è che non mi viene segnalato alcun errore di sintassi o altro.

    Posto il codice:
    Codice PHP:
            include("config.php"); 
            
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi"); 
            
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database"); 
            
            
    $sql "INSERT INTO archiviorder (ordine_id, utente_id, event_id, numerointeri, numeroridotti, numerotavoli, totale, data) SELECT * FROM ordini WHERE ordine_id='".$ordine_id."'";
                if (!
    mysql_query($sql)) {
                die(
    'Error: ' mysql_error());
                    }    
            
    $sql "DELETE * FROM ordini WHERE ordine_id='".$ordine_id."'";
            if (!
    mysql_query($sql)) {
                die(
    'Error: ' mysql_error());
                    
    $query mysql_query("SELECT utenti.*, eventi.evento as strEvento, archiviorder.*,
    date_format(archiviorder.data,'%d-%m-%Y %H:%i') AS dataora
    FROM utenti 
    INNER JOIN archiviorder ON archiviorder.utente_id = utenti.utente_id
    INNER JOIN eventi ON eventi.event_id = archiviorder.event_id 
    WHERE utenti.utente_id ='"
    .$_SESSION['username']."' Order by ordine_id Desc LIMIT $primo$per_page") or die( mysql_error() . "
    $sql);

    $results mysql_fetch_array($query);

    $ordine_id $results['ordine_id'];echo $ordine_id;
    $nome $results['nome'];
    $cognome $results['cognome'];
    $datanascita $results['datanascita'];
    $comuneresidenza $results['comuneresidenza'];
    $evento $results['strEvento'];
    $dataevento $results['dataevento'];
    $numerointeri $results['numerointeri'];
    $numeroridotti $results['numeroridotti'];
    $numerotavoli =  $results['numerotavoli'];
    $importo $results['totale'];
    $cassa $results['biglietteria'];
    $mail $results['mail'];


                                                    
    // settare qui quello che apparirà nel campo from della email
                                    
    $from_mail "prevendite@goticket.it";
                                    
    // invio della mail contenente la passwd e gli altri dati
                                         
    $To="$mail";
                                         
    $Headers ="From: $from_mail";
                                         
    $Soggetto="[[url]www.goticket.it[/url]] Notifica di acquisto prevendita.";
                                         
    $Corpo.="     Gentile utente, grazie per aver acquistato la tua prevendita su [[url]www.goticket.it[/url]] \n\n";
                                         
    $Corpo.="     L'operazione risulta completata correttamente.\n\n";
                                         
    $Corpo.="     Ricorda che potrai ritirare il/i biglietto/i per l’ingresso presentando il tuo documento di identità alla cassa della location indicata dal Promoter. Il documento deve essere intestato all’acquirente del biglietto su GoTicket.it \n\n";
                                         
    $Corpo.="     Ti consigliamo comunque di stampare questa mail e presentarla unitamente al documento alla cassa.\n\n";
                                          
    $Corpo.="     Di seguito ecco i dettagli del tuo acquisto:\n\n";
                                         
    $Corpo.="     Acquisto n: $ordine_id\n";
                                         
    $Corpo.="     Nome cliente: $nome\n\n";
                                         
    $Corpo.="     Cognome cliente: $cognome\n\n";
                                         
    $Corpo.="     Data di nascita: $datanascita\n\n";
                                         
    $Corpo.="     Comune di residenza: $comuneresidenza\n\n";
                                         
    $Corpo.="     Evento: $evento\n\n";
                                         
    $Corpo.="     Data evento: $dataevento\n\n";
                                         
    $Corpo.="     Prevendite interi: $numerointeri\n\n";
                                         
    $Corpo.="     Prevendite ridotti: $numeroridotti\n\n";
                                         
    $Corpo.="     Prevendite tavoli: $numerotavoli\n\n";
                                         
    $Corpo.="     Importo: $totale\n\n";
                                         
    $Corpo.="     Cassa: $biglietteria\n\n";
                                         
    $Corpo.="     A presto!\n\n";
                                         
    $Corpo.="--------------------------------------------\n";
                                         
    $Corpo.="$from_mail\n";
                                         
    $Corpo.="http://www.goticket.it\n";
                                         
    $Corpo.="--------------------------------------------\n";
                                         
    mail($To$Soggetto$Corpo$Headers);

                                        echo 
    "ti è stata inviata una mail all'indirizzo $mail con i dati del tuo acquisto. Ti aspettiamo al prossimo evento!!"
    Dove potrebbe stare l'arcano????

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,073
    Attenzione agli apici presenti nel codice HTML.


    $Soggetto="[www.goticket.it] Notifica di acquisto prevendita.";

    Tutti i doppi apici devono essere preceduti da un escape, altrimenti php non sa riconoscere dove finisce la stringa. Nel tuo caso, la riga precedente diventa così:

    $Soggetto="[<a href=\"http://www.goticket.it\" target=\"_blank\">www.goticket.it</a>] Notifica di acquisto prevendita.";

    Forse il problema deriva da questo, prova e facci sapere :)
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Il problema non risiede la,
    perchè il codice esatto della riga dove c'è il soggetto della mail è questo:

    Codice PHP:
    $Soggetto="[[url]www.goticket.it[/url]] Notifica di acquisto prevendita."
    Il problema è che quando posto la riga di codice, il forum in automatico mi converte il www.goticket.it in quella stringa con url e href che in realtà non ci sono...

    Quindi il problema della mail che non parte dipende da altro.... Ma da cosa?

  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,692
    Prova a mettere un un punto prima del .www
    e vedi se inganni la regexp
    ...altri 5 anni di purga...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Provato anche così... ma la mail continua a non partire....

  6. #6
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,692
    prova sta porcata e vedi se sta mail parte:

    mail($To, strip_tags(addslashes($Soggetto)), $Corpo, $Headers);
    ...altri 5 anni di purga...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    La porcata non ha funzionato.....

    Provo a postare il codice intero del file, non si sa mai che ci sia qualcosa che mi sfugge....

    Codice PHP:
    <?php
    $parm_b 
    = (isset($_POST['b'])?$_POST['b']:(isset($_GET['b'])?$_GET['b']:NULL));
    if (isset(
    $parm_b)) {
        
    $TrovataOTP '';
        
    $a explode("*P1*"$parm_b);
        foreach (
    $a as $v) {
            
    $val explode("="$v);
            if (
    ereg("^PAY1_OTP"$v)) {
                
    $TrovataOTP $val[1];
            }
        }
        
    $nome_file "merchant.ris";
        
    $array file($nome_file);
        
    $ok NULL;
        foreach (
    $array as $k => $v) {
            if (
    $TrovataOTP == trim($v)) {
                
    $CancellaOTP trim($v);
                unset(
    $array[$k]);
                
    $ok TRUE;
                break;
            }
        }

        if (isset(
    $ok)) {
            
    $fp fopen($nome_file,"wb");
            
    fwrite($fp,implode("",$array));
            
    fclose($fp);
            print 
    "La transazione è stata conclusa correttamente. "."Grazie per l'acquisto tornate presto a trovarci.
    "
    ;
        } else {
            print 
    "La transazione non si è conclusa correttamente. "."Vi preghiamo di riprovare. Grazie.
    "
    ;
        }
    }


    $parm_c = (isset($_POST['b'])?$_POST['b']:(isset($_GET['b'])?$_GET['b']:NULL));
    if (isset(
    $parm_c)) {
        
    $Trovatook '';
        
    $b explode("*P1*"$parm_c);
        foreach (
    $b as $z) {
            
    $valore explode("="$z);
            if (
    ereg("^PAY1_TRANSACTIONRESULT"$z)) {
                
    $Trovatook $valore[1];
            }
        }
        
        
    $parm_d = (isset($_POST['b'])?$_POST['b']:(isset($_GET['b'])?$_GET['b']:NULL));
    if (isset(
    $parm_d)) {
        
    $ordine_id '';
        
    $c explode("*P1*"$parm_d);
        foreach (
    $c as $w) {
            
    $valoreid explode("="$w);
            if (
    ereg("^PAY1_SHOPTRANSACTIONID"$w)) {
                
    $ordine_id $valoreid[1];
            }
        }

            
    $esito_positivo "OK";
        

            if (
    $Trovatook == $esito_positivo) {
            
            include(
    "config.php"); 
            
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi"); 
            
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
            
            
    $query mysql_query("SELECT utenti.*, eventi.evento as strEvento, archiviorder.*,
    date_format(archiviorder.data,'%d-%m-%Y %H:%i') AS dataora
    FROM utenti 
    INNER JOIN archiviorder ON archiviorder.utente_id = utenti.utente_id
    INNER JOIN eventi ON eventi.event_id = archiviorder.event_id 
    WHERE utenti.utente_id ='"
    .$_SESSION['username']."' Order by ordine_id Desc LIMIT $primo$per_page") or die( mysql_error() . "
    $sql);

    $results mysql_fetch_array($query);

    $ordine_id $results['ordine_id'];echo $ordine_id;
    $nome $results['nome'];
    $cognome $results['cognome'];
    $datanascita $results['datanascita'];
    $comuneresidenza $results['comuneresidenza'];
    $evento $results['strEvento'];
    $dataevento $results['dataevento'];
    $numerointeri $results['numerointeri'];
    $numeroridotti $results['numeroridotti'];
    $numerotavoli =  $results['numerotavoli'];
    $importo $results['totale'];
    $cassa $results['biglietteria'];
    $mail $results['mail'];


                                                    
    // settare qui quello che apparirà nel campo from della email
                                    
    $from_mail "prevendite@goticket.it";
                                    
    // invio della mail contenente la passwd e gli altri dati
                                         
    $To="$mail";
                                         
    $Headers ="From: $from_mail";
                                         
    $Soggetto="[[url]www.goticket.it[/url]] Notifica di acquisto prevendita.";
                                         
    $Corpo.="     Gentile utente, grazie per aver acquistato la tua prevendita su [[url]www.goticket.it[/url]] \n\n";
                                         
    $Corpo.="     L'operazione risulta completata correttamente.\n\n";
                                         
    $Corpo.="     Ricorda che potrai ritirare il/i biglietto/i per l’ingresso presentando il tuo documento di identità alla cassa della location indicata dal Promoter. Il documento deve essere intestato all’acquirente del biglietto su GoTicket.it \n\n";
                                         
    $Corpo.="     Ti consigliamo comunque di stampare questa mail e presentarla unitamente al documento alla cassa.\n\n";
                                          
    $Corpo.="     Di seguito ecco i dettagli del tuo acquisto:\n\n";
                                         
    $Corpo.="     Acquisto n: $ordine_id\n";
                                         
    $Corpo.="     Nome cliente: $nome\n\n";
                                         
    $Corpo.="     Cognome cliente: $cognome\n\n";
                                         
    $Corpo.="     Data di nascita: $datanascita\n\n";
                                         
    $Corpo.="     Comune di residenza: $comuneresidenza\n\n";
                                         
    $Corpo.="     Evento: $evento\n\n";
                                         
    $Corpo.="     Data evento: $dataevento\n\n";
                                         
    $Corpo.="     Prevendite interi: $numerointeri\n\n";
                                         
    $Corpo.="     Prevendite ridotti: $numeroridotti\n\n";
                                         
    $Corpo.="     Prevendite tavoli: $numerotavoli\n\n";
                                         
    $Corpo.="     Importo: $totale\n\n";
                                         
    $Corpo.="     Cassa: $biglietteria\n\n";
                                         
    $Corpo.="     A presto!\n\n";
                                         
    $Corpo.="--------------------------------------------\n";
                                         
    $Corpo.="$from_mail\n";
                                         
    $Corpo.="http://www.goticket.it\n";
                                         
    $Corpo.="--------------------------------------------\n";
                                        
    mail($Tostrip_tags(addslashes($Soggetto)), $Corpo$Headers);
                                        echo 
    "ti è stata inviata una mail all'indirizzo $mail con i dati del tuo acquisto. Ti aspettiamo al prossimo evento!!";

            
            
    $sql "INSERT INTO archiviorder (ordine_id, utente_id, event_id, numerointeri, numeroridotti, numerotavoli, totale, data) SELECT * FROM ordini WHERE ordine_id='".$ordine_id."'";
                if (!
    mysql_query($sql)) {
                die(
    'Error: ' mysql_error());
                    }    
            
    $sql "DELETE FROM ordini WHERE ordine_id='".$ordine_id."'";
            if (!
    mysql_query($sql)) {
                die(
    'Error: ' mysql_error());
                                    }
    ?>

  8. #8
    una volta ho scritto una pillola che si intitolava "mai più problemi con l'invio di email".

    http://forum.html.it/forum/showthrea...readid=1215634

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