Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Invio di email

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    321

    Invio di email

    devo fare un form nel quale l'utente riempi i campi con i propri dati (da il consenso alla privacy)e poi cliicando sul tasto iscrivimi invia un email ad un indirizzo impostato. io ho crato questa pagina

    ISCRIVI.HTML:

    <title>Iscrivi</title>
    </head>
    <body>
    <form name="info" method="post" action="invia.php">


    Nome: <input name="nome" type="text">
    Cognome: <input name="cognome" type="text">


    Città: <input name="citta" type="text">
    </p>


    Indirizzo email: <input name="email" type="text">
    </p>




    <textarea name="textarea">Menate varie per la privacy</textarea>
    <input name="autorizza" type="checkbox" value="autorizza">
    Per presa visione
    <input type="submit" name="Submit" value="Iscrivimi">
    </p>
    </form>
    </body>
    </html>

    poi ho definito la pagina INVIA.PHP
    <?php
    if (!isset($_POST['nome']) or !isset($_POST['cognome']) or !isset($_POST['citta']) or !isset($_POST['email']) or !isset($_POST['autorizza'])) {
    echo("Form incompleto, tornare indietro e completarlo in ogni sua parte");
    }
    else {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $citta = $_POST['citta'];
    echo("Grazie per averci contattato");
    mail("webmaster@novecento.it", "Iscrizione", "Linea 1\nLinea 2\nLinea 3");
    }
    ?>

    Non capisco perche non funziona.....qualcuno può aiutarimi perfavore

    grazie

  2. #2
    possiamo sapere cos'è che non funziona?quel codice in invia.php controlla semplicemente che ogni campo sia stato compilato e poi invia una mail all'indirizzo specificato, mettendo come oggetto Iscrizioni e come testo "Linea1\nLinea2\nLinea3".
    tu vuoi mandare i dati dell'utente via mail?allora lo devi specificare nel testo.
    dai un'occhiata alla funzione mail(), e a questo formmail tratto dal sito di daniele_dll.



    ps oltre a controllare che tutti i dati siano stati inseriti, fai un bel controllo sulla correttezza, e quindi che ogni dato abbia la forma corretta [tramite le espressioni regolari ad esempio, trovi molta documentazione sia sul forum che on-line]
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    321
    ok ma sei io voglio che nell'email che mi arriva compaiano i dati inseriti nei campi che devo metterci nella riga:


    mail("webmaster@novecento.it", "Iscrizione", "Linea 1\nLinea 2\nLinea 3");



    Inoltre come faccio a far si che se uno non seleziona la "presa visione" non invii l'email?

    grazie mille 13manuel84

    dani

  4. #4
    hai guardato i vari link che ti ho postato?

    Originariamente inviato da ddddddd
    ok ma sei io voglio che nell'email che mi arriva compaiano i dati inseriti nei campi che devo metterci nella riga:

    mail("webmaster@novecento.it", "Iscrizione", "Linea 1\nLinea 2\nLinea 3");

    devi crearti una variabile $testo e metterla all'interno della funzione mail:

    codice:
    $nome = $_POST['nome']; 
    $cognome = $_POST['cognome']; 
    $email = $_POST['email']; 
    $citta = $_POST['citta']; 
    
    $testo = "Nome: ".$nome."\n";
    $testo .= "Cognome: ".$cognome."\n";
    $testo .= "E-mail".$email."\n";
    $testo .= "Città: ".$citta."\n";
    
    mail("webmaster@novecento.it", "Iscrizione", $testo, "From: $email");
    questo è un piccolo esempio senza nessun tipo di controllo, ma ripeto, fai un controllo su ogni singolo dato, altrimenti, in questo caso ti passano per buoni anche valori fatti di soli spazi, o e-mail del tipo 11111111111111 [che non è un indirizzo valido].

    dai un'occhiata, prima di tutto al manuale su php.net alle funzioni trim() e stripslashes(); poi puoi passare a fare un controllo attraverso le espressioni regolari [ci sono mille e mille discussioni anche qui sul forum, basta una ricerca].


    Originariamente inviato da ddddddd
    Inoltre come faccio a far si che se uno non seleziona la "presa visione" non invii l'email?

    grazie mille 13manuel84

    dani
    beh, nel tuo caso mi sembra che se non selezioni la voce "presa visione" la mail non parta, quindi non capisco la domanda.

    detto questo penso di aver detto tutto, o quasi!buon lavoro!

    ps: leggilo però il manuale, almeno nei punti indicati nei mie 2post. perché dalle domande che hai fatto sopra sembra che tu non li abbia letti. poi se ci sono altri dubbi posta pure
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    321
    scusami 13manue se ti disturbo ancora
    ho letto i link che mi hai madato e questo è il file invia.php che ho generato:

    <?php
    if (!isset($_POST['nome']) or !isset($_POST['cognome']) or !isset($_POST['citta']) or !isset($_POST['email']) or !isset($_POST['autorizza'])) {
    echo("Form incompleto, tornare indietro e completarlo in ogni sua parte");
    }
    else {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $citta = $_POST['citta'];

    $testo = "Nome: ".$nome."\n";
    $testo = "Cognome: ".$cognome."\n";
    $testo = "E-mail".$email."\n";
    $testo = "Città: ".$citta."\n";

    mail("webmaster@novecento.it", "Iscrizione", $testo, "From: $email");
    }
    ?>



    ma ho provato a mettere in linea i due file (html e php) ma quando clikko sul tasto "Iscrivimi" mi compare questo messaggio:



    Method Not Allowed
    The requested method POST is not allowed for the URL /invia.php.
    --------------------------------------------------------------------------------
    Apache/1.3.26 Server at www.melampoeditore.it Port 80




    mi puoi dire che vuol dire?? scusami se ti stresso
    grazie milleee

  6. #6
    la variabile $testo creala come ho fatto io nel post sopra. facendo come fai tu ogni riga sovrascrive la successiva.


    l'errore che ti restituisce è dato dal tuo webserver, non dal php. lo script è giusto, ma il tuo webserver impedisce il passaggio di dati tramite il metodo POST. C'e' una direttiva di apache nel file di configurazione, httpd.conf, che lo gestisce

    codice:
    <Directory "C:/Documents and Settings/*/My Documents/My Website"> 
    # AllowOverride FileInfo AuthConfig Limit 
    # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
    # <Limit GET POST OPTIONS PROPFIND> 
    # Order allow,deny 
    # Allow from all 
    # </Limit> 
    # <LimitExcept GET POST OPTIONS PROPFIND> 
    # Order deny,allow 
    # Deny from all 
    # </LimitExcept> 
    #</Directory>
    dai un'occhiata a questa guida.

    non saprei dirti di più visto che non è che me ne intenda parecchio di 'ste cose

    comunque giusto per curiosità, prova a cambiare il method del form e a mettere GET. le vedi le varibili nella barra degli indirizzi?



    ps: a me il tuo form funziona!quindi abbiamo il webserver settato diversamente, non è un problema di script.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    321
    ho provato a mettere Get sul form (invece di Post) e mi va in una pagina bianca del browser, la quale ha come url i campi delle variabili:

    http://www.melampoeditore.it/invia.p...bmit=Iscrivimi


    è un buon segno?

  8. #8
    è un buon segno nel senso che il metodo GET almeno ti funziona, era una semplice prova niente di più
    hai provato a smanettare nel file di configurazione di apache?o almeno a darci un'occhiata?sei tu il "proprietario" o sei ospite di un qualche ISP?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    321
    sono il propritario, l' ho comprato su register.it, ho provato a vedere se magari lo spazio che ho comprato non contempla la presenza di file php.....ma chiaramente non ci capisco niente

    ma secondo te dove lo posso controllare il "file di configurazione di apache"??

  10. #10
    per proprietario intendevo che hai accesso al file di configurazione e che lo puoi modificare; lo puoi fare?se si fai una ricerca sul tuo pc e vedi dove sta il tuo httpd.conf, altrimenti contatta chi ti fornisce l'hosting.



    quando hai installato php, hai caricato tutto il necessario?compreso Apache?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.