• User Attivo

    wow 😄 Grazie eheh Vale te hai risolto? e te Salinger? così magari me lo metto da parte perchè funzionante e lo riposterò un pò modificato se non identico eheh


  • User

    Ciao scwd
    continuo ad avere problemi col tuo form più dovuti penso alla mia inesperienza in php che per altro.

    Forse abuso della tua disponibilità ma ho la necessità di creare un form per un mio sito ove sono presenti annunci per fitto di case.

    I campi che vorrei fossero presenti sono:

    • Nome
    • Città
    • email
    • codice casa
    • richiesta
    • cod. verifca

    In particolare per il codice casa vorre che chi richiede info su un appartamento in automatico da un menu a tendina presente nel form risulti selezionato proprio il codice relativo a quell'appartamento.

    Spero di essere stato chiaro.


  • User Attivo

    Eccomi allora guarda l'ho rivisto completamente per te 😉
    [php]
    <?PHP
    //scwd^^
    //La funzione creacodice genera una stringa random di un numero di caratteri pari a
    //$n_caratteri che si trovano nell'array $caratteri (lettere alfabeto e numeri)
    $caratteri=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z','0','1','2','3','4','5','6','7','8','9');
    $codice="";
    $n_caratteri=5; //Numero di caratteri da generare
    for($i=0; $i<$n_caratteri; $i++)
    {
    $x=rand(0,35);
    $codice=$codice.$caratteri[$x];
    }
    if($ctrl==1)
    {
    $verifica_mail = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $mail);
    $x=strcmp($codice_creato,$cod);
    //Controllo campi inseriti
    if(($nome=="")||($mail=="")||($richiesta=="")||(!$verifica_mail)||($x!=0)||($citta==""))
    {
    echo "<font face="verdana" size="2">
    Attenzione - si sono riscontrati i seguenti errori:<br>
    ";
    if($nome=="")
    {echo "<li>Nome non inserito;";}
    if($mail=="")
    {echo "<li>E-mail non inserita;";}
    if($richiesta=="")
    {echo "<li>Testo non inserito;";}
    if(!$verifica_mail)
    {echo "<li>E-mail non valida;";}
    if($citta=="")
    {echo "<li>Città non inserita;";}
    if($x!=0)
    {echo "<li>Codice di conferma inserito non valido;";}
    echo "<br><a href="contattaci.php">Torna indietro</a> e re-inserisci i valori nei campi.<br></font>";
    }
    else
    {
    $oggetto="Richiesta dal tuo sito"; //Oggetto del messaggio
    $mail=" "; //e-mail destinatario
    $header = "From: Dal tuo sito\n";
    $header .= "X-Mailer: Il nostro Php\n";
    // costruiamo le intestazioni specifiche per il formato HTML
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
    $corpo="<br>
    Nome: $nome;<br>
    Citta: $citta;<br>
    e-mail: $mail;<br>
    Codice casa: $cod_casa;<br>
    IP: $REMOTE_ADDR;<br>
    Testo del messaggio:<br>
    $richiesta<br>
    <br>
    _______________________________________________<br>
    SCWD";
    if( @mail($mail,$oggetto,$corpo,$header))
    {echo "<br><br><font face=verdana size=3 color=blue><b><center>Bene $nome e-mail inviata con successo.</center></b><br></font>";}
    else
    {echo "<br><br><font face=verdana size=3 color=red><b><center>Errore! E-mail non inviata!</center></b><br></font>";}
    }
    }
    else
    {
    echo "
    <form name="contattaci" action="contattaci.php?ctrl=1&codice_creato=$codice" method="post">
    <table align="center">
    <tr>
    <td>
    *Nome
    </td>
    <td>
    <input type="text" size="30" name="nome">
    </td>
    </tr>

    <tr>
    <td>
    *Città
    </td>
    <td>
    <input type="text" size="30" name="citta">
    </td>
    </tr>

    <tr>
    <td>
    *e-mail
    </td>
    <td>
    <input type="text" size="50" name="mail">
    </td>
    </tr>

    <tr>
    <td>
    *Codice casa
    </td>
    <td>
    <select name="cod_casa" style="width: 150px">
    <option selected="selected">$cc</option>
    <option>01</option>
    <option>02</option>
    <option>03</option>
    <option>04</option>
    <option>05</option>
    <option>06</option>
    <option>07</option>
    <option>08</option>
    <option>09</option>
    </select>
    </td>
    </tr>

    <tr>
    <td>
    *Richiesta
    </td>
    <td>
    <textarea name="richiesta" rows="5" style="width: 400px" cols="100"></textarea>
    </td>
    </tr>

    <tr>
    <td>
    *Codice di verifica:<br><b>$codice</b>
    </td>
    <td>
    <input type="text" size="20" name="cod">
    </td>
    </tr>

    <tr>
    <td colspan="2">
    <input type="submit" value="Invia" name="submit">
    </td>
    </tr>
    </table>
    </form>";
    }
    ?>
    [/php]
    Allora ti spiego:
    [php]
    ...
    else
    {
    echo "
    <form name="contattaci" action="contattaci.php?ctrl=1&codice_creato=$codice" method="post">
    <table align="center">
    ...
    [/php]
    Allora dove vedi action ci metti il nome della tua pagina dei contatti, se hai già una pagina integra tutto lo script nella tua pagina e al posto del vecchio form ci metti questo (poi ti aggiusti te la parte grafica a tuo piacimento).
    Poi:
    [php]
    $mail=" "; //e-mail destinatario
    [/php]
    Qui ci metti l'e-mail a cui devono arrivare quindi la tua 😄
    Infine ti spiego cosa ho fatto col select del codice casa:
    Praticamente ho creato i select con 9 codici (puoi mettercene quanti ne vuoi basta aggiungerli) nel primo però se vedi c'è scritto:
    [html]
    <option selected="selected">$cc</option>
    [/html]
    Indica che è selezionato già di suo $cc. Se $cc è nullo non compare niente e quindi chi usa il form seleziona il codice, altrimenti già ha selezionato il codice (e lo può sempre cambiare). L'unica cosa è che per ogni casa che hai per esempio con codice 03 dovrai fare il link non a contatti.php ma bensì a contatti.php?cc=03 in modo che $cc=03 e quindi il primo select risulterà quello 😄
    Spero di essere stato abbastanza chiaro per qualsiasi cosa chiedi pure 😄
    P.S. l'ho provato e funziona eheh


  • User

    ho inserito il tuo script. Mi piace molto ma ho un problema.

    Nella mail che mi giunge non compare l'indirizzo del destinatario ma questa dicitura:

    [email protected] , [email protected] , [email protected]


  • User Attivo

    Mmmmm penso che sia il nome del server che invia l'e-mail...provo a vedere se riesco a non farlo apparire 😄 Ti dico appena trovo la risposta eheh


  • User Attivo

    [php]
    $header = "From: Dal tuo sito\n";
    [/php]
    Guarda ho capito il perchè, dopo sito inserisci o
    [html]
    http://www.tuosito.xxx
    [/html]
    oppure
    [html]
    <tuamail>
    [/html]
    Perchè lui non trovando l'e-mail che invia gli mette di suo quella del server 😄 ho provato ed io ho risolto 😄
    Quindi:
    [php]
    $header = "From: Dal tuo sitohttp://xxx.xxxxxx.xxx\n";
    [/php]


  • User

    non ho risolto. Ho provato sia inserendo l'url del mio che la mia mail ma mi giunge il mio indirizzo mail in questo modo:

    Dal tuo sito [email protected]
    Proprio ora mi sono giunte delle mail (da utenti che hanno utilizzato il tuo form) a cui non posso rispondere perchè non compare la loro mail.

    ti posto il codice utilizzato:

    <?PHP
    //scwd^^
    //La funzione creacodice genera una stringa random di un numero di caratteri pari a
    //$n_caratteri che si trovano nell'array $caratteri (lettere alfabeto e numeri)
    $caratteri=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z','0','1','2','3','4','5','6','7','8','9');
    $codice="";
    $n_caratteri=4; //Numero di caratteri da generare
    for($i=0; $i<$n_caratteri; $i++)
    {
    $x=rand(0,35);
    $codice=$codice.$caratteri[$x];
    }
    if($ctrl==1)
    {
    $verifica_mail = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $mail);
    $x=strcmp($codice_creato,$cod);
    //Controllo campi inseriti
    if(($nome=="")||($mail=="")||($richiesta=="")||(!$verifica_mail)||($x!=0)||($citta==""))
    {
    echo "<font face="verdana" size="2">
    Attenzione - si sono riscontrati i seguenti errori:<br>
    ";
    if($nome=="")
    {echo "<li>Nome non inserito;";}
    if($mail=="")
    {echo "<li>E-mail non inserita;";}
    if($richiesta=="")
    {echo "<li>Testo non inserito;";}
    if(!$verifica_mail)
    {echo "<li>E-mail non valida;";}
    if($citta=="")
    {echo "<li>Città non inserita;";}
    if($x!=0)
    {echo "<li>Codice di conferma inserito non valido;";}
    echo "<br><a href="info_xxxxx.php">Torna indietro</a> e re-inserisci i valori nei campi.<br></font>";
    }
    else
    {
    $oggetto="Richiesta dal tuo sito"; //Oggetto del messaggio
    $mail="[email protected]"; //e-mail destinatario
    $header = "From: Dal tuo sito[email protected]\n";
    $header .= "X-Mailer: Il nostro Php\n";
    // costruiamo le intestazioni specifiche per il formato HTML
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
    $corpo="<br>
    Nome: $nome;<br>
    Citta: $citta;<br>
    e-mail: $mail;<br>
    Codice casa: $cod_casa;<br>
    IP: $REMOTE_ADDR;<br>
    Testo del messaggio:<br>
    $richiesta<br>
    <br>
    _______________________________________________<br>
    SCWD";
    if( @mail($mail,$oggetto,$corpo,$header))
    {echo "<br><br><font face=verdana size=3 color=blue><b><center>$nome e-mail inviata con successo.</center></b><br></font>";}
    else
    {echo "<br><br><font face=verdana size=3 color=red><b><center>Errore! E-mail non inviata!</center></b><br></font>";}
    }
    }
    else
    {
    echo "
    <form name="info_xxxxx" action="info_xxxxxx.php?ctrl=1&codice_creato=$codice" method="post">
    <table align="center">
    <tr>
    <td>
    *Nome
    </td>
    <td>
    <input type="text" size="30" name="nome">
    </td>
    </tr>

    <tr>
    <td>
    *Città
    </td>
    <td>
    <input type="text" size="30" name="citta">
    </td>
    </tr>

    <tr>
    <td>
    *e-mail
    </td>
    <td>
    <input type="text" size="50" name="mail">
    </td>
    </tr>

    <tr>
    <td>
    *Codice casa
    </td>
    <td>
    <select name="cod_casa" style="width: 150px">
    <option selected="selected">$cc</option>
    <option>01</option>
    <option>02</option>
    <option>03</option>
    <option>04</option>
    <option>05</option>
    <option>06</option>
    <option>07</option>
    <option>08</option>
    <option>09</option>
    </select>
    </td>
    </tr>

    <tr>
    <td>
    *Richiesta
    </td>
    <td>
    <textarea name="richiesta" rows="5" style="width: 400px" cols="100"></textarea>
    </td>
    </tr>

    <tr>
    <td>
    *Codice di verifica:<br><b>$codice</b>
    </td>
    <td>
    <input type="text" size="20" name="cod">
    </td>
    </tr>

    <tr>
    <td colspan="2">
    <input type="submit" value="Invia" name="submit">
    </td>
    </tr>
    </table>
    </form>";
    }
    ?>

    Approfitto per chiederti se è possibile evidenziare il codice di validazione per renderlo più visibile anche per all'utente più distratto.

    Di nuovo saluti


  • User Attivo

    Ok allora proviamone un'altra io quando ho messo l'intera url del mio sito ha funzionato quindi prova così:
    [PHP]
    $header = "From: Dal tuo sitohttp://www.xxxxx.xxx\n";
    [/PHP]
    Fammi sapere 😄
    Dai che ci riusciamo 😉
    P.S. cosa volevi fare col DB o coi file?


  • User

    ho copiato ed inserito esattamente il codice così come l'hai riportato nel post (ovviamente inserendo il mio url) e se provo ad inviare una mail mi esce questa scritta:

    Errore! E-mail non inviata!


  • User Attivo

    [php]
    <?PHP
    //scwd^^
    //La funzione creacodice genera una stringa random di un numero di caratteri pari a
    //$n_caratteri che si trovano nell'array $caratteri (lettere alfabeto e numeri)
    $caratteri=array('a','b','c','d','e','f','g','h',' i','j','k','l','m','n','o','p','q','r','s','t','u' ,'v','x','y','z','0','1','2','3','4','5','6','7',' 8','9');
    $codice="";
    $n_caratteri=4; //Numero di caratteri da generare
    for($i=0; $i<$n_caratteri; $i++)
    {
    $x=rand(0,35);
    $codice=$codice.$caratteri[$x];
    }
    if($ctrl==1)
    {
    $verifica_mail = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $mail);
    $x=strcmp($codice_creato,$cod);
    //Controllo campi inseriti
    if(($nome=="")||($mail=="")||($richiesta=="")||(!$ verifica_mail)||($x!=0)||($citta==""))
    {
    echo "<font face="verdana" size="2">
    Attenzione - si sono riscontrati i seguenti errori:<br>
    ";
    if($nome=="")
    {echo "<li>Nome non inserito;";}
    if($mail=="")
    {echo "<li>E-mail non inserita;";}
    if($richiesta=="")
    {echo "<li>Testo non inserito;";}
    if(!$verifica_mail)
    {echo "<li>E-mail non valida;";}
    if($citta=="")
    {echo "<li>Città non inserita;";}
    if($x!=0)
    {echo "<li>Codice di conferma inserito non valido;";}
    echo "<br><a href="info_xxxxx.php">Torna indietro</a> e re-inserisci i valori nei campi.<br></font>";
    }
    else
    {
    $oggetto="Richiesta dal tuo sito"; //Oggetto del messaggio
    $mail="[email protected]"; //e-mail destinatario
    $header = "From: Dal tuo sitohttp://www.xxxxxx.xxx\n";
    $header .= "X-Mailer: Il nostro Php\n";
    // costruiamo le intestazioni specifiche per il formato HTML
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
    $corpo="<br>
    Nome: $nome;<br>
    Citta: $citta;<br>
    e-mail: $mail;<br>
    Codice casa: $cod_casa;<br>
    IP: $REMOTE_ADDR;<br>
    Testo del messaggio:<br>
    $richiesta<br>
    <br>
    _______________________________________________<br >
    SCWD";
    if( @mail($mail,$oggetto,$corpo,$header))
    {echo "<br><br><font face=verdana size=3 color=blue><b><center>$nome e-mail inviata con successo.</center></b><br></font>";}
    else
    {echo "<br><br><font face=verdana size=3 color=red><b><center>Errore! E-mail non inviata!</center></b><br></font>";}
    }
    }
    else
    {
    echo "
    <form name="info_xxxxx" action="info_xxxxxx.php?ctrl=1&codice_creato=$cod ice" method="post">
    <table align="center">
    <tr>
    <td>
    *Nome
    </td>
    <td>
    <input type="text" size="30" name="nome">
    </td>
    </tr>

    <tr>
    <td>
    *Città
    </td>
    <td>
    <input type="text" size="30" name="citta">
    </td>
    </tr>

    <tr>
    <td>
    *e-mail
    </td>
    <td>
    <input type="text" size="50" name="mail">
    </td>
    </tr>

    <tr>
    <td>
    *Codice casa
    </td>
    <td>
    <select name="cod_casa" style="width: 150px">
    <option selected="selected">$cc</option>
    <option>01</option>
    <option>02</option>
    <option>03</option>
    <option>04</option>
    <option>05</option>
    <option>06</option>
    <option>07</option>
    <option>08</option>
    <option>09</option>
    </select>
    </td>
    </tr>

    <tr>
    <td>
    *Richiesta
    </td>
    <td>
    <textarea name="richiesta" rows="5" style="width: 400px" cols="100"></textarea>
    </td>
    </tr>

    <tr>
    <td>
    *Codice di verifica:<br><b>$codice</b>
    </td>
    <td>
    <input type="text" size="20" name="cod">
    </td>
    </tr>

    <tr>
    <td colspan="2">
    <input type="submit" value="Invia" name="submit">
    </td>
    </tr>
    </table>
    </form>";
    }
    ?>
    [/php]
    Provato così?


  • User

    adesso non pare proprio la pagina. Mi compare la scritta errore line 112 ....


  • User Attivo

    Guarda l'ho ri-ri-rivisto 😄 a me ora funziona così:
    [PHP]
    <?PHP
    //scwd^^
    //La funzione creacodice genera una stringa random di un numero di caratteri pari a
    //$n_caratteri che si trovano nell'array $caratteri (lettere alfabeto e numeri)
    $caratteri=array('a','b','c','d','e','f','g','h',' i','j','k','l','m','n','o','p','q','r','s','t','u' ,'v','x','y','z','0','1','2','3','4','5','6','7',' 8','9');
    $codice="";
    $n_caratteri=4; //Numero di caratteri da generare
    for($i=0; $i<$n_caratteri; $i++)
    {
    $x=rand(0,35);
    $codice=$codice.$caratteri[$x];
    }
    if($ctrl==1)
    {
    $verifica_mail = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $mail);
    $x=strcmp($codice_creato,$cod_immesso);
    //Controllo campi inseriti
    if(($nome=="")||($mail=="")||($richiesta=="")||(!$verifica_mail)||($x!=0)||($citta==""))
    {
    echo "<font face="verdana" size="2">
    Attenzione - si sono riscontrati i seguenti errori:<br>
    ";
    if($nome=="")
    {echo "<li>Nome non inserito;";}
    if($mail=="")
    {echo "<li>E-mail non inserita;";}
    if($richiesta=="")
    {echo "<li>Testo non inserito;";}
    if(!$verifica_mail)
    {echo "<li>E-mail non valida;";}
    if($citta=="")
    {echo "<li>Città non inserita;";}
    if($x!=0)
    {echo "<li>Codice di conferma inserito non valido;";}
    echo "<br><a href="info_xxxxx.php">Torna indietro</a> e re-inserisci i valori nei campi.<br></font>";
    }
    else
    {
    $oggetto="Richiesta dal tuo sito"; //Oggetto del messaggio
    $mail="[email protected]"; //e-mail destinatario
    $header = "From: Dal tuo sitohttp://www.xxxxxx.xxx\n";
    $header .= "X-Mailer: Il nostro Php\n";
    // costruiamo le intestazioni specifiche per il formato HTML
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset="iso-8859-1"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
    $corpo="<br>
    Nome: $nome;<br>
    Citta: $citta;<br>
    e-mail: $mail;<br>
    Codice casa: $cod_casa;<br>
    IP: $REMOTE_ADDR;<br>
    Testo del messaggio:<br>
    $richiesta<br>
    <br>
    _______________________________________________<br >
    SCWD";
    if( @mail($mail,$oggetto,$corpo,$header))
    {echo "<br><br><font face=verdana size=3 color=blue><b><center>$nome e-mail inviata con successo.</center></b><br></font>";}
    else
    {echo "<br><br><font face=verdana size=3 color=red><b><center>Errore! E-mail non inviata!</center></b><br></font>";}
    }
    }
    else
    {
    echo "
    <form name="info_xxxxx" action="xxxx.php?ctrl=1&codice_creato=$codice" method="post">
    <table align="center">
    <tr>
    <td>
    *Nome
    </td>
    <td>
    <input type="text" size="30" name="nome">
    </td>
    </tr>
    <tr>
    <td>
    *Città
    </td>
    <td>
    <input type="text" size="30" name="citta">
    </td>
    </tr>
    <tr>
    <td>
    *e-mail
    </td>
    <td>
    <input type="text" size="50" name="mail">
    </td>
    </tr>
    <tr>
    <td>
    *Codice casa
    </td>
    <td>
    <select name="cod_casa" style="width: 150px">
    <option selected="selected">$cc</option>
    <option>01</option>
    <option>02</option>
    <option>03</option>
    <option>04</option>
    <option>05</option>
    <option>06</option>
    <option>07</option>
    <option>08</option>
    <option>09</option>
    </select>
    </td>
    </tr>
    <tr>
    <td>
    *Richiesta
    </td>
    <td>
    <textarea name="richiesta" rows="5" style="width: 400px" cols="100"></textarea>
    </td>
    </tr>
    <tr>
    <td>
    *Codice di verifica:<br><b>$codice</b>
    </td>
    <td>
    <input type="text" size="20" name="cod_immesso">
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <input type="submit" value="Invia" name="submit">
    </td>
    </tr>
    </table>
    </form>";
    }
    ?>
    [/PHP]
    Attento a quello che modifichi 😉


  • User

    scwd mi dispiace continuare a scocciarti ma il problema non è risolto.

    Reimpio i campi, invio la mail ma anzichè ricevere nella mia casella di posta la mail del mittente mi giunge questo testo :

    Dal tuo sito <ttp:// w*. [email protected]>

    Può essere che il problema derivi proprio da aruba?


  • User Attivo

    Questo lo manda perchè è il server a mandare la mail...però io con aruba non avevo questi problemi...riprova a reinserire l'e-mail anzichè il sito...mah 😄


  • User

    nulla di nuovo, inserendo la mail al posto dell'url mi giunge nell'indirizzo del mittente il mio indirizzo.


  • User Attivo

    Qualcun'altro ha una soluzione?


  • Consiglio Direttivo

    @salinger said:

    nulla di nuovo, inserendo la mail al posto dell'url mi giunge nell'indirizzo del mittente il mio indirizzo.
    Ciao salinger
    spero di non aver fatto confusione nel comprendere il problema 😉

    mi pare di capire che dal form l'utente ti manda una mail al tuo indirizzo e dovrebbe arrivarti:
    Mittente: mail dell'utente
    Destinatario: la tua mail

    Recuperati i dati dovrai assegnare la variabile che memorizza la mail dell'utente nell'header FROM
    [php]$header = "From: ".$mail_utente."\n";[/php]

    Se ho capito bene il problema dovrebbe essere questo.....se ho capito male....pardon 😄

    :ciauz:


  • User Attivo

    Si è così Samyron 😄 ma il problema è che a lui come mittente gli continua ad arrivare quel benedetto server di aruba 😛


  • Consiglio Direttivo

    ciao scwd
    finchè l'header rimane in questo modo
    [php]$header = "From: Dal tuo sitohttp://www.xxxxxx.xxx\n";[/php]
    gli arriverà perforza il server aruba 😄

    dovrà modificarlo in tal modo
    [php]$oggetto="Richiesta dal tuo sito"; //Oggetto del messaggio
    $mail="[email protected]"; //e-mail destinatario
    $header = "From: ".$mail."\n"; // da e-mail utente[/php]

    vediamo se così funge 😉


  • User Attivo

    Samyron lo so purtroppo eheh 😄 No ti spiego, praticamente se vedi un pò più su ho detto di mettere l'e-mail nel From ma purtroppo continua ad avere problemi, mentre a me non mi da problemi ne se inserisco l'e-mail ne se inserisco l'indirizzo del mio sito, però aruba da problemi, quindi l'unica è riprovare come dici tu di nuovo con l'e-mail e speriamo bene 😄