Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Form PHP che non invia dati se non compilati

    Ciao a tutti,
    mi trovo a dover fare il classico moduletto in php che invia una mail.

    Nel forum ho trovato questo:
    Codice PHP:
    <?php

    $nome 
    htmlspecialchars($_REQUEST["nome"]);
    $cognome htmlspecialchars($_REQUEST["cognome"]);
    $ragionesociale htmlspecialchars($_REQUEST["ragionesociale"]);
    $email htmlspecialchars($_REQUEST["email"]);
    $indirizzo htmlspecialchars($_REQUEST["indirizzo"]);
    $cap htmlspecialchars($_REQUEST["cap"]);
    $localita htmlspecialchars($_REQUEST["localita"]);
    $provincia htmlspecialchars($_REQUEST["provincia"]);
    $telefono htmlspecialchars($_REQUEST["telefono"]);

    /* destinatario */
    $destinatari  "mail@mail.it";


    /* oggetto */
    $oggetto "Contatti dal sito";

    /* Lettura dei campi provenienti dal Form */


    /* messaggio */


    $messaggio '

    Nome: '
    .$nome.'

    Cognome: '
    .$cognome.'


    Ragione Sociale: '
    .$ragionesociale.'

    E-mail: '
    .$email.'

    Indirizzo: '
    .$indirizzo.'

    Cap: '
    .$cap.'

    Località: '
    .$localita.'

    Provincia: '
    .$provincia.'

    Telefono: '
    .$telefono.'


    '
    ;

    /* Impostazione per l'invio in formato HTML. */
    $intestazioni  "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $intestazioni .= "From: Contatti dal sito <mail@mail.it>\r\n";


    /* Invio e-mail*/
    if (mail($destinatari$oggetto$messaggio$intestazioni))
    {
      
    header("Location: conferma.html"); 
    }

    ?>

    però vorrei che se un campo non viene compilato, il sistema non lo invia per e-mail.

    Credete che si possa fare?
    Grazie in anticipo!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Certo, basta fare un controllo sulla stringa
    Codice PHP:
    if($_REQUEST['nome_campo'] == "") {
       
    //il campo non è stato compilato e non va aggiunto alla variabile $messaggio
    }
    else {
       
    //il campo è stato compilato e va aggiunto alla variabile $messaggio


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    sostituisci comunque $_REQUEST con $_POST
    è più sicuro ed anche più pulito.

  4. #4
    Grazie mille!
    ora provo subito :-)

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    io consiglio il doppio controllo

    Codice PHP:
    if(!isset($_POST['nome_campo']) || $_POST['nome_campo'] == "") { 
       
    //il campo non è stato compilato e non va aggiunto alla variabile $messaggio 

    else { 
       
    //il campo è stato compilato e va aggiunto alla variabile $messaggio 


  6. #6
    Scusate... si vede che non ho esperienza in programmazione!

    Dove devo inserire questo controllo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    quella porzione di codice serve a validare... in sostanza controlla che la variabile sia vuota.

    se è vuota devi restituire l'errore (se il campo è obbligatorio) altrimenti prosegui.

    comunque io sarei più per un approccio tipo:

    Codice PHP:
    if (!isset($_POST['campo'] || !$_POST['campo'])
    ... 
    non mi è piaciuta come dichiarazione $var == ""

  8. #8
    grazie ragazzi, risolto. Molto gentili.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.