+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 2 su 2

Perdita dati durante invio form

  1. #1
    L'avatar di Eugene
    Eugene non è in linea Scolaretto
    Buongiorno.

    Oggi mi ha contattato un cliente per il quale avevo realizzato, diverso tempo fa, un sito con un form per la richiesta informazioni.
    Non essendo un programmatore, la realizzazione di quel form mi costò non poche tribolazioni, ma alla fine riuscii a fare qualcosa di funzionante; controlli js sui campi obbligatori ed invio, tramite pagina php, di doppia email, una all'azienda e l'altra all'utente come conferma.
    Come da prassi, il form venne verificato e collaudo prima della consegna ma, come dicevo, oggi il cliente mi ha fatto notare di aver ricevuto un form nel quale non era presente l'email dell'utente.
    Cosa piuttosto strana poichè l'email è uno campi obbligatori ed è sottoposto a doppio controllo prima dell'invio, quindi escludo che l'utente sia riuscito ad inviare il form senza inserire questo campo (del resto, trattandosi di un contatto commerciale, non ha senzo non fornire la propria email soprattutto quando si comunicano tutti gli altri dati compreso telefono ed indirizzo).
    Allora ho subito fatto una prova compilando il fomr online, ed in effetti il cliente ha ricevuto un altro form privo di email dell'utente (in questo caso il sottoscritto).
    Ho quindi inserito il mio indirizzo come destinatario del form ed ho cercato di capire dove fosse l'errore.
    Ho fatto alcune prove, cambiato alcune cose, ma alla fine ho riportato tutto com'era ed ha funzionato correttamente.

    Ho persino ripristinato l'email del cliente, compilato un altro form e stavolta anche lui ha ricevuto il form completo di ogni campo.

    Mi chiedo, a questo punto, quale possa essere la causa che abbia fatto "perdere" l'indirizzo email nella creazione del messaggio.
    E soprattutto. perchè questo fenomento si è verificato prima e non più adesso?
    Una delle basi della programmazione, per quel poco che ne so, è che un sistema o funziona o non funziona, ma non si può rompere.

    Di seguito riporto il codice, così magari qualcuno può capirci qualcosa.

    <? 
    $giorno = date("d",time()); 
    $mese = date("m",time()); 
    $anno = date("Y",time()); 
    $ora=`date +%H:%M:%S`;
    $nome = $HTTP_POST_VARS["nome"];
    $cognome = $HTTP_POST_VARS["cognome"];
    $azienda = $HTTP_POST_VARS["azienda"];
    $ruolo = $HTTP_POST_VARS["ruolo"];
    $telefono = $HTTP_POST_VARS["telefono"];
    $fax = $HTTP_POST_VARS["fax"];
    $mail = $HTTP_POST_VARS["ob_email"];
    $indirizzo = $HTTP_POST_VARS["indirizzo"];
    $cap = $HTTP_POST_VARS["cap"];
    $localita = $HTTP_POST_VARS["localita"];
    $provincia = $HTTP_POST_VARS["provincia"];
    $informazione = $HTTP_POST_VARS["informazione"];
    if(!empty($_POST["catalogo"]) ) {
          $catalogo = $_POST["catalogo"]; 
          } else {
                   $catalogo = 'no';
          } 
    
    $to = "info@nomesito.com";
    $toGuest = $mail;
    mail("$to","Richiesta informazioni da sito www.nomesito.com","In data $giorno $mese $anno, alle ore $ora sono stati inviati i seguenti dati dal sito www.nomesito.com:\n\nNome: $nome\nCognome: $cognome\nAzienda: $azienda\nRuolo nell'azienda: $ruolo\n\nTelefono: $telefono\nFax: $fax\nE-mail: $mail\n\nIndirizzo: $indirizzo\nCAP: $cap\nLocalità: $localita\nProvincia: $provincia\n\nRichiesta invio catalogo: $catalogo\n\nInformazione richiesta: $informazione\n\nL'utente acconsente al trattamento dei dati secondo quanto disposto dal Decreto Legislativo 196/2003 e successive modifiche.","From:$nome $cognome<$mail>");
    mail("$toGuest","Conferma Richiesta informazioni a sito www.nomesito.com","Gentile visitatore,\n\n in data $giorno $mese $anno, alle ore $ora sono stati inviati i seguenti dati dal sito www.nomesito.com:\n\nNome: $nome\nCognome: $cognome\nAzienda: $azienda\nRuolo in azienda: $ruolo\n\nTelefono: $telefono\nFax: $fax\nE-mail: $mail\n\n\nIndirizzo: $indirizzo\nCAP: $cap\nLocalità: $localita\nProvincia: $provincia\n\nRichiesta invio catalogo: $catalogo\n\nInformazione richiesta: $informazione\n\n\nSarete contattato al più presto in merito all'informazione richiesta.\n\nSi ricorda che le informazioni inviate verranno trattate secondo quanto disposto dal Decreto Legislativo 196/2003 e successive modifiche.\nSarà possibile richiedere la variazione o cancellazione dei dati forniti scrivendo a info@nomesito.com e facendone espressa richiesta.\n\nGrazie per aver scritto.","From:Nome azienda Spa<$to>");
    header("Location:conferma.htm");
    exit;
    ?>
    
    Grazie.
    ℹ️ Leggi di più su Eugene ...

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    La form mail che hai creato è piuttosto pericolosa... non è difficile sottoporla ad un attacco di tipo mail-header-injection (tramite la quale inviare spam a centinaia di indirizzi), ne' è difficile creare una form analoga che effettui un post di alcuni campi, di tutti o di nessuno.

    In sostanza l'arrivo della mail probabilmente indica che un hacker o qualche curiosone ha voluto fare una verifica... non è escluso che abbia inviato qualche mail in giro in maniera del tutto anonima...

    Ricorda che i controlli javascript, essendo presenti lato client (e non lato server) non rappresentano mai una sicurezza... per l'utente normale possono essere sufficienti, ma non possono essere considerati bloccanti per un utente più o meno malintenzionato.

    Per il resto, stai usando $_POST e $HTTP_POST_VARS... dovrebbe essere sufficente usare il solo array $_POST... inoltre (piccolezza) sarebbe meglio evitare il tag php short (<? ...codice... ?>) ed usare quello più "regolare" (<?php ...codice... ?>).

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Perdita dati durante il salvataggio come modello
    Da gerry.b nel forum Microsoft Excel
    Risposte: 0
    Ultimo Post: 01-03-2016, 16:33
  2. Invio dati form html
    Da underlife82 nel forum PHP
    Risposte: 0
    Ultimo Post: 16-01-2013, 22:14
  3. Invio dati a form pagina web
    Da zypp0 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 14-01-2012, 21:25
  4. Errore durante l'invio di dati al server OLE
    Da sabbu nel forum Microsoft Word
    Risposte: 8
    Ultimo Post: 21-10-2009, 13:32
  5. Invio dati da form PHP a SQL
    Da rik85 nel forum PHP
    Risposte: 1
    Ultimo Post: 30-10-2007, 13:33