Visualizzazione risultati 1 fino 6 di 6

Discussione: Problema recupero dati SQL e invio Mail

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito Problema recupero dati SQL e invio Mail

    Ho composto questo codice, solo che non mi invia le email. Mi date una mano, secondo me è una stupidata che mi sfugge.

    Codice PHP:
    <style type="text/css">
    #content{ width:250px; float:left;}
    #content2 { float:left; margin-right:20px; width:200px;}
    </style>

    <p>Invio Newsletter agli iscritti.</p><br>

    <form action="?inviodati=ok" method="post">
    <div id="content">Mittente messaggio:</div>
    <div id="content2"><input name="mittente" type="text" id="mittente" size="30" /></div>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <div id="content">Oggetto messaggio:</div>
    <div id="content2"><input name="oggetto" type="text" id="oggetto" size="30" /></div>
    <p>&nbsp;</p>

    <div>Messaggio:</div><br>
    <textarea name="messaggio" cols="50" rows="15" id="messaggio"></textarea>

    <br /><br /><br />
    <div id="content">Firma messaggio:</div>
    <div id="content2"><select name="firma">
    <option value="" selected="selected"></option>
    <option value="Sara">Sara</option>
    </select></div><br /><br />

    <input name="Submit" type="submit" value="Invia Messaggio" />
    </form>

    <?php
    // includiamo il file di connessione al database
    include ('mysql_connect.php');

    // attraverso un if controlliamo che il form sia stato inviato
    if ( $_GET['inviodati'] == "ok" ) {

    // recuperiamo i dati inviati con il form
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];
    $firma = $_POST['firma'];

    // ora controlliamo che i campi siano stati tutti compilati
    if ( $mittente == TRUE && $oggetto == TRUE && $messaggio == TRUE ) {

    // seleziono il database
    mysql_select_db("$db_name2")or die("cannot select DB");

    //apro il database
    $query = "SELECT mail FROM registrazione_sito WHERE accetto_newsletter='Attivato'";
    $ris = mysql_query ($query);

    //ciclo sul risultato della query e invio
    $num=mysql_num_rows($ris);

    for(
    $i=0;$i<num;$i++)
    {
    $row=mysql_fetch_row($ris);
    $indirizzo_email=$row[0];
    mail($indirizzo_email,$oggetto_mail,$messaggio_mail, $mittente_mail);

    }

    //messaggio finale

    echo "<div style=\"color:#093\"><strong>Registrazione avvenuta con successo! Ti e' stata inviata una e-Mail.</strong></div>";
    } else {
    echo
    "<div style=\"color:#F00\"><strong>I campi indicati sono obbligatori.</strong></div>";
    }
    }
    ?>

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Modifica
    Codice PHP:
    mail($indirizzo_email,$oggetto_mail,$messaggio_mail, $mittente_mail);
    in
    Codice PHP:
    if(mail($indirizzo_email,$oggetto_mail,$messaggio_mail, $mittente_mail)){
    echo
    "<p>OK</p>";
    }else{
    echo
    "<p>QUALCOSA NON VA!</p>";
    }
    Vediamo se l'errore sta qui...

  3. #3
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    adesso ho questo codice qui, ma cmq non mi arriva nessuna mail

    Codice PHP:
    <style type="text/css">
    #content{ width:250px; float:left;}
    #content2 { float:left; margin-right:20px; width:200px;}
    </style>

    <p>Invio Newsletter agli iscritti.</p><br>

    <form action="?inviodati=ok" method="post">
    <div id="content">Mittente messaggio:</div>
    <div id="content2"><input name="mittente" type="text" id="mittente" size="30" /></div>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <div id="content">Oggetto messaggio:</div>
    <div id="content2"><input name="oggetto" type="text" id="oggetto" size="30" /></div>
    <p>&nbsp;</p>

    <div>Messaggio:</div><br>
    <textarea name="messaggio" cols="50" rows="15" id="messaggio"></textarea>

    <br /><br /><br />
    <div id="content">Firma messaggio:</div>
    <div id="content2"><select name="firma">
    <option value="" selected="selected"></option>
    <option value="Sara">Sara</option>
    </select></div><br /><br />

    <input name="Submit" type="submit" value="Invia Messaggio" />
    </form>

    <?php
    // includiamo il file di connessione al database
    include ('mysql_connect.php');

    // attraverso un if controlliamo che il form sia stato inviato
    if ( $_GET['inviodati'] == "ok" ) {

    // recuperiamo i dati inviati con il form
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];
    $firma = $_POST['firma'];

    // ora controlliamo che i campi siano stati tutti compilati
    if ( $mittente == TRUE && $oggetto == TRUE && $messaggio == TRUE ) {

    // seleziono il database
    mysql_select_db("$db_name2")or die("cannot select DB");

    //apro il database
    $query = "SELECT mail FROM registrazione_sito WHERE accetto_newsletter='Attivato'";
    $ris = mysql_query ($query);

    //ciclo sul risultato della query e invio
    $num=mysql_num_rows($ris);

    for(
    $i=0;$i<num;$i++)
    {
    $row=mysql_fetch_row($ris);
    $indirizzo_email=$row[0];
    if(
    mail($indirizzo_email,$oggetto_mail,$messaggio_mail, $mittente_mail)){
    echo
    "<p>OK</p>";
    }else{
    echo
    "<p>QUALCOSA NON VA!</p>";
    }
    }
    }
    }
    ?>

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ti dice "OK", "QUALCOSA NON VA!" oppure niente?
    Premetto che conosco meglio il while (il for so solo che esiste ) ma qui non dovresti modificare num in $num?
    Codice PHP:
    for($i=0;$i<num;$i++)
    Codice PHP:
    for($i=0;$i<$num;$i++)
    Bye!

  5. #5
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    O mio dio. Grazie mille!
    Avendo apportato la tua ultima modifica funziona correttamente.
    Ora provo ad aggiungere qualche altro dato al database per vedere se lo invia a tutti gli indirizzi.

    Ora provo a risolvere un problema, perche l'email arriva, ma è vuota.

  6. #6
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ti consiglio vivamente di fare attenzione ai dati che vengono prelevati tramite $_POST con addslashes() e htmlspecialchars() poiché rischi injection.
    Se hai bisogno di aiuto noi siamo qui!
    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •