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

    Gestione degli errori di un form

    Ciao,

    ho un problema con un form riguardo la gestione degli errori.
    Il form si compone da: un primo menu a tendina (ossia quello che va sotto il nome di option), un secondo menu a tendina, e 6 caselle di testo per immettere 2 date nel formato giornog/mesem/annoaaa. Il form usa il metodo post e richiama un file di controllo per verificare la validità delle date. Se viene riscontrato un problema con una data deve essere fornito un messaggio di errore..ho provato in questo modo: nel file di controllo inserisco il codice

    Codice PHP:
        if ($data_stop<=$data_inizio) {
            
    header("Location: presenza_dati.php?err=3");
            die();
        } 
    mentre nella pagina dove c'è il form inserisco per gestire gli errori il codice:
    Codice PHP:
    <? // Messaggi di errore ?>
            
        <? if ($_REQUEST["err"]=="1") {?>
            Per favore, controlla la data di inizio. 

        <? }?>
        
        <? if ($_REQUEST["err"]=="2") {?>
            Per favore, controlla la data di fine. 

        <? }?>
        
        <? if ($_REQUEST["err"]=="3") {?>
            Controlla le date!! Date di fine inferiore a quella di inizio!! 
     
        <? }?>
    purtroppo quello che succede è che dopo aver dato l'invio dei dati..mi ricarica la pagina dei form da zero perdendo tutti i idati immessi. Questo penso sia dovuto al rimando dell'header..come posso far comparire, allora, sotto il form il messaggio di errore senza perdere nulla di ciò che è stato immesso?
    grazie per l'aiuto... :master:
    ciao.
    PeppePegasus

  2. #2
    Hai due strade:

    O salvi i dati del form in sessione prima di fare il redirect, e poi ovviamente li inserisci nel value del form.

    Oppure fai i controlli con javascript (onSubimt) prima che il form venga inviato.

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3

    ti posto un controllo con javascript

    che ti può aiutare.
    __________________________________________________ __________________
    <head>
    <script type="text/javascript">
    var error="";
    e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

    function Checkit(theform) {

    if(theform.yourname.value=="") {
    error+="You did not enter your name\n";
    }

    if(theform.youremail.value=="") {
    error+="You did not enter your email\n";
    } else if(!e_regex.test(theform.youremail.value)) {
    error+="Invalid email address\n";
    }

    if(theform.yourmessage.value=="") {
    error+="You did not enter your message\n";
    }

    if(error) {
    alert('**The form returned the following errors:**\n\n' + error);
    error="";
    return false;
    } else {
    return true;
    }
    }
    </script>
    </head>
    __________________________________________________ ____________-
    devi aggiustare le variabili , queste, per aiutarti si chiamano:
    $yourname=$_POST[yourname];
    $yourmessage=$_POST[yourmessage];
    $youremail=$_POST[youremail];

    Questa è l'istruzioe da inserire nel form:
    <form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">

    Saluti

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.