• User Attivo

    Problema con un esempio proposto nella home del portale

    Inanzitutto ciao a tutti....

    volevo chiedere informazioni riguardanti un esempio che ho trovato a questo http://www.giorgiotave.it/guida_php/invio_email.php indirizzo....

    Vi spiego brevemente cosa mi succede...
    Copio spudoratamente la parte di codice che va da

    <html>
    <body>
    <form method="get" action="send.php">
    ......
    </html>

    in un file di testo che chiamerò index.php

    Dopodichè copio la seconda parte

    <?php
    if(!$risultato = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$",
    .....
    ?>

    in un altro file di testo che chiamerò send.php....
    Ricordo che il codice l'ho copiato spudoratamente quindi è impossibile che abbia fatto errori di battitura (a meno che non sono neanche capace di fare copia/incolla :D).Bene,metto tutto nella cartella "www" di easyphp (magari ci sono programmi migliori...ehehe ma lo faccio x hobby),faccio partire il tutto da localhost e mi da questi errori:

    Notice: Undefined variable: emaildestinatario in c:\programmi\easyphp1-8\www\send.php on line 3

    Notice: Undefined variable: emaildestinatario in c:\programmi\easyphp1-8\www\send.php on line 4
    Questa non è una email valida.

    ...come mai?cosa c'è che non va???

    Grazie anticipatamente per le risposte!


  • User Attivo

    E' un problema di impostazioni di PHP, ma sono corrette le tue, modifica send.php così:

    
    <?php
    
    $emaildestinatario = $_GET&#91;'emaildestinatario'&#93;;
    $nomedestinatario = $_GET&#91;'nomedestinatario'&#93;;
    $nomemittente = $_GET&#91;'nomemittente'&#93;;
    $emailmittente = $_GET&#91;'emailmittente'&#93;;
    
    if&#40;!$risultato = ereg&#40;"^&#91;^@ &#93;+@&#91;^@ &#93;+\.&#91;^@ \.&#93;+$", $emaildestinatario&#41;&#41;&#123;
    echo " Questa $emaildestinatario non è una email valida";
    &#125;else&#123;
    $messaggio="";
    $messaggio .="Ciao **$nomedestinatario!!$nomemittente Ti ha mandato una email dal sito www.giorgiotave.it ";
    $destinatario= "$emaildestinatario";
    $oggetto="Modulo inviato dal sito www.giorgiotave.it";
    $intestazioni="From: $nomemittente<>\n";
    $messaggio.="\n Ecco cosa ti ha scritto&#58;\n $commenti";
    $intestazioni.="Reply-To&#58; $emailmittente";
    mail&#40;$destinatario,$oggetto,$messaggio,$intestazioni&#41;;
    echo "ecco cosa hai mandato
    $messaggio";
    echo "
    <a href=\"http&#58;//www.giorgiotave.it\">Torna alla Home</a>";
    &#125;
    ?>
    
    

  • User Attivo

    grazie della risposta...

    azzz è venuto fuori un altro problema (ho dovuto aggiungere una stringa di codice "$commenti = $_GET['commenti'];" perchè non c'era...

    comunque il problema è questo

    Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\programmi\easyphp1-8\www\send.php on line 19

    da quello che ho capito mi dice che la porta smtp non è settata nel php.ini...come faccio a settarla?cioè...apro il file e la setto,ma che valore ci devo mettere?


  • Super User

    puoi indicare il tuo compter come server smtp se stai lavorando in locale.

    quindi apri php.ini, cerca smtp e impostalo uguale al nome del tuo computer. :ciauz:


  • User Attivo

    @Tymba said:

    puoi indicare il tuo compter come server smtp se stai lavorando in locale.

    quindi apri php.ini, cerca smtp e impostalo uguale al nome del tuo computer. :ciauz:

    e se tipo lo volessi far girare in uno spazio web,x esempio su aruba?

    ho modificato il php.ini come mi hai detto di fare...ma ci sarebbe un altra cosa da cambiare

    [mail function]
    ; For Win32 only.
    SMTP = casa
    smtp_port = 25

    ; For Win32 only.
    ;sendmail_from = [email][email protected][/email]

    questo in grassetto come lo modifico?perchè se cambio solo il nome del server smtp metttendolo da "localhost" a "casa" (che è il nome del mio pc) continua a darmi lo stesso errore

    Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\programmi\easyphp1-8\www\send.php on line 19

    in + nn capisco xke mi continua a citare "localhost" come nome del server e non "casa"


  • User Attivo

    uao alla fine sono riuscito a risolvere il problema : non so come mai ma x qualche strano motivo il file php.ini non me lo caricava "modificato" da easyphp...lasciando l'smtp di default...

    alla fine ho utilizzato la "ini_set()" direttamente nel codice e come indirizzo di server smtp ho messo x prova quello di tiscali (smtp.tiscali.it) dato che mettendo "casa" non andava...

    adesso funziona tutto,grazie x i consigli che mi avete dato!!!