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

    Gestione errori form e recupero variabili

    Il problmea forse è semplice, ma mi si sta fondendo il cervello
    Allora, veniamo subito al sodo: ho una serie di funzioni che vengono attivate al click sul tasto submit. In ognuna di esse vi è una specie di gestione degli errori, per cui, se capita qualcosa, viene richiamata un'altra funzione che, a seconda di dove proviene l'errore, ha il compito di scegliere il giusto messaggio da far comparire all'utente per fargli sapere dove ha sbagliato.

    Il mio problema sta qui: come faccio, una volta settata la variabile del messaggio per l'utente, a stampare a video l'intero form che aveva precedentemente scritto con sotto il messaggio di errore?
    Difatti, se rindirizzo l'utente alla pagina col form, dopo che si è verificato l'errore, perdo i dati POST, o sbaglio?


    Spero mi capiate perchè sono un pò complicato
    Grazie mille!
    http://www.sanpaolosassari.it
    Il panino più buono è quello più grande

  2. #2
    in teoria si li perdi, potresti forse salvarli in qualche variabile java o javascript e poi stamparli dopo a video o_O

  3. #3
    Eh si, è proprio un bel macello
    Però forse risolvo mettendo sia il form che il codice php nella stessa pagina e soprattutto nascondendo le variabili POST già all'interno del form.
    Una cosa del genere:
    Codice PHP:
    <input type="text" name="titolo" value="<?php echo @$_POST['titolo'?>" />
    E' un approccio un pò grezzo forse, ma mi consente di stampare a video la variabile POST se esiste, altrimenti ne nasconde l'errore
    Vi faccio sapere, grazie!
    http://www.sanpaolosassari.it
    Il panino più buono è quello più grande

  4. #4
    Ciao, io utilizzerei le sessioni...

    1) esempio nella form

    Codice PHP:
    <?php
    <fieldset>
        <
    legend class="label">nome dell'articolo (massimo 255 caratteri) <span class="attenzione">*</span></legend>
        <?php
        // verifico se la sessione è "vuota"...
        if(isset($_SESSION['
    messaggio_art2']) && $_SESSION['messaggio_art2'] != '')
        {
            echo $_SESSION['
    messaggio_art2']; // stampo il messaggio....
        }
        unset($_SESSION['
    messaggio_art2']);  // elimino il messaggio della sessione...
        ?>
        <?php
            $tit = isset ($_SESSION['
    data_store_art']['titolo']) ? $_SESSION['data_store_art']['titolo'] : '';
        ?>
        <input name="titolo" type="text" id="titolo" value="<?php echo $tit ?>" size="30" maxlength="255" />
    </fieldset>
    ?>
    2) Esempio nel file che processa la form (per abitudine, uso un file con i campi form ed uno che processa)

    Codice PHP:
    //controllo per verificare che tutti i campi abbiano valore
    if ($_POST['id_scat'] == 'B' || empty($_POST['titolo']) || empty($_POST['testo']) )
    {
        if (
    $_POST['id_scat'] == 'B')
        { 
            
    $_SESSION['messaggio_art1'] = '<div id="mess_form" class="errore">Manca:la sotto categoria</div>';
        }
        
        if (empty(
    $_POST['titolo']))
        { 
            
    $_SESSION['messaggio_art2'] = '<div id="mess_form" class="errore">Manca:il titolo</div>';
        }

        if (empty(
    $_POST['testo']))
        {
            
    $_SESSION['messaggio_art3'] = '<div id="mess_form" class="errore">Manca:il testo</div>';
        }
         
            
    // codice per "riportare" il testo nei campi input della form
        
    if(isset($_SERVER['HTTP_REFERER']))
        {
            
    $_SESSION['data_store_art']['id_scat'] = $_POST['id_scat'];
            
    $_SESSION['data_store_art']['titolo'] = $_POST['titolo'];
            
    $_SESSION['data_store_art']['testo'] = $_POST['testo'];
            
    header ('Location:' "{$_SERVER['HTTP_REFERER']}");
            return; 
    // uso return per bloccare l'esecuzione delo script 
        
    }
    }
    else
    {
    ... 
    altro codice PHP 
    Spero che ti sia utile.
    Ciao.

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.