Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Modulo mail non funziona...

    Ciao e buongiorno.

    Sono arrivato a scrivere quanto sotto andando a vedere varie discussioni e codici in giro per vari siti perchè non capisco una riga di PHP (e poco anche di HTML), però è anche bello cercare di imparare e arrangiarsi.

    Ho fatto questo modulo (che per praticità abbrevio):

    codice HTML:
    <form name="modulo" id="modulo" method="post" action="invio.php">
    ...
    Come giudichi la nostra velocità di risposta alle tue esigenze TECNICHE?<br />
    <input type="textarea" name="VelTecnica">
    <br />
    <br />
    Come giudichi la nostra velocità di risposta alle tue esigenze COMMERCIALI?<br />
    <input type="textarea" name="VelCommerciali">
    <br />
    <br />
    Come giudichi la disponibilità dei prodotti?<br />
    <input type="textarea" name="DispProd">
    ....
    <input type="submit" value="Invia Modulo" />
    </form>
    e ho fatto (scopiazzato) questo file invio.php


    Codice PHP:
    <?php
    //Recupero valori inseriti nel form
    $Settore $_POST['Settore'];
    $Tempo $_POST['Tempo'];
    $Conosciuti $_POST['Conosciuti'];
    $VelTecnica $_POST['VelTecnica'];
    $VelCommerciali $_POST['VelCommerciali'];
    $DispProd $_POST['DispProd'];
    $VelOrdini $_POST['VelOrdini'];
    $PuntOrdini $_POST['PuntOrdini'];
    $EffGrafica $_POST['EffGrafica'];
    $EffAmm $_POST['EffAmm'];
    $FreqComm $_POST['FreqComm'];
    $Contatto $_POST['Contatto'];

    //Compilazione messaggio
    $testo "Settore: " $Settore "\n"
             
    "Tempo: " $Tempo "\n"
             
    "Conosciuti: " $Conosciuti "\n"
             
    "VelTecnica: " $Veltecnica "\n"
             
    "VelCommerciali: " $VelCommerciali "\n"
             
    "DispProd: " $DispProd "\n"
             
    "VelOrdini: " $VelOrdini "\n"
             
    "PuntOrdini: " $PuntOrdini "\n"
             
    "EffGrafica: " $EffGrafica "\n"
             
    "EffAmm: " $EffGrafica "\n"
             
    "FreqComm: " $FreqComm "\n"
              
    "Contatto: " $contatto "\n"
             
    //Invio mail
    mail("mia.mail@azienda.it""Modulo da sito"$testo);

    //Messaggio di conferma all'utente
    echo 'Grazie per il tuo contributo';
    ?>
    Compilo il modulo, premo invio, pagina bianca e non succede nulla ...
    Potete aiutarmi a sistemare?

    Grazie, buona giornata.

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prima cosa, abilita la visualizzazione di tutti gli errori di PHP, così ti rendi conto se hai qualche problema nel codice di invio.php (e ad occhio un errore lo hai alla fine della definizione di $testo, manca un ; alla fine)

    seconda cosa, fai debug di tutti i dati (stampa a schermo tutte le variabili che usi, prima di inviare la email)

    terza cosa, sei sicuro di volere anche email con tutti i campi del form non compilati? O che ti possano scrivere tutto quello che vogliono senza essere guidati (ad esempio, invece di una textarea usare delle select o radio button con valori definiti da te)?

  3. #3
    Aggiungerei che l'input con type "textarea" non esiste.

    Se vuoi che compaia un campo con una singola riga dovresti usare il type "text".

    codice:
    <input type="text" name="qualcosa">


    Se invece vuoi che compaia un campo con più righe dovresti usare il tag "textarea":

    codice:
    <textarea name="qualcosa" rows="4" cols="80"></textarea>

  4. #4
    Ma grazie!!! Bravissimi, funziona!!!

    prima cosa, abilita la visualizzazione di tutti gli errori di PHP, così ti rendi conto se hai qualche problema nel codice di invio.php (e ad occhio un errore lo hai alla fine della definizione di $testo, manca un ; alla fine)
    Vero.

    seconda cosa, fai debug di tutti i dati (stampa a schermo tutte le variabili che usi, prima di inviare la email)
    Andiamo sul "sofisticato" (per le mie capacità)

    terza cosa, sei sicuro di volere anche email con tutti i campi del form non compilati? O che ti possano scrivere tutto quello che vogliono senza essere guidati (ad esempio, invece di una textarea usare delle select o radio button con valori definiti da te)?
    Eh lo so, hai ragione, però dagli esempi trovati in giro, non sono riuscito a capire come recuperare le variabili per esempio delle select, quindi ho ripiegato su un text libero (...). Lo so non è il massimo ...

    <input type="text" name="qualcosa">
    Ok, fatto

    Già che ci sono, "abuso" della vostra disponibilità.
    Alla fine del codice c'è il messaggio di ringraziamento che si traduce visivamente in una schermata bianca con del testo in alto a sinistra ... (osceno!).
    C'è un modo per lasciare il visitatore sulla pagina del modulo, facendo comparire una finestra tipo "Alert" con testo di ringraziamento e pulsante "ok" per chiuderla?

    Potrebbe essere na roba del genere?
    Codice PHP:
    $Messaggio "Messaggio - Alert";
    echo 
    "<script language='javascript'>
        alert('
    $Messaggio');
    </script> 
    Però segnala come errore la riga rossa ...
    Ultima modifica di Paal; 24-07-2017 a 09:12

  5. #5
    in invio.php potresti fare un redirect alla pagina con il modulo passando un parametro, via get, che faccia visualizzare il messaggio:

    invio.php
    Codice PHP:
    header('location: contatti.php?message=sent'); 

    contatti.php (la pagina con il modulo)
    Codice PHP:
    if(@$_GET['message']=='sent'):
        ?><h3 class="success">Messaggio inviato. Grazie!</h3><?php
    endif;
    Naturalmente, se vuoi inserire questo snippet, la pagina con il modulo dovrà avere estensione .php

  6. #6
    PS: Il tag select funziona esattamente come il tag input:

    Ipotizzando tu abbia la seguente select:
    codice:
    <select name="color">
        <option value="red">Rosso</option>
        <option value="green">Verde</option>
    </select>
    Per recuperare il valore selezionato nel form dall'utente farai:
    Codice PHP:
    $var=$_POST['color']; 
    Dove $var conterrà "red" oppure "green".

  7. #7
    G R A N D E lucavizzi!

    Grazie

  8. #8
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    PS: Il tag select funziona esattamente come il tag input:

    Ipotizzando tu abbia la seguente select:
    codice:
    <select name="color">
        <option value="red">Rosso</option>
        <option value="green">Verde</option>
    </select>
    Per recuperare il valore selezionato nel form dall'utente farai:
    Codice PHP:
    $var=$_POST['color']; 
    Dove $var conterrà "red" oppure "green".
    Mi permetta di dissentire
    Se scrivo questo:
    codice:
    <p>
      <label>
        <input type="checkbox" name="Settore_" value="Stampaggio" id="Settore_0" />
        Stampaggio materie plastiche</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Serigrafia" id="Settore_1" />
        Serigrafia</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Tampografia" id="Settore_2" />
        Tampografia</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Stampadigitale" id="Settore_3" />
        Stampa digitale</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Promozionale" id="Settore_4" />
        Materiale promozionale</label>
      <br />
        Altro: <input type="text" name="Settore">
    </p>
    Se anche faccio una selezione multipla, nella mail mi da solo l'ultimo (per esempio se nel modulo fleggo "tampografia" e " Stampa digitale", nella mail trovo solo "stampa digitale".

  9. #9
    Quote Originariamente inviata da Paal Visualizza il messaggio
    Mi permetta di dissentire
    Se scrivo questo:
    codice:
    <p>
      <label>
        <input type="checkbox" name="Settore_" value="Stampaggio" id="Settore_0" />
        Stampaggio materie plastiche</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Serigrafia" id="Settore_1" />
        Serigrafia</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Tampografia" id="Settore_2" />
        Tampografia</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Stampadigitale" id="Settore_3" />
        Stampa digitale</label>
      <br />
      <label>
        <input type="checkbox" name="Settore_" value="Promozionale" id="Settore_4" />
        Materiale promozionale</label>
      <br />
        Altro: <input type="text" name="Settore">
    </p>
    Se anche faccio una selezione multipla, nella mail mi da solo l'ultimo (per esempio se nel modulo fleggo "tampografia" e " Stampa digitale", nella mail trovo solo "stampa digitale".


    Non vedo dove sia la controversia, visto che stai pasticciando con i checkbox e non stai recuperando il value di un tag select...




    Comunque ne ricevi solo uno perché stai usando lo stesso name per tutti i checkbox, di conseguenza, nell'array $_POST, l'elemento con indice "Settore_" viene di volta in volta sovrascritto.



    Fà attenzione che i checkbox e i radio sono campi un po' particolari.
    A differenza degli altri tipi di input, se non spuntati, non vengono affatto inviati insieme al modulo. Spiego con un esempio:

    Se il campo:
    codice:
    <input type="text" name="qualcosa">
    non viene compilato, il modulo creerà comunque, nell'array $_POST la coppia chiave/valore "qualcosa"=>""
    Dove il valore è una stringa vuota.

    Se, invece, il campo è di tipo checkbox (o radio) e il checkbox non viene spuntato dall'utente, $_POST['qualcosa'] non sarà affatto settato, quindi se tenti di recuperarlo con
    Codice PHP:
    $var=$_POST['qualcosa']; 
    L'interprete PHP lancerà un "Warning: undefined index 'qualcosa'", che non è bello da vedere...


    Per ovviare dovresti usare @ prima di $_POST, per indicare all'interprete che sai benissimo che quell'indice potrebbe non essere settato:

    Codice PHP:
    $var=@$_POST['name_del_checkbox']; 
    Ultima modifica di lucavizzi; 24-07-2017 a 17:36

  10. #10
    ... visto che stai pasticciando con i checkbox e non stai recuperando il value di un tag select...
    CHI ?!?!??
    IO?!?!?
    PASTICCIARE IO?!?!?!

    Ah, allora si nota

    Ti ringrazio tanto per il tuo tempo e la disponibilità. La settimana prossima dovrei riuscire a mettere a posto il modulo seguendo le tue indicazioni.

    Per intanto, grazie ancora e buone cose!

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.