Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: query via mail

  1. #1

    query via mail

    sto' provando ad inviare il risultato di una query via mail la mail arriva ma la tabella ricevuta non contiene i dati voluti
    Codice PHP:
    <?php
    include("config.inc.php");
    include(
    "connect.inc.php");

    $email=$_POST['email'];
    $id $_GET['id'];
    $query   =   "SELECT  titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id=$id";
    $result   =   mysql_query($query,   $db);
    $row   =   mysql_fetch_array($result);
    /* destinatari */
    $destinatari  $email;

    /* oggetto */
    $oggetto "La ricetta che hai richiesto";

    /* messaggio */
    $messaggio '
    <table width=600 border=1 cellspacing=0 cellpadding=3 align=center>
    <td  width=600 height=56 align=center>[b]$row[titolo][/b]</td>
    <td  valign=top>
    <table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>
    </table>
    <tr bgcolor=#FFFFFF valign=top>
    <td  bgcolor=#FFFFFF width=143> 

    [b]Nazione / Regione:[/b]
    $row[regione]


    [b]N.Persone:[/b]
    $row[persone]


    [b]Portata:[/b]
    $row[tipopiatto]


    [b]Difficoltà:[/b]
    $row[difficolta]

    <td width=452>
    <div align=justify>[b]Ingredienti:[/b]
    $row[ingredienti]</div>

    <table width=300 border=0 cellspacing=0 cellpadding=0>
    </tr>
    <td height=10></td>
    </tr>
    <div  align=justify>[b]Preparazione:[/b]
    $row[preparazione]</div></td></tr>
    </table>
    <div  align=justify>[b]Note:[/b]
    $row[note]</div></td></tr>
    </table>
    <table width=600 border=0 cellspacing=0 cellpadding=0 align=center>
    <tr>
    <td height=10></td>
    </tr>
    </table>
    '
    ;

    /* Per inviare email in formato HTML, si deve impostare l'intestazione Content-type. */
    $intestazioni  "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";

    /* intestazioni addizionali */
    $intestazioni .= "To: $email , \r\n";
    $intestazioni .= "From: Alessandro \r\n";

    /* ed infine l'invio */
    mail($destinatari$oggetto$messaggio$intestazioni);
    echo 
    "<center>Messaggio inviato

    <a href=\"index.php\">Vai al form</a></center>"
    ;
    mysql_close($db);
    ?>
    per chiarezza l'id viene preso dal file view.php
    Codice PHP:
    <?   
    include("top_foot.inc.php");   
    include(
    "config.inc.php");
    include(
    "connect.inc.php");
    top();
    $query   =   "SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id=$id";
    $result   =   mysql_query($query,   $db);
    $row   =   mysql_fetch_array($result);
    $riga.="<table width=600 border=1 cellspacing=0 cellpadding=3 align=center>";
    $riga.="<td  width=600 height=56 align=center>[b]$row[titolo][/b]</td>";
    $riga.="<td  valign=top>";
    $riga.="<table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>";
    $riga.="</table>";
    $riga.="<tr bgcolor=#FFFFFF valign=top>";
    $riga.="<td  bgcolor=#FFFFFF width=143>"
    $riga.="
    [b]Nazione / Regione:[/b]
    $row[regione]
    "
    ;
    $riga.="
    [b]N.Persone:[/b]
    $row[persone]
    "
    ;
    $riga.="
    [b]Portata:[/b]
    $row[tipopiatto]
    "
    ;
    $riga.="
    [b]Difficoltà:[/b]
    "
    ;
    $riga.="$row[difficolta]
    "
    ;
    if (
    $row['difficolta'] == "Facile")
      
    $riga.='<img src=1.jpg>';
    elseif(
    $row['difficolta'] == "Elaborata")
      
    $riga.='<img src=2.jpg>';
    elseif(
    $row['difficolta'] == "Impegnativa")
      
    $riga.='<img src=3.jpg>';
    $riga.="<td width=452>";
    $riga.="<div align=justify>[b]Ingredienti:[/b]
    $row[ingredienti]</div>
    "
    ;
    $riga.="<table width=300 border=0 cellspacing=0 cellpadding=0>";
    $riga.="</tr>";
    $riga.="<td height=10></td>";
    $riga.="  </tr>";
    $riga.="<div  align=justify>[b]Preparazione:[/b]
    $row[preparazione]</div></td></tr>";
    $riga.="</table>";
    $riga.="<div  align=justify>[b]Note:[/b]
    $row[note]</div></td></tr>";
    $riga.="</table>";
    $riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";
    $riga.="<tr>";
    $riga.="<td height=10></td>";
    $riga.="</tr>";
    $riga.="</table>";
    $riga.="<table width=600 border=0 cellspacing=0 cellpadding=0 align=center>";
    $riga.="<td><a   href=index.php>Torna   alla   pagina   iniziale</a></td>";
    $riga.="<td>[url='javascript:print();']Stampa la ricetta[/url]</td>";
    $riga.="<td><a   href=all.php>Visualizza   tutte   le ricette</a></td>";
    $riga.="<td><a   href=search.php>Cerca   nel database</a></td>";
    $riga.="<td><a   href=mailricetta.php?id=".$_GET["id"].">Invia la ricetta</a></td>";
    $riga.="</table>";
    echo 
    $riga;
    mysql_close($db);
    ?>
    Cliccando su invia la ricetta si apre un form mailricetta.php
    Codice PHP:
    <form name="form_invio" method="post" action="send.php">
      <
    div align="left">
      <
    table width="339" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">
        <
    tr
          <
    td bgcolor="#FFFFFF">
              <
    tr>
                <
    td align="right"><font size="1" face="Georgia" color="#6A0000">
                [
    b]E-mail[/b]</font></td>
                <
    td><font color="#400000"><input name="email" type="text" id="email" style="border:1px solid;" size="30"></font></td>
              </
    tr>
              <
    tr
                <
    td bgcolor="#FFFFFF">
                <
    p align="center"></td>
                <
    td bgcolor="#FFFFFF"><font color="#400000"><input type="submit" name="Submit" value="Invia"></font><font size="2" face="Georgia" color="#400000"></font><font size="2" face="Georgia" color="#6A0000"> </font>
                
                      </
    tr>
            </
    table></td>
        </
    tr>
        </
    table>
        </
    div>
    </
    form
    inserendo l'indirizzo mail parte il send.php

  2. #2
    prima una piccola nota... Se cerchi tra le pilloline c'è il regolamento "implicito" (cioè quelle regole che non son scritte da nessuna parte ma sono dettate dal buon senso) che dice di non postare migliaia di righe di codice (che tanto è uno spreco di tempo e non esistono parser umani) ma di cercare di circoscrivere l'errore...

    Cmq dovrebbe essere a questa riga:
    Codice PHP:
    $row[preparazione
    (se ti stai chiedendo in quale degli script ti rimando al fatto di non postare mille codici diversi ~ comunque in quello in cui spedisci la mail)...

    E se non fosse così (e potrebbe essere) hai provato a fare un echo dei risultati della query (altra regola base del regolamento "implicito" e della buona programmazione)?

    Per la cronaca il "regolamento implicito" è qui: http://forum.html.it/forum/showthrea...readid=1063222

    P.S.(Scusa il mio sarcasmo, non voglio essere offensivo, solo è che ogni volta ci sono 10000 righe di codice da spulciare -.-)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    P.S.(Scusa il mio sarcasmo, non voglio essere offensivo, solo è che ogni volta ci sono 10000 righe di codice da spulciare -.-)
    No problem per il sarcasmo hai perfettamente ragione ho postato il codice perche' credevo potesse essere d'aiuto alla risoluzione del problema, evidentemente sbagliavo, ovviamente non si ripetera'.
    Ora vorrei provare a capire dove sbaglio... lo script che crea la query è il send.php come riesco a vedere a video quali dati vengono effettivamente estratti dalla query?
    Queste due righe si occupano di
    salvare i risultati della query nella variabile result
    Codice PHP:
    $result   =   mysql_query($query,   $db); 
    e di salvare il fetch nella variabile $row
    Codice PHP:
    $row   =   mysql_fetch_array($result); 
    Giusto?
    Con questo codice dovrei estrarre il valore contenuto nella variabile preparazione e stamparlo nella tabella
    Codice PHP:
     <div  align=justify>[b]Preparazione:[/b]
    $row[preparazione]</div></td></tr
    Allora in che senso l'errore è li?
    Tra le altre cose il codice presente nella variabile $messaggio non è altro che una trasposizione del contenuto del file view.php che funziona correttamente.
    :master: :master: :master:

  4. #4
    allora facendo un echo della query generata dal send.php ho
    Codice PHP:
    SELECT titoloregionetipopiattopersoneingredientipreparazionenotedifficolta FROM ricette WHERE id
    Quindi non viene correttamente acquisito l'id
    infatti dal view.php viene correttamente passato al form mail dove l'utente dovra' inserire il suo indirizzo mail
    Codice PHP:
    $riga.="<td><a   href=mailricetta.php?id=".$_GET["id"].">Invia la ricetta</a></td>"
    ma poi ovviamente viene perso nel momento in cui premo il tasto invia del form. come posso ovviare?

  5. #5
    per l'id ho ovviato con l'uso delle sessioni adesso viene acquisito regolarmente a video infatti ho
    Codice PHP:
    SELECT titoloregionetipopiattopersoneingredientipreparazionenotedifficolta FROM ricette WHERE id=26 
    nonostante cio' la mail non riporta i dati correttamente l'errore deve essere qui ma non capisco dove
    codice:
    $messaggio = '
    <table width=600 border=1 cellspacing=0 cellpadding=3 align=center>
    <td  width=600 height=56 align=center>$row[titolo]</td>
    <td  valign=top>
    <table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>
    </table>
    <tr bgcolor=#FFFFFF valign=top>
    <td  bgcolor=#FFFFFF width=143> 
    
    Nazione / Regione:
    $row[regione]
    
    
    N.Persone:
    $row[persone]
    
    
    Portata:
    $row[tipopiatto]
    
    
    Difficoltà:
    $row[difficolta]
    
    <td width=452>
    <div align=justify>Ingredienti:
    $row[ingredienti]</div>
    
    <table width=300 border=0 cellspacing=0 cellpadding=0>
    </tr>
    <td height=10></td>
    </tr>
    <div  align=justify>Preparazione:
    $row[preparazione]</div></td></tr>
    </table>
    <div  align=justify>Note:
    $row[note]</div></td></tr>
    </table>
    <table width=600 border=0 cellspacing=0 cellpadding=0 align=center>
    <tr>
    <td height=10></td>
    </tr>
    </table>

  6. #6
    Ho usato le sessioni ed ho cambiato il codice in $messaggio adesso va'
    Codice PHP:
    $messaggio '
                    <td>TITOLO: 
    '
    .htmlentities($row['titolo']).'
    </td>
                    

                    <td>REGIONE: 
    '
    .htmlentities($row['regione']).'
    </td> 
    mi piacerebbe comunque capire perche' creando la tabella non funzionava :master:

  7. #7
    Un'altra domanda quando mi arriva la mail il mittente si visualizza in questo modo Alessandro@ns20.altervista.org come posso evitare di visualizzare la parte dopo la @ ?
    Spero che qualcuno risponda mi sembra quasi di parlare da solo

  8. #8
    Eccomi, scusa la mia assenza ma ho avuto un po' di problemi qui a casa...
    Ho riletto anche il mio messaggio è sono stato un po' stronze*to (scusa ancora -.- ero un po' alterato quel giorno e mi son sfogato con te )
    Cmq...
    Per quanto riguarda la visualizzazione dei dati nella mail *forse* il problema è dato dai delimitatori di stringa (l'apice singolo non interpreta le variabili contenute nella stringa).. Questo è un sistema un po' meno "famoso" di delimitare le stringhe ma comunque valido e funzionante:
    Codice PHP:
    //Riassegno le variabili, giusto x fare un po' di chiarezza, poi puoi usare unset() per pulirle, se vogliamo esser fiscali
    $e_regione row['regione'];
    $e_persone row['persone'];
    $e_piatto $row['tipopiatto'];
    $e_difficolta $row['difficolta'];
    $e_ingredienti $row['ingredienti'];
    $e_preparazione $row['preparazione'];
    $e_note $row['note'];

    $messaggio = <<<EOQ
    <table width=600 border=1 cellspacing=0 cellpadding=3 align=center>
    <td  width=600 height=56 align=center>[b]
    $row[titolo][/b]</td>
    <td  valign=top>
    <table width=100% border=0 cellspacing=1 cellpadding=4 bgcolor=#CCCC99 align=center>
    </table>
    <tr bgcolor=#FFFFFF valign=top>
    <td  bgcolor=#FFFFFF width=143> 

    [b]Nazione / Regione:[/b]
    $e_regione


    [b]N.Persone:[/b]
    $e_persone


    [b]Portata:[/b]
    $e_piatto


    [b]Difficoltà:[/b]
    $e_difficolta

    <td width=452>
    <div align=justify>[b]Ingredienti:[/b]
    $e_ingredienti</div>

    <table width=300 border=0 cellspacing=0 cellpadding=0>
    </tr>
    <td height=10></td>
    </tr>
    <div  align=justify>[b]Preparazione:[/b]
    $e_preparazione</div></td></tr>
    </table>
    <div  align=justify>[b]Note:[/b]
    $e_note</div></td></tr>
    </table>
    <table width=600 border=0 cellspacing=0 cellpadding=0 align=center>
    <tr>
    <td height=10></td>
    </tr>
    </table>
    EOQ; 
    Per quanto riguarda il "problema" della mail (quoto direttamente dal sito www.php.net - funzione mail() )
    Nota come sono scritti i destinatari e le intestazioni, vedi se ti chiarisci le idee!
    Codice PHP:
    <?php
    /* destinatari */
    $destinatari  "Maria <maria@example.com>" ", " // notare la virgola
    $destinatari .= "Enrica <enrica@example.com>";

    /* oggetto */
    $oggetto "Promemoria compleanni di Agosto";
    /* Per inviare email in formato HTML, si deve impostare l'intestazione Content-type. */
    $intestazioni  "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";

    /* intestazioni addizionali */
    $intestazioni .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
    $intestazioni .= "From: Promemoria Compleanni <compleanni@example.com>\r\n";
    $intestazioni .= "Cc: [email]archiviocompleanni@example.com[/email]\r\n";
    $intestazioni .= "Bcc: [email]controllocompleanni@example.com[/email]\r\n";

    /* ed infine l'invio */
    mail($destinatari$oggetto$messaggio$intestazioni);
    ?>
    Ciau
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  9. #9
    grazie per la pazienza ora provo

  10. #10
    perfetto va' alla perfezione ho risolto anche il problema della mail in effetti avevo preso anch'io lo script dal manuale php


    Questo è un sistema un po' meno "famoso" di delimitare le stringhe ma comunque valido e funzionante:
    non lo conoscevo, c'e' qualche altra particolarita' da conoscere a riguardo? ho visto che le variabili le hai riassegnate cosi' $e_regione e' solo per farmi capire che appartenevano al blocco delimitato da <<<EOQ vero?
    Grazie ancora della pazienza

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.