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

    form - post e ritorno indietro

    Ciao a tutti, il mio problema è questo:

    compilo dei campi (input1 e input2 ecc.) di una form e li passo via POST ad una pagina che li elabora....

    Successivamente all'elaborazione, potrei aver bisogno di tornare indietro alla pagina con la form per modificare magari anche un solo valore di un campo.

    Per evitare che i campi di input si resettino (e quindi inserire di nuovo tutti i valori) e per evitare di avere come messaggio "pagina scaduta" che soluzioni posso utilizzare?

    Grazie a tutti per l'aiuto!
    aquatimer2000

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Devi mettere in sessione i dati che lo script riceve
    Codice PHP:
    $_SESSION['input1'] = $_POST['input1']; 
    e nei campi del form mettere ad esempio
    Codice PHP:
    <input type="text" name="input1" value="<?php echo isset($_SESSION['input1']) ? $_SESSION['input1']) : '' ?>">

  3. #3
    OK grazie Alhazred

    Questa è la soluzione che già sto utilizzando, pensavo non fosse corretta!
    Vado avanti così allora !
    Grazie !!
    aquatimer2000

  4. #4
    Attenzione al fatto che se le maschere in cui vuoi avere questa funzionalità sono più di una, non devi mescolare i valori di una con quelli dell'altra in sessione, quindi potresti usare

    $_SESSION['nomemaschera']['input1']

    al posto di

    $_SESSION['input1']
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Così facendo però c'è da considerare che se apri i form in 2 schede avrai sempre gli stessi valori, ciò è risolvibile magari passando un codice nel form che rappresenterà l'indice della sessione.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  6. #6
    Quote Originariamente inviata da codencode Visualizza il messaggio
    Così facendo però c'è da considerare che se apri i form in 2 schede avrai sempre gli stessi valori, ciò è risolvibile magari passando un codice nel form che rappresenterà l'indice della sessione.
    Questa è una cosa rischiosissima: significherebbe accettare da $_POST della maschera un valore che poi verrebbe usato come indice per recuperare un valore da $_SESSION che poi verrebbe mostrato nella maschera ricaricata... Intravedo MOLTI modi di usare questo per leggere a mio piacimento qualsiasi cosa scritta in sessione!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Attenzione al fatto che se le maschere in cui vuoi avere questa funzionalità sono più di una...
    Non mi è chiaro cosa intendi per "maschera".

    Quote Originariamente inviata da Shores Visualizza il messaggio
    Intravedo MOLTI modi di usare questo per leggere a mio piacimento qualsiasi cosa scritta in sessione!
    Il soggetto relativo a "mio" è "io gestore del sito" oppure "io che sto navigando sul sito"?

    Nel primo caso non vedo il problema, il gestore del sito ha infiniti modi in ogni caso di sapere ciò che l'utente fa sul sito e scrive nei form.
    Nel secondo caso come fa il navigatore a vedere quello che vuole? Al limite può cambiare i nomi dei campi dei vari form, ma non può specificare indici diversi per l'array $_SESSION in modo da vedere altri dati che non siano quelli specificati da chi ha scritto il codice.

  8. #8
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Non mi è chiaro cosa intendi per "maschera".


    Il soggetto relativo a "mio" è "io gestore del sito" oppure "io che sto navigando sul sito"?

    Nel primo caso non vedo il problema, il gestore del sito ha infiniti modi in ogni caso di sapere ciò che l'utente fa sul sito e scrive nei form.
    Nel secondo caso come fa il navigatore a vedere quello che vuole? Al limite può cambiare i nomi dei campi dei vari form, ma non può specificare indici diversi per l'array $_SESSION in modo da vedere altri dati che non siano quelli specificati da chi ha scritto il codice.
    Per maschera intendo form: se sul sito c'è una form per iscriversi alla newsletter, e un'altra diversa per mandare una email di contatto, ed entrambe hanno un campo "email", e uso questo stesso sistema, mi ritrovo che il valore che ho scritto nel campo email della nl mi appare anche nel campo email di contatto, e anche se in questo esempio non è terribile, può diventare fastidioso.

    Per il secondo discorso, il consiglio di codencode, se l'ho capito bene, è che ci fosse nel $_POST in arrivo una cosa che viene usata per sapere a quale maschera mi riferisco:

    $_SESSION[$_POST["_nomemaschera_"]]["nomecampo"]

    Questo io lo vedo come rischioso, perchè significa che potenzialmente un attaccante può inviare in $_POST["_nomemaschera_"] qualcosa che viene direttamente usato come indice di $_SESSION, il che non è una buona idea...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  9. #9
    Sei sempre tu che decidi da dove far leggere i dati in sessione,
    Es:
    $_SESSION['valori_form']['nome_form'][$_POST['indice']]
    In questo modo farei leggere sempre una parte della sessione che viene utilizzata per questo scopo e quindi non avrai problemi di alcun genere.
    Il mio suggerimento è solo a livello teorico, poi per metterlo in pratica occorre prendere tutti gli accorgimenti del caso.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Per maschera intendo form...
    Capito ed hai ragione.

    Per il secondo discorso, il consiglio di codencode, se l'ho capito bene, è che ci fosse nel $_POST in arrivo una cosa che viene usata per sapere a quale maschera mi riferisco:

    $_SESSION[$_POST["_nomemaschera_"]]["nomecampo"]

    Questo io lo vedo come rischioso, perchè significa che potenzialmente un attaccante può inviare in $_POST["_nomemaschera_"] qualcosa che viene direttamente usato come indice di $_SESSION, il che non è una buona idea...
    Ricorda però che l'attaccante vede la sua sessione, non quella di un altro utente, quindi al più vedrà dati che riguardano se stesso e non se ne fa molto, già li conosce.

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.