Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    17

    aiuto controllo su form

    ho questo script in PHP che mi invia i dati di un form alla mia email....funziona tutto, vorrei però aggiungere un controllo a determinati campi in modo che non mi invii l'email se l'utente non li compila!

    posto il codice php:

    <?
    /**
    * GC_Formmail 1.2
    * Data creazione: 17/2/2005
    * Data ultima modifica: 21/2/2005
    * Author: Giuseppe Calbi <peppiniel@peppiniel.com>
    * Website: http://www.giuseppecalbi.com
    *
    * Licenza: l'utilizzo di questo script è gratuito. Sarei grato se inseriste un link a http://www.giuseppecalbi.com
    * o http://www.giuseppecalbi.com/scripts in fondo alle pagine che utlizzano questo script, o in un'area credits o links del vostro sito **/

    include "config.php";

    $version = "1.2";

    if ($act == 1)
    {
    echo getCredits();

    return;
    }

    $key = array ();
    $val = array ();

    $output = "";

    $senderNames = array ($senderNames);

    foreach($_POST as $chiave=>$valore)
    {
    // <Input type=qualunque name=chiave value=valore>

    array_push ($key, $chiave);
    array_push ($val, eregi_replace("\\\\'", "'", $valore));

    if (!empty($emailField))
    {
    if ($chiave == $emailField)
    {
    $emailMittente = $valore;
    }
    }

    if (!empty($subjectField))
    {
    if ($chiave == $subjectField)
    {
    $subject = $valore;
    }
    }

    if (!empty($senderNames))
    {
    for ($i = 0; $i < count ($senderNames); $i++)
    {
    if ($chiave == $senderNames[$i])
    {
    $nome .= $valore." ";
    }
    }
    }

    }

    if (!empty($subject))
    {
    $oggetto .= " - ".$subject;
    }

    if ($html)
    {
    $output = getHtmlOutput ($key, $val);

    $intestazioni = "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    }
    else
    {
    for ($i = 0; $i < count ($key); $i++)
    {
    $output .= $key[$i].": ".$val[$i]."\n";
    }

    $intestazioni = "";
    }

    if ( (!empty($emailMittente)) || (!empty($nome)) )
    {
    $intestazioni .= "From: ".$nome."<".$emailMittente."> \r\n";
    }
    else
    {
    $intestazioni .= "From: ".$mittente."\r\n";
    }


    if (!mail($destinatari, $oggetto, $output, $intestazioni ))
    {
    echo "
    ".$messaggioErrore."


    ".getHtmlOutput($key, $val)."


    "; .getCredits();

    if (strlen($paginaErrore) < 5)
    {
    exit ();
    }
    else
    {
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"10; URL=".$paginaErrore."\">";
    }
    }

    echo "
    ".$messaggioConferma."


    ".getHtmlOutput($key, $val)."


    "; .getCredits();

    if (strlen($paginaConferma) < 5)
    {
    exit ();
    }
    else
    {
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"5; URL=".$paginaConferma."\">";
    }

    function getHtmlOutput ($k, $v)
    {
    global $stripsHtml;
    global $tagAllowed;

    $return = "<center><div style=\"width: 322; height: 147; text-align: center\">";

    $return .= "<fieldset style=\"font-family: Verdana; font-size: 10pt; color: #008080; font-weight: bold; border: 3px double #F3C65C; background-color: #F4F5FF\">";
    $return .= "<legend align=center>Dati inseriti</legend>";


    $return .= "<table border=0 cellpadding=3 style=\"border-collapse: collapse; font-family:Verdana; font-size:10pt; color:#4062EA\" bordercolor=#111111 cellspacing=5 width=300>";
    $return .= "<colgroup span=1 style=\"text-align:right; font-weight: bold; background-color: #DDE8FF\"></colgroup>";


    for ($i = 0; $i < count ($k); $i++)
    {
    $v[$i] = eregi_replace ("\n", "
    ", $v[$i]);

    if ($stripsHtml)
    {
    $v[$i] = strip_tags ($v[$i], $tagAllowed);
    }

    $return .= "<tr><td width=\"30%\">".$k[$i].": </td><td>".$v[$i]."</td></tr>";
    }

    $return .= "</table></fieldset></div></center>";

    return $return;
    }

    function getCredits ()
    {
    global $version;

    $return = "


    <center>

    <a href=\"http://www.giuseppecalbi.com/scripts/GC_Formmail\" style=\"text-decoration: none\">
    <font face=Verdana size=1 color=#000000>GC_Formmail ".$version."</a>

    Written by <a href=\"http://www.giuseppecalbi.com\">Giuseppe Calbi</a>

    Check for script updates: <img alt=\"New updates available at GiuseppeCalbi.com if image is green. The current is the newest version if image is red\" src=http://peppiniel.100megs3.com/giuseppecalbi/scripts/gc_formmail/getUpdatesSemaph.php?current=".$version."></p>
    </center></font>";

    return $return;
    }

    ?>



    Questo è il codice, vorrei fare dei controlli sui campi: "nome, email, cognome, indirizzo"....

    So che mi potrebbe aiutare Javascript...però preferirei risolverlo lato server con PHP!

    Grazie a tutti...aspetto lumi!

  2. #2
    Prima di fare il for each di ogni variabile verifica quello che vuoi e poi, se OK, entri nel for

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    17
    ok...ma mi servirebbero le due righe di script da inserire prima del foreach....
    avevo già provato a scrivere io qualcosina ma non funzionava!

    ho provato con:

    if (!empty($nome)) || (!empty($cognome)) ecc.... {
    echo "
    ".$messaggioErrore."


    ".getHtmlOutput($key, $val)."


    "; .getCredits();
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"10; URL=".$paginaErrore."\">";
    }

    Come mai non andava?

    altra domandina: se io faccio quella if ed è verificata la condizione che una variabile è vuota (es. nome) mi esegue lo script interno (mi fa vedere il messaggio di errore e mi rimanda ad una pagina di errore) ma poi contuna con lo script e mi invia comunque l'email anche se un campo o più campi non sono riempiti dall'utente???

    Help Help!

  4. #4
    > if (!empty($nome)) || (!empty($cognome)) ecc.... {

    ci sono delle parentesi di troppo.

    if (!empty($nome) || !empty($cognome)) ecc.... {

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    17
    si scusa ho sbagliato a digitarle nel messaggio....
    comunque il risultato è che lo script (anche se lascio vuoti i campi su cui faccio il controllo) mi da il messaggio di conferma e mi invia l'email comunque!!!!

    pur mettendo quelle due righe di controllo prima del foreach....

  6. #6
    per forza devi togliere !

    codice:
    if (empty($nome) || empty($cognome)) ecc.... {

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    17
    ....mammamia oggi sto !

    Ho risolto modificando così:

    if(empty($_POST['cognome']) || empty($_POST['nome'])) {
    echo "
    ".$messaggioErrore."


    ";
    echo "<META HTTP-EQUIV=Refresh CONTENT=\"10; URL=".$paginaErrore."\">";
    }

    ho dovuto mettere $_POST davanti alle variabili perchè scrivendo direttamente la var (es. $cognome) mi dava errore xchè non la riconosceva!

    Ora funziona....però!

    Grazie di tutto!!!!
    (tanto fra un po vi dovrò rompere per qualcos'altro!!! )

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.