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

    modificare controllo form"

    Ho un programma PHP che fa il controllo di un form.
    Ci sono 2 campi che normalmente sono obbligatori

    serialnumber
    partnumber

    ma che in una condizione (nel caso che la select ritorna "Altro") non devno essere compilati

    la pagina che verra caricata(formInvio.php) non deve darmi l'errore:

    non hai inserito il serial number/non hai inserito il part number/


    Mi aiutate a modificare il programma per implementare questa condizione?


    Grazie


    questa è una parte di codice:

    .........................


    <?
    }
    echo "

    \n";

    exit;
    }


    function check_banlist($esclusioni, $email) {
    if (count($esclusioni)) {
    $allow = true;
    foreach($esclusioni as $banned) {
    $temp = explode("@", $banned);
    if ($temp[0] == "*") {
    $temp2 = explode("@", $email);
    if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
    $allow = false;
    } else {
    if (trim(strtolower($email)) == trim(strtolower($banned)))
    $allow = false;
    }
    }
    }
    if (!$allow) {
    print_error("Stai usando un indirizzo email escluso.");
    }
    }


    function check_referer($provenienza) {
    if (count($provenienza)) {
    $found = false;
    $temp = explode("/",getenv("HTTP_REFERER"));
    $referer = $temp[2];
    for ($x=0; $x < count($provenienza); $x++) {
    if (eregi ($provenienza[$x], $referer)) {
    $found = true;
    }
    }
    if (!getenv("HTTP_REFERER"))
    $found = false;
    if (!$found){
    print_error("Provieni da un dominio non autorizzato.");
    error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
    }
    return $found;
    } else {
    return true;
    }
    }
    if ($provenienza)
    check_referer($provenienza);

    if ($esclusioni)
    check_banlist($esclusioni, $email);

    function parse_form($array) {
    // build reserved keyword array
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "email";
    $reserved_keys[] = "Serialnumber";
    $reserved_keys[] = "partnumber";
    $reserved_keys[] = "require";
    $reserved_keys[] = "contenitore";
    $reserved_keys[] = "titolo";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "invia_Dati";




    if (count($array)) {
    while (list($key, $val) = each($array)) {

    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++) {
    if ($key == $reserved_keys[$ri]) {
    $reserved_violation = 1;
    }
    }

    if ($reserved_violation != 1) {
    if (is_array($val)) {
    for ($z=0;$z<count($val);$z++) {
    $content .= "$key: $val[$z]\n";
    }
    } else {
    $content .= "$key: $val\n";
    }
    }
    }
    }
    return $content;
    }


    function mail_it($content, $titolo, $email, $contenitore) {
    mail($contenitore, $titolo, $content, "From: $email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
    }


    function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
    echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
    if ($title)
    echo "<title>$title</title>\n";
    if (!$bgcolor)
    $bgcolor = "#FFFFFF";
    if (!$text_color)
    $text_color = "#80000";
    if (!$link_color)
    $link_color = "#0000FF";
    if (!$vlink_color)
    $vlink_color = "#FF0000";
    if (!$alink_color)
    $alink_color = "#000088";
    if ($background)
    $background = "background=\"$background\"";
    echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
    }

    $contenitore_finale = split(',',$contenitore);
    for ($i=0;$i<count($contenitore_finale);$i++) {
    $contenitore_to_test = trim($contenitore_finale[$i]);
    if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$", $contenitore_to_test)) {
    print_error("Occorre un indirizzo email valido per continuare ($contenitore_to_test) ");
    }
    }


    if ($required)
    $require = $required;

    if ($require) {

    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required[$i]);

    if((!(${$string})) || (!(${$string}))) {

    if ($missing_fields_redirect) {
    header ("Location: $missing_fields_redirect");
    exit;
    }
    $require;
    $missing_field_list .= "Campo non inserito: $required[$i]
    \n";
    }
    }

    if ($missing_field_list)
    print_error($missing_field_list,"missing");
    }


    if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL)
    $email = trim($EMAIL);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
    print_error("il suo indirizzo email non è valido");
    }
    $EMAIL = $email;
    }


    $content = parse_form($HTTP_POST_VARS);




    if ($invia_Dati) {
    $invia_Dati = ereg_replace( " +", "", $invia_Dati);

    }

    if (!$titolo)
    $titolo = "Registrazione prodotto";

    mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);


    if ($redirect) {
    header ("Location: $redirect");
    exit;
    } else {
    print "<body bgcolor='#FFFFFF'>

    <p align='center'><font face='Arial' size='4' color='#0000FF'>Registrazione prodotto completata con successo.


    </font></p>

    <meta http-equiv='refresh' content='$delay; url=$url' >

    <p align='center'></p>

    </body>
    ";
    ?>
    Frank

  2. #2
    Utente di HTML.it L'avatar di ilmila
    Registrato dal
    Apr 2005
    Messaggi
    68
    Leggo il valore della variabile select e mi comporto di conseguenza

    codice:
    if($_POST['variabileselect']!="altro"){
    
    if(!isset($_POST['serial']) OR !isset($_POST['part'])){
    echo "campi obbligatori";
    }
    
    }
    Sistema Acquisizione Risultati Sportivi
    Sistema Prenotazione Posti
    http://parse2005.altervista.org/

  3. #3
    L'isset non va bene per un campo di un form poichè la variabile relativa viene cmq creata. Va utilizzato invece un controllo sul contenuto tipo:

    if (trim($_POST['var']) == '')

  4. #4
    Utente di HTML.it L'avatar di ilmila
    Registrato dal
    Apr 2005
    Messaggi
    68
    Si hai ragione.....
    Sistema Acquisizione Risultati Sportivi
    Sistema Prenotazione Posti
    http://parse2005.altervista.org/

  5. #5

    funzione completa?

    allora in sostanza dovrei scivere nel file php questa funzione??


    if($_POST['variabileselect']!="altro"){

    if(!isset($_POST['serial']) OR !isset($_POST['part'])){
    echo "campi obbligatori";
    }

    }

    ---------------------
    oppure cosi???
    --------------------

    if($_POST['variabileselect']!="altro"){

    if (trim($_POST['var']) == '')
    echo "campi obbligatori";
    }

    }
    Frank

  6. #6
    Fai, una cosa: poichè non ho capito se hai capito visto che in un esempio usi delle variabili ed in un altro altre variabili, scrivi il codice che vorresti inserire nel file e ti diciamo se è corretto o meno. Ciao!

  7. #7
    Allora
    ...........................
    questo è il form:

    ...........................


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Form</title>

    </head>

    <BODY>

    <form method="post" action="formInvio.php">
    <input type="hidden" name="require" value="seriale,partnumber,email">
    <input type="hidden" name="contenitore" value="ffa@bit4id.com">

    <div align="center"></div>
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#ECE9D8" style="border-collapse: collapse">
    <tr bordercolor="#000000" bgcolor="#333333">
    <td width="113" height="31" align="center" bgcolor="#CECFCE"><div align="center" class="style10 Stile1">
    <p align="right"><font size="2" face="Arial">nome</font></p>
    </div></td>
    <td width="266" valign="middle" bgcolor="#CCCCCC"><span class="style5"><font face="Arial" size="3">
    <input name="Nome" type="text" id="nome" value="" size="35">
    </font> </span></td>
    </tr>
    <tr bordercolor="#000000" bgcolor="#333333">
    <td width="113" height="51" bgcolor="#CECFCE"> <div align="center" class="Stile1">
    <div align="right"><font face="Arial" size="2">(<span class="style3">*</span>)email </font></div>
    </div></td>
    <td width="266" valign="middle" bgcolor="#CCCCCC"><p class="style5"><font face="Arial" size="3">
    <input name="email" type="text" size="35">
    </font></p></td>
    </tr>
    <tr bgcolor="#333333">
    <td height="43" bgcolor="#CECFCE"><div align="center" class="Stile1">
    <div align="right">(<span class="style3">*</span>)Prodotto</div>
    </div></td>
    <td valign="middle" bgcolor="#CCCCCC"><div align="left" class="style5">

    <select name="prodotto" class="style5" id="prodotto">
    <option selected>Minilector Essential</option>
    <option>Minilector Professional</option>
    <option>Minilector Lombardia</option>
    <option>Lock Pc</option>
    <option>Altro</option>

    </select>
    </div></td>
    </tr>
    <tr bgcolor="#333333">
    <td height="54" align="center" bgcolor="#CECFCE"><div align="center" class="Stile1">
    <div align="right">(<span class="style3">*</span>)Serial number </div>
    </div></td>
    <td bgcolor="#CCCCCC"><input name="seriale" type="text" id="ser" size="15" maxlength="11">
    </td>
    </tr>
    <tr bgcolor="#333333">
    <td width="113" height="42" bgcolor="#CECFCE"><div align="center" class="Stile1">
    <div align="right">(<span class="style3">*</span>)Partnumber </div>
    </div></td>
    <td width="266" bgcolor="#CCCCCC"><span class="style5">
    <input name="partnumber" type="text" id="part" size="15" maxlength="14">
    </span>
    <div align="center" class="style5"> </div></td>
    </tr>
    <tr bgcolor="#333333">
    <td height="181" align="center" valign="top" bgcolor="#CECFCE"><div align="center" class="Stile2">
    <div align="right">Note</div>
    </div></td>
    <td bgcolor="#CCCCCC"><p class="style5">
    <textarea name="Note" rows="10" id="Note"></textarea>
    </p></td>
    </tr>
    </table>
    <p align="left">
    <input name="" type="submit" class="bit4idLogo" value="Invia">
    <input type="reset" class="bit4idLogo" value="Cancella">
    </p>
    <p align="left"></p>

    <p align="center"> </p>


    </p>
    <p align="center">
    <p align="center">
    <p align="center" class="style3">
    <p align="center">
    <p align="center">
    <p align="center">
    <p align="center"> </td>
    </tr>
    </tbody>
    </table>
    <div align="right">


    </p>
    </div>
    <div align="right"></div>

    </form>
    </body>
    </html>


    -------------------------------------
    questo è il file php
    .....................................


    <?


    $provenienza = array ('bit4id.com','www.bit4id.com','62.149.130.128');


    $esclusioni = array ('*@quellochetipare.com', 'nomechetipare@dominio.com', 'altro@dominio.com');




    $versione_form = "stabile";

    function print_error($reason,$type = 0) {
    global $versione_form;
    build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
    if ($type == "missing") {
    ?>
    <body bgcolor='#FFFFFF'>
    <p align='center'><font face='Arial' color='#000000' size='3'>Il modulo non è stato inviato per le seguenti ragioni</font></p>


    <p align='center'><font face='Arial' size='3' color='#0000FF'>
    <?
    echo $reason."\n";
    ?>
    </font>
    <p align='center'><font face='Arial' size='3' color='#000000'>Premere indietro
    nel browser e riprovare
    </font></p>
    <?
    }
    echo "

    \n";

    exit;
    }


    function check_banlist($esclusioni, $email) {
    if (count($esclusioni)) {
    $allow = true;
    foreach($esclusioni as $banned) {
    $temp = explode("@", $banned);
    if ($temp[0] == "*") {
    $temp2 = explode("@", $email);
    if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
    $allow = false;
    } else {
    if (trim(strtolower($email)) == trim(strtolower($banned)))
    $allow = false;
    }
    }
    }
    if (!$allow) {
    print_error("Stai usando un indirizzo email escluso.");
    }
    }


    function check_referer($provenienza) {
    if (count($provenienza)) {
    $found = false;
    $temp = explode("/",getenv("HTTP_REFERER"));
    $referer = $temp[2];
    for ($x=0; $x < count($provenienza); $x++) {
    if (eregi ($provenienza[$x], $referer)) {
    $found = true;
    }
    }
    if (!getenv("HTTP_REFERER"))
    $found = false;
    if (!$found){
    print_error("Provieni da un dominio non autorizzato.");
    error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
    }
    return $found;
    } else {
    return true;
    }
    }
    if ($provenienza)
    check_referer($provenienza);

    if ($esclusioni)
    check_banlist($esclusioni, $email);

    function parse_form($array) {
    // build reserved keyword array
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "email";
    $reserved_keys[] = "seriale";
    $reserved_keys[] = "partnumber";
    $reserved_keys[] = "require";
    $reserved_keys[] = "contenitore";
    $reserved_keys[] = "titolo";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "invia_Dati";




    if (count($array)) {
    while (list($key, $val) = each($array)) {

    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++) {
    if ($key == $reserved_keys[$ri]) {
    $reserved_violation = 1;
    }
    }

    if ($reserved_violation != 1) {
    if (is_array($val)) {
    for ($z=0;$z<count($val);$z++) {
    $content .= "$key: $val[$z]\n";
    }
    } else {
    $content .= "$key: $val\n";
    }
    }
    }
    }
    return $content;
    }


    function mail_it($content, $titolo, $email, $contenitore) {
    mail($contenitore, $titolo, $content, "From: $email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
    }


    function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
    echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
    if ($title)
    echo "<title>$title</title>\n";
    if (!$bgcolor)
    $bgcolor = "#FFFFFF";
    if (!$text_color)
    $text_color = "#80000";
    if (!$link_color)
    $link_color = "#0000FF";
    if (!$vlink_color)
    $vlink_color = "#FF0000";
    if (!$alink_color)
    $alink_color = "#000088";
    if ($background)
    $background = "background=\"$background\"";
    echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
    }

    $contenitore_finale = split(',',$contenitore);
    for ($i=0;$i<count($contenitore_finale);$i++) {
    $contenitore_to_test = trim($contenitore_finale[$i]);
    if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$", $contenitore_to_test)) {
    print_error("Occorre un indirizzo email valido per continuare ($contenitore_to_test) ");
    }
    }


    if ($required)
    $require = $required;

    if ($require) {

    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required[$i]);

    if((!(${$string})) || (!(${$string}))) {

    if ($missing_fields_redirect) {
    header ("Location: $missing_fields_redirect");
    exit;
    }
    $require;
    $missing_field_list .= "Campo non inserito: $required[$i]
    \n";
    }
    }

    if ($missing_field_list)
    print_error($missing_field_list,"missing");
    }


    if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL)
    $email = trim($EMAIL);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
    print_error("il suo indirizzo email non è valido");
    }
    $EMAIL = $email;
    }


    $content = parse_form($HTTP_POST_VARS);




    if ($invia_Dati) {
    $invia_Dati = ereg_replace( " +", "", $invia_Dati);

    }

    if (!$titolo)
    $titolo = "Registrazione prodotto";

    mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);


    if ($redirect) {
    header ("Location: $redirect");
    exit;
    } else {
    print "<body bgcolor='#FFFFFF'>

    <p align='center'><font face='Arial' size='4' color='#0000FF'>Registrazione prodotto completata con successo.


    </font></p>

    <meta http-equiv='refresh' content='$delay; url=$url' >

    <p align='center'></p>

    </body>
    ";
    ?>
    <div align="center"></div>
    <table width="200" border="1" align="center">
    <tr>

    <td><div align="center"><font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">Torna alla Home Page</font></div></td>
    </tr>
    </table>


    <div align="center"></div>
    <?
    echo "

    \n";

    exit;
    }

    // <---------- fine ----------> //
    ?>


    Dentro al file PHp mi servirebbe creare una funzione che mi faccia un controllo sul campo prodotto alla voce "Altro"
    io voglio che quando l'utente seleziona altro dal menu
    i campi obbligatori che sono "seriale" e "partnumber"
    non vengano richiesti dopo che hai inviato il form(cioe la pagina php che verra caricata alla fine non deve dare l'errore

    Campo non inserito:seriale

    oppure

    Campo non inseritoartnumber



    Ok??

    Grazie......
    Frank

  8. #8
    up

    allora??

    la funzione che volevo scrivere era tipo:


    if($_POST['prodotto']!="altro"){

    if(!isset($_POST['seriale']) OR !isset($_POST['partnumber'])){
    echo "campi obbligatori";
    }

    }


    va bene cosi??
    se non va bene me la correggete oppure modificatela con istruzione adatta aquello che vorrei fare??

    Grazie in anticipo e anche per la pasienza
    Frank

  9. #9
    Allora, nella discussione sopra ho scritto che per controllare se una variabile inviata dal campo di un form esiste non va bene utilizzare isset poichè la variabile esiste SEMPRE nel momento in cui invii il form stesso.
    Di conseguenza il modo migliore per controllare che un campo sia stato riempito è utilizzare questa sintassi:

    Codice PHP:
    if ($_POST['seriale'] == '' OR $_POST['partnumber'] == '')
      {
         echo 
    'campi obbligatori';
      } 
    Se poi vuoi cmq mettere l'isset l'istruzione diventerà così:

    Codice PHP:
    if (!isset( $_POST['seriale'] ) OR $_POST['seriale'] == '' OR !isset( $_POST['partnumber'] ) OR $_POST['partnumber'] == '')
    ..... 
    Altra cosa: quando posti del codice utilizza i tag (CODE) (/CODE) o (PHP) (/PHP) sostituendo le parentesi tonde con parentesi quadre. In questo modo il codice verrà formattato come sopra rendendolo più leggibile.

    Per la pazienza non ti preoccupare: siamo qui per questo!
    Se hai altri problemi posta pure! Ciao!

  10. #10
    la funzione che hai scritto sopra non dovrebbe piu dare l'errore di seriale o partnumber una volta che ho selezionato "altro". giusto???

    Quindi cosi il form lo invia con successo mentre per le altre voci mi richiede di inserire i due campi??

    ps. la posizione giusta per inserire la funzione da te scritta nel file php qual'e?
    Frank

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.