• User

    Vuoi dire che: php funziona quindi il problema è di xoom?

    Ci possono essere problemi se il file php lo faccio girare su altervista e lascio tutto il resto su xoom?

    Aspettando che che xoom mi dia una risposta più decente...


  • User

    Ciao a tutti...ciao portapipe come va?

    avrei bisogno di rendere obbligatori i campi $ragionesociale, $email e $ info

    Si potrebbe avere la soluzione integrata in questo codice?:)

    Innanzitutto grazie :ciauz:
    <?php
    $ragionesociale=$_POST['txtRagioneSociale'];
    $email=$_POST['txtEmail'];
    $info=$_POST['txtInfo'];
    $tutticampi='Ragione Sociale: '.$ragionesociale.' , Email: '.$email.' , Info: '.$info;
    mail("nomedella@mail","Richiesta Di Informazioni", $tutticampi);
    echo 'E-mail inviata con successo!!';
    ?>


  • User

    potresti scrivere così

    [PHP]
    <?php
    $ragionesociale=$_POST['txtRagioneSociale'];
    $email=$_POST['txtEmail'];
    $info=$_POST['txtInfo'];
    if ($ragionesociale) {
    if ($info) {
    if ($email) {
    //questo funziona solo con PHP >= 5.2
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $tutticampi='Ragione Sociale: '.$ragionesociale.' , Email: '.$email.' , Info: '.$info;
    mail("nomedella@mail","Richiesta Di Informazioni", $tutticampi);
    echo 'E-mail inviata con successo!!';
    } else
    echo "email non corretta!";
    } else
    "non hai inserito la email!";
    } else
    "non hai inserito le info!";
    } else
    "non hai inserito la ragione sociale!";
    ?>
    [/PHP]


  • User

    Grazie mille Emulman....adesso provo subito:)
    :ciauz:


  • User

    Ho provato ma non funziona...
    evidentemente non ho una versione di php 5.2 :bho:
    Infatti quando provo , mi esce solo una schermata bianca senza nessuna esecuzione, nemmeno una stringa di errore...nulla
    Come potrei fare per le versioni precedenti?

    grazie in anticipo


  • User Attivo

    Allora, ci sono molti modi per validare un form.
    I migliori sono quelli scritti in javascript e i super belli in jQuery (seguendo le indicazioni riesci a creare cose molto belle con poca conoscenza).
    Il sistema invece più semplice a mio avviso è fare un controllo sui campi.
    Se il campo è uguale a "" (cioè nessun carattere) allora rimanda alla pagina del form con un messaggio.
    Nella pagina form scrivi a video il messaggio mentre nella pagina invia metti il controllo:
    [PHP]
    //lo inserisci dove vuoi che compaia il messaggio
    <?php
    if($_GET['msg']){
    echo $_GET['msg'];
    }
    ?>
    [/PHP]
    In questo modo prenderà il messaggio dalla url solo se questo esiste.
    Nella pagina di invio invece metti per ogni campo:
    [PHP]
    <?php
    // qui dice: SE il campo txtRagioneSociale è uguale a nessun carattere
    if($_POST['txtRagioneSociale']==""){
    //allora reindirizzami alla pagina form passando la variabile msg tramite GET con il valore: Riempire tutti i campi obbligatori!
    header("location:form.php?msg=Riempire tutti i campi obbligatori!");
    }
    ?>
    [/PHP]
    Semplice no? Sono dei semplici controlli.
    Se il campo è vuoto mi reindirizzi. Non c'è bisogno di specificare altro (SE blabla ALTRIMENTI blabla) perché a noi interessa che non sia vuoto. SE è vuoto allora rimandami alla pagina altrimenti continua con lo script.
    Fai così per tutti i campi.
    Se vuoi puoi personalizzare tutti i messaggi oppure ne fai uno unico per tutti, in questo caso allora fai un controllo esteso per risparmiare tempo e spazio:
    [PHP]
    <?php
    // qui dice: SE il campo txtRagioneSociale è uguale a nessun carattere OPPURE (composto dalle due barre verticali) email OPPURE info sono uguali a nessun carattere
    if($_POST['txtRagioneSociale']=="" || $_POST['txtEmail']=="" || $_POST['txtInfo']==""){
    //allora reindirizzami alla pagina form passando la variabile msg tramite GET con il valore: Riempire tutti i campi obbligatori!
    header("location:form.php?msg=Riempire tutti i campi obbligatori!");
    }
    ?>
    [/PHP]

    Non è il sistema migliore ma è intuitivo e semplice per chi è alle prime armi! 🙂


  • User

    <?php
    // qui dice: SE il campo txtRagioneSociale è uguale a nessun carattere OPPURE (composto dalle due barre verticali) email OPPURE info sono uguali a nessun carattere
    if($_POST['txtRagioneSociale']=="" || $_POST['txtEmail']=="" || $_POST['txtInfo']==""){
    //allora reindirizzami alla pagina form passando la variabile msg tramite GET con il valore: Riempire tutti i campi obbligatori!
    header("location:form.php?msg=Riempire tutti i campi obbligatori!");
    }
    ?>

    Direi che questo può andare bene.
    Come viene integrato usando questo script?

    <?php
    $ragionesociale=$_POST['txtRagioneSociale'];
    $email=$_POST['txtEmail'];
    $info=$_POST['txtInfo'];
    $tutticampi='Ragione Sociale: '.$ragionesociale.' , Email: '.$email.' , Info: '.$info;
    mail("[email protected]","Richiesta Di Informazioni", $tutticampi);
    echo 'E-mail inviata con successo!!';

    grazie...:gthi:


  • User Attivo

    Se leggi bene il mio post c'è scritto.
    Se non lo vedi comunque ci arrivi per logica: i file php vengono compilati (diciamo eseguiti) dall'alto in basso quindi il controllo che hai quotato andrà prima della funzione mail.
    Puoi metterla anche all'inizio.
    LEGGI BENE quello che ho scritto nel posto precedente e arrivaci da solo...


  • User

    Ho provato e ci sono quasi riuscito.
    Quando lascio i campi vuoti nel form e premo su INVIA? il messaggio (tutti i campi sono obbligatori) esce correttamente!
    Il problema è che ilo messaggio parte ugualmente e nella mia posta elettronica, la email arriva logicamente priva di dati.
    Come devo fare per evitare che il messaggio parta anche quando i campi sono vuoti?
    Posto i 3 passaggi che ho fatto, per essere più preciso?

    1)Questa è la pagina del form in html presente sul sito:
    <form action="formmail2.php" method="post" name="frmModulo" id="frmModulo" onSubmit="return Convalida()">
    <table width="400"border="0"cellpadding="0"cellspacing="0"bgcolor="yellow">
    <tr>
    <td>Nome e cognome*: </td>
    <td><input name="txtRagioneSociale"type="text"id="txtRagioneSociale"size="34"></td>
    </tr>
    <tr>
    <td>Email*:</td>
    <td><input name="txtEmail"type="text"id="txtEmail"size="34"></td>
    </tr>
    <tr>
    <td valign="top">Messaggio:</td>
    <td><textarea name="txtInfo"cols="27"rows="6"id="txtInfo"></textarea></td>
    </tr>
    <tr>
    <td colspan="2">* Dati obbligatori </td>
    </tr>
    <tr align="right">
    <td colspan="2"><input name="InviaModulo"type="submit"id="InviaModulo"value="Invia">
    <input name="Reimposta"type="reset"id="Reimposta"value="Reimposta"></td>
    </tr>
    </table>
    </form>

    2)Poi ho preparato un file che ho chiamato ?formmail2.php? , inserendoci questo codice
    <?php
    if($_POST['txtRagioneSociale']=="" || $_POST['txtEmail']=="" || $_POST['txtInfo']==""){
    header("location:form.php?msg=Riempire tutti i campi obbligatori!");
    }
    $ragionesociale=$_POST['txtRagioneSociale'];
    $email=$_POST['txtEmail'];
    $info=$_POST['txtInfo'];
    $tutticampi='Ragione Sociale: '.$ragionesociale.' , Email: '.$email.' , Info: '.$info;
    mail("la [email protected]","Richiesta Di Informazioni", $tutticampi);
    echo'E-mail inviata con successo!!';
    ?>

    Ed infine ho creato un altro file denominato ?form.php? e questo è il suo contenuto:
    <?php
    if($_GET['msg']){
    echo $_GET['msg'];
    }
    ?>

    Se non compilo nulla il messaggio (Riempire tutti i campi obbligatori) esce correttamente!
    Se compilo tutto il form, il messaggio (email inviata con successo) esce correttamente
    Il problema pare che sia solo come spiegato all? inizio, ovvero che il messaggio parte comunque anche con i campi vuoti?
    Potresti postarmi per cortesia il codice corretto?Scusami , ma so duro!!


  • User Attivo

    Di sicuro 😉
    Ci sei quasi andato vicino.
    Il file form.php di cui parlavo era il file con il form, nel tuo caso il form in html (che diventerà in php con l'aggiunta del messaggio del GET).
    Quindi sopra il form della pagina html (che rinominerai .php) inserisci quello che hai messo nella pagina form.php.
    Per quanto riguarda il codice basta aggiungere un ALTRIMENTI e così invierà la mail SOLO SE i campi inseriti nella condizione non sono uguali a ""
    [PHP]
    <?php
    if($_POST['txtRagioneSociale']=="" || $_POST['txtEmail']=="" || $_POST['txtInfo']==""){
    header("location:form.php?msg=Riempire tutti i campi obbligatori!");
    }else{
    $ragionesociale=$_POST['txtRagioneSociale'];
    $email=$_POST['txtEmail'];
    $info=$_POST['txtInfo'];
    //se vai a capo quando apri gli apici singoli andrai a capo anche nella mail, quindi verrà tutto più ordinato:
    $tutticampi='
    Ragione Sociale: '.$ragionesociale.'
    Email: '.$email.'
    Info: '.$info;
    mail("la [email protected]","Richiesta Di Informazioni", $tutticampi);
    echo'E-mail inviata con successo!!';
    }
    ?>
    [/PHP]
    Ho fatto una piccola modifica anche alla variabile tutticampi. E' commentata subito sopra.
    ciao

    p.s. se ti sforzi a creare il codice sono contento di darti una mano, ma se devo scrivertelo tutto io allora non mi piace perché non impari e non si raggiunge lo scopo del forum. Sono felice che tu ci abbia provato. Non è più gratificante? :ciaosai:


  • User

    🙂
    Ora è tutto ok...

    Il tuo aiuto è stato prezioso!
    :ciauz: