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

    Campi precompilati che spariscono

    Ciao a tutti,
    forse quello che sto per chiedere a voi sembra una cavolata ma io non riesco proprio a capire come fare:
    da poco tempo ho ultimato uno script dove si inviano dei valori dei campi in un altra pagina.

    Ho inserito però, un controllo sui campi con il comando header. In modo che se ci sia un errore il browser torna indietro con scritto l'errore che ha affettuato l'utente compilando quale campo...

    Il mio problema è che, fino qui funziona tutto perfettamente, ma tutti gli altri campi sono stati nel frattempo resettati: in pratica se anche su un solo campo su dieci l'utente commette un errore di digitazione deve poi ricompilare tutti gli altri 9 già compilati prima.


    Spero di essere stato chiaro e non avere sbagliato ad esprimermi (o se devo fare qualche esempio) nel caso non fosse così, vi prego di riferirmelo.

  2. #2
    E' un problema comune.

    Ci sono due strade.

    1. Il controllo lo fai al momento del submit con javascript, in modo che se c'è un errore non carica nemmeno l'altra pagina. Ma in questo caso saresti sul forum sbagliato.

    2. Ti memorizzi i valori del form. ad esempio in una sessione così li puoi recuperare in caso di errore
    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
    Originariamente inviato da mtx_maurizio
    E' un problema comune.

    Ci sono due strade.

    1. Il controllo lo fai al momento del submit con javascript, in modo che se c'è un errore non carica nemmeno l'altra pagina. Ma in questo caso saresti sul forum sbagliato.

    2. Ti memorizzi i valori del form. ad esempio in una sessione così li puoi recuperare in caso di errore
    la via del javascript già la avevo considerata, ma siccome avevo fatto tutto in php, volevo "completare" tutto in php, e poi mi pareva che ho visto da qualche parte una cosa simile

    se non è troppo complicato memorizzare i valori in una sessione vorrei provare con quello... sapresti aiutarmi?

    altrimenti ci metto il javascipt

  4. #4
    Inizi le due pagine con:

    session_start();


    Nella pagina del controllo, se c'è un errore, prima di tornare alla pagina del form registri tutti i valori nella sessione in questo modo:

    $_SESSION['campo1'] = $_POST['campo1'];
    $_SESSION['campo2'] = $_POST['campo2'];

    eccetera
    Poi fai il redirect


    Nella pagina del form metti come value nel campo 1 $_SESSION['campo1']
    Codice PHP:
    <input type="text" value="$_SESSION[campo1]name="campo1" /> 
    Se non c'è nulla non scriverà nulla, altrimenti scriverà il valore memorizzato.


    Nella pagina del controllo, infine, se tutto è corretto, fai un session_destroy();
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  5. #5
    perfetto, mi pare una spiegazione grandiosa, adesso provo a metterla in pratica, grazie

    cmq guardando il codice che mi hai scritto

    Codice PHP:
    <input type="text" value="$_SESSION[campo1]name="campo1" /> 
    ma il valore value non deve essere allora compreso tra <?php e ?>

    ?

    e quando tu dici "fai un session_destroy();" intendi dire di scrivere solo questa stringa e basta, o c'è altro da fare?

    grazie cmq per la risposta

  6. #6
    si, chiaro, tra i <?php
    anche il session_start();


    Si, session_destroy(); è la funzione che distrugge una sessione.

    IMPORTANTE
    session è un header, quindi va messo all'inizio, prima di qualsiasi output, qualsiasi. Anche un a capo è un output.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  7. #7
    Dunque io ho due pagine:
    1.php
    dove ci sono i campi da compilare

    e
    2.php dove prima controlla i campi e se giusti da un certo risultato...
    se nella pagina 2.php la condizione per cui il primo campo non è corretto si verifica, ho fatto in modo che il comando header reindirizzi alla pagina 3.php?e=1

    nella pagina 1 come nella 2 ho scritto all'inizio
    [PHP]<?php session_start(); ?>/PHP]

    nella pagina 2 ho messo:
    Codice PHP:
    $_SESSION['Text1'] = $_POST['Text1']; 
    $_SESSION['Text2'] = $_POST['Text2'];
    $_SESSION['Text3'] = $_POST['Text3'];
    ... 
    ed alla fine della pagina 2 ho scritto
    Codice PHP:
    <?php session_destroy(); ?>
    la pagina 3.php è una copia della pagina 1, solo che l'ho modificata in modo che i value dei vari campi non sia più (come nella 1) una breve descrizione di quello da inserire, ma <?php $_SESSION['Text#'] ?> (dove # indica il numero dei campi)

    io non capisco dove sbaglio perchè quando mi reindirizza nella pagina 3.php?e=1 in tutti i campi c'è scritto un messagigo del genere, come se non riconoscesse le variabili
    Notice: Undefined index: Text1 in C:\Programmi\EasyPHP 2.0b1\www\errore.php on line 302

    EDIT: se può servire a qualcosa ho notato che rimuovendo
    Codice PHP:
    <?php session_destroy(); ?>
    dalla fine della pagina 2.php i campi poi della pagina 3.php?e=1 non riportano l'errore che non riconoscono la variabile ma sono semplicemente vuoti

  8. #8
    E' solo un notice, non un errore grave, comunque significa che non trova l'indice nell'array.
    Puoi risolvere mettendo
    Codice PHP:
    if(isset($_SESSION['text#']))
        echo 
    $_SESSION['text#']; 

  9. #9
    Originariamente inviato da Toh!pisa
    E' solo un notice, non un errore grave, comunque significa che non trova l'indice nell'array.
    Puoi risolvere mettendo
    Codice PHP:
    if(isset($_SESSION['text#']))
        echo 
    $_SESSION['text#']; 
    scusa la mia ignoranza, ma lo metto nel value dei campi, giusto?

    cmq grazie per le tempestive risposte

  10. #10
    ok, adesso non mi da nessun errore, ma i campi rimangono bianchi

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.