Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222

    non essere costretti a riscrivere tutti i campi dopo un messaggio di errore

    ciao, ricordo di aver letto che si può in qualche modo far si che dopo un errore restituito all'utente esso non debba riscrivere anche gli altri campi che vanno già bene. come si fa? qualcuno può darmi 2 dritte o un link?
    grazie
    Si fanno sempre nuove scoperte

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Se il caricamento del form porta alla stessa pagina si possono semplicemente riusare i dati passati in post o get:
    Codice PHP:
    <input type="text" name="titolo" value="<?=$_POST['titolo']?>">
    ...
    lo stesso in get.

    Se cambia la pagina puoi mettere i dati in sessione e riusarli fino quando non deciderai di eliminarli
    La vita e' uno switch();

  3. #3
    Oppure si può fare il controllo dei campi in javascript al momento del submit

  4. #4
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    mmhhh.... non sono molto pratico. il form rimanda a un'altra pagina che elabora i dati, come si fa a mantenerli in sessione?
    :master:

    preferirei non utilizzare js....
    Si fanno sempre nuove scoperte

  5. #5
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    devi usare : session_start(); a priori di ogni output generato (magari in un file che includi in testa alla pagina e usi sempre tipo un file di configurazione) e/o comunque se piu' file in testa ad tutti questi.

    Nella pagina dove arrivano i dati in post controlli l'esistenza dei dati e se ci sono li assegni alla sessione tipo:

    if(isset($_POST['titolo']) && $_POST['titolo'] != ''){
    $_SESSION['titolo'] = $_POST['titolo'];
    }

    A sto punto in tutte le pagine (sempre se correttamente inserito session_start() ) avrai le variabili di sessione e quindi:

    <input type="text" name="titolo" value="<?=$_SESSION['titolo']?>">

    quando non ti serviranno piu' bastera fare unset($_SESSION);

    http://it.php.net/manual/it/function.session-start.php
    La vita e' uno switch();

  6. #6
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    interessante questa cosa, ma non ho capito la parte del session start, come dovrei implementarla e cosa dovrei scriverci?
    Si fanno sempre nuove scoperte

  7. #7
    Originariamente inviato da gabar-el
    interessante questa cosa, ma non ho capito la parte del session start, come dovrei implementarla e cosa dovrei scriverci?
    session_start è una funzione che va richiamata all'inizio della pagina, non devi farci altro!
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  8. #8
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    mentre i controlli dove devo metterli, a inizio pagina sempre? appena sotto il session_start? e per dare più controlli? faccio sempre con un if? cioè se oltre al titolo ho anche una descrizione e un tema?
    grazie
    Si fanno sempre nuove scoperte

  9. #9
    Originariamente inviato da mtx_maurizio
    Oppure si può fare il controllo dei campi in javascript al momento del submit
    non è molto sicuro, all'utente basterebbe disattivare js per bypassare i controlli...
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  10. #10
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    riciao, io lo implemento così poichè ho già un start session per il login:
    Codice PHP:
    <?php
    session_start
    ();
    if(empty(
    $_SESSION['user_loggato']))
        {
            die(
    "Devi prima effettuare il login");
        }
    if(isset(
    $_POST['titolo']) && $_POST['titolo'] != ''){
    $_SESSION['titolo'] = $_POST['titolo'];
    }
    if(isset(
    $_POST['descrizione']) && $_POST['descrizione'] != ''){
    $_SESSION['descrizione'] = $_POST['descrizione'];
    }
    if(isset(
    $_POST['allegato']) && $_POST['allegato'] != ''){
    $_SESSION['allegato'] = $_POST['allegato'];
    }
    ?>
    ma mi tiene buono solo il titolo e non mi da la possibilità di cancellare i dati con l'apposito pullsante del form.
    inoltre non ho ben capito dove inserire l'unset e in quale pagina....
    Si fanno sempre nuove scoperte

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 © 2024 vBulletin Solutions, Inc. All rights reserved.