• Super User

    🙂

    Questo tipo di applicazione è molto utile perchè non solo impiega una sola pagina ma evita che si inseriscano indirizzi mail con caratteri non proprio da indirizzo, inoltre gli errori che restituisce nel caso di mali inserimenti appaiono sopra i campi. Può essere usato benissimo anche per i commenti da far pervenire attraverso mail.
    Ovviamente non ha un errore nemmeno nella sintassi xhtml 😄


  • User

    Ciao, bellissima form complimenti!

    Mi rendo conto che sto x fare una domanda imbarazzantemente sciocca, ma non lo so 😞

    Io ho bisogno di fare una form quasi come questa. A errore deve inserire una label senza cambiare pagina, e a conferma deve restare nella stessa pagina (cancellareil modulo, ok, ma tenere tutto il resto di quel layout).. inoltre devo inserirla su estensione .html

    Ditemi, dimmi, che c'è una soluzione...


  • Super User

    Ma questa ad errore non cambia pagina, ti segna rosso i campi che non hai riempito bene. Anche dopo l'invio non cambia pagina, è sempre la stessa...Per l'estensione in html credo che non so aiutarti, questa form richiede php, ma se conosci qualche tecnica di url rewrite puoi provare a renderla html. 😉


  • User

    Grazie Pikadilly,
    si puo fare con htacces l'interpretazione del php su html, solo che su Register non funziona mannaggia (altrove si, appena provato). Ho aperto un topic piu specifico.
    Grazie della risposta!


  • User

    AutoEdit. sorry!!! Cancellate pure!


  • User

    Riprendo questo topic perchè avrei bisogno di un piccolo aiuto, nell'implementazione di un captcha. Nella mia precedente form utilizzavo il codice di seguito nella pagina "invia.php", per confrontare le due stringhe:

    session_start();
    $utente = $_POST['captcha'];
    $validato = $_SESSION['veri'];
    
    --------------------------
    if($utente == $validato){
    }else{
    ecc...
    

    ho provato a riadattarlo ma non effettua alcun confronto del codice. Come posso fare? Vi ringrazio in anticipo 🙂


  • User Attivo

    image


  • User

    Ciao,
    innanzitutto complimenti per lo script.
    Se volessi aggiungere dei campi al form e renderli obbligatori, cosa dovrei modificare?
    Ho provato ad aggiungere il campo nome ed il campo cognome così:
    [PHP]
    define("errore_nome_predefinito","Non ha inserito il nome!");
    define("errore_cognome_predefinito","Non ha inserito il cognome!");
    define("segnaposto_nome","Inserisca il Suo nome");
    define("segnaposto_cognome","Inserisca il Suo cognome");
    function generaModulo($oggetto=segnaposto_oggetto,$email=segnaposto_email,$messaggio=segnaposto_messaggio,$nome=segnaposto_nome,$cognome=segnaposto_cognome,$errore_oggetto="",$errore_email="",$errore_messaggio="",$errore_nome="",$errore_cognome=""){
    [/PHP]
    e poi:
    [PHP]
    <tr>
    <td>Nome*</td>
    <td><label>
    <?php if (!$errore_nome=="") { echo"<span><strong>$errore_nome</strong></span>";} else { echo"";}?><br />
    <input name="nome" type="text" id="nome" value="<?php echo $nome;?>" />
    </label></td>
    </tr>
    <tr>
    <td>Cognome*</td>
    <td><label>
    <?php if (!$errore_cognome=="") { echo"<span><strong>$errore_cognome</strong></span>";} else { echo"";}?><br />
    <input name="nome" type="text" id="cognome" value="<?php echo $cognome;?>" />
    </label></td>
    </tr>
    [/PHP]

    E ancora:
    [PHP]
    <?php if (!isset($_POST['bottone_invio'])) {
    generaModulo();
    } else {
    $nome = isset($_POST['nome']) ? stripslashes ($_POST['nome']) : "";
    $cognome = isset($_POST['cognome']) ? stripslashes ($_POST['cognome']) : "";
    $oggetto = isset($_POST['oggetto']) ? stripslashes ($_POST['oggetto']) : "";
    $email = isset($_POST['email']) ? stripslashes ($_POST['email']) : "";
    $messaggio = isset($_POST['messaggio']) ? stripslashes ($_POST['messaggio']) : "";

      $error  = false;
      $errore_nome = '';
      $errore_cognome = '';
      $errore_oggetto = '';
      $errore_email = '';
    

    $errore_messaggio = '';
    if (controlla($oggetto,1) or ($oggetto==segnaposto_oggetto)) {
    $error = true;
    $errore_oggetto = errore_oggetto_predefinito;
    }

      if ((controlla($nome,1)) or ($nome==segnaposto_messaggio)) { 
          $error = true;
          $errore_nome = errore_nome_predefinito;
      }
      
      if ((controlla($cognome,1)) or ($cognome==segnaposto_messaggio)) { 
          $error = true;
          $errore_cognome = errore_cognome_predefinito;
      }
      if (!isValidEmail($email)){
          $error = true;
          $errore_email = errore_email_predefinito;
      }
      if ((controlla($messaggio,1)) or ($messaggio==segnaposto_messaggio)) { 
          $error = true;
          $errore_messaggio = errore_messaggio_predefinito;
      }
      if ($error){
         generaModulo($nome,$cognome,$oggetto,$email,$messaggio,$errore_nome,$errore_cognome,$errore_oggetto,$errore_email,$errore_messaggio);
      }
      else {
    

    ?>
    <p>
    Ha inserito i seguenti dati:<br />
    <br />
    <b>Nome:</b> <?php echo $nome ?>
    <br />
    <b>Cognome:</b> <?php echo $cognome ?>
    <br />
    <b>Oggetto:</b> <?php echo $oggetto ?>
    <br />
    <b>Email:</b> <?php echo $email ?>
    <br />
    <b>Messaggio:</b> <?php echo $messaggio ?>
    <br />
    </p>
    <?php
    [/PHP]

    ma se provo a far generare l'errore mi compare la frase di errore dell'email nel campo nome, la frase dell'oggetto nel campo cognome...
    Cosa sbaglio?
    Grazie


  • User

    image


  • User Newbie

    Salve ho provato a inserire il form e spedirmi una e-mail ma perchè mi dice di impostare smtp?
    Premetto che provo tutto in locale dopo aver impostato il server remoto e questo è quello che appare dopo che provo a inviare l'email

    **Notice: **Use of undefined constant segnaposto_telefono - assumed 'segnaposto_telefono' in C:..... alla linea 122

    Notice: Undefined variable: telefono in 😄 percorso...alla linea 122

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost:9000" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set oppure mi dice di settarlo in 😄 sul server remoto

    errore alla linea 122 e 123...io ho cambiato l'indirizzo di posta solo nella prima parte devo fare altro? Ringrazio chiunque in anticipo


  • User Newbie

    Grazie a tutti ma ho risolto era solo la configurazione smtp nel file php.ini che non avevo impostato. Ciao e complimenti davvero utile


  • User Newbie

    Purtroppo non ne capisco molto di php, ho solo un dubbio in locale tutto funziona...se io mettessi in linea il sito avrei bisogno anche del database o mi basta aver messo il modulo in una pagina con estensione php? Grazie per la risposta


  • ModSenior

    Ciao rezaur,

    Lo script non utilizza database, pertanto non è necessario.


  • User Attivo

    Scusate, riapro questo bel topic per due o tre domande:

    Se volessi che dopo il click su "Invia", ci fosse prima un ulteriore messaggio di conferma del tipo: Confermi l'invio della mail? ad esempio con un bottone che confermi e invii definitivamente la mail.. ad esempio dopo aver cliccato su Invio sotto appaia un bottone con scritto "Confermi?"

    secondo: per inserire un captcha come potrei fare?

    e per inserire altri campi come checkbox o menu a tendina, potreste farmi un esempio pratico?

    e ultima cosa semplice semplice.. per inserire nella pagina di ringraziamento un redirect, quindi nella pagina che appare dopo l'invio effettuato, conviene usare un metatag per questo?

    Grazie


  • User

    Una domanda che spero non valga un milione di euro....

    lo script non funziona se il server mail non è sullo stesso server dove risiede il sito vero?

    Ho provato sia lo script con doppia pagina che questo in entrambe i casi non invia messaggi alla mailbox, mentre provandoci da un sito dove il server mail è residente funzionano tranquillamente....


  • User

    :omi sto rendendo condo che molti venditori di medicinali on line si accaniscono a inviare dai moduli la loro pubblicità, hanno finalmente capito che le email non rendono più di tanto in quanto finiscono dirette nello spam...
    Fare un "controllo testo inserito" non sarebbe un'idea stupida, secondo voi è possibile?


  • User

    due domande:

    1. come si può formattare il testo (e lo sfondo, etc), contenuto nel php, di risposta a chi ha inviato la e-mail?

    2. come si può rimandare automaticamente chi ha compilato la form alla pagina html?

    grazie

    Stefano


  • User

    mi sa che questo 3d è stato un po' abbandonato SIC!
    cmq i miei problemi di spam li ho risolti inserendo un deterrente
    tutti i campi obbligatori più visualizzazione dell'indirizzo IP del visitatore... lo spam non arriva più


  • User Attivo

    Scusate se riprendo questo topic:

    se volessi mettere un controllo nel mio script devo solo aggiungerci questo?

    [php]
    <?php
    }
    function isValidEmail($email){
    $pattern = "^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$";

    if (eregi($pattern, $email)){
    return true;
    }
    else {
    return false;
    }
    }
    function controlla($stringa,$lunghezza){
    if (strlen($stringa)<$lunghezza){
    return true;
    }
    else {
    return false;
    }
    }
    ?>

    [/php]

    Grazie!


  • User

    Salve ragazzi e complimenti per il forum, davvero ottimo e di grande aiuto.

    Ho scaricato questo script, anche se semplice, funziona perfettamente quindi va benissimo.
    Vi scrivo poichè voorei apportare alcune modifiche:

    1. vorrei inserire un ulteriore campo da inserire sotto la richiesta della mail che richieda il numero di telefono (anche questo campo dovrà essere obbligatorio.
    2. è possibile eliminare i messaggi esempio che sono già scritti nei campi in modo che compaia il campo vuoto?

    Vi dico che io non capisco tanto di php, spero possiate aiutarmi.
    Grazie in anticipo