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

    problema querystring in un form

    Ciao a tutti,

    una pagina primapagina.php?pagina2=si include la pagina2.php grazie al fatto che gli passo il parametro.

    Nella pagina2.php c'è un form che deve puntare alla pagina che lo contiene per fare delle cose in funzione dei dati immessi via GET.

    Per cui il form deve puntare a primapagina.php?pagina2=si&datoform=dato

    in modo che primapagina.php includa pagina2.php che si vede passare $_GET['datoform'] e la utilizza.

    Ora, se scrivo nell' action el form

    Codice PHP:
    <?php echo $_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING']; ?>
    ottengo che va all' indirizzo primapagina.phppagina2=si?datoform=dato

    che ovviamente è un indirizzo formattato male e non esiste sul server

    COme si risolve un problema del genere?
    In definitiva il form dovrebbe puntare ad una pagina mantenedo la querystring e aggiungendo con & le variabili passate via GET dal form...

    Grazie a tutti per l'aiuto
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Codice PHP:
    <?php echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Originariamente inviato da satifal
    Codice PHP:
    <?php echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; ?>
    Non è propriamente corretto se la form ha metodo get. In quel caso, la query string che passi nel action viene scartata dal browser.
    Se usi get come metodo, devi mettere la query string aggiuntiva come campo hidden
    es:
    Codice PHP:
    <form method="GET" action="<?php echo $_SERVER['PHP_SELF']?>" >
    <?php if(isset($_GET['pagina2'])):?>
    <input type='hidden' name='pagina2' value='<?php echo $_GET['pagina2'?>' />
    <?php endif ?>

  4. #4
    Il metodo di SATIFAL non funziona, l' avevo pensato anche io, ma in realtà è come se non tenesse conto della querystring della pagina che visualizza il form e la trasforma nella query string passata dal FORM via GET.

    Il metodo proposto da BOOTS non 'ho capito, infatti dovrei mettere come action del form $_SERVER['PHP_SELF'] e poi passare via get la query string della pagina su cui si visualizza il form??? ma la query string è del tipo ?var1=val1&var2=val2 ecc. se io la associao ad un campo hidden sto passando via GET qualcosa del tipo nome_campo_nascosto=?var1=val1& ecc. con tra l'altro tutti i caratteri speciali strasformati nei rispettivi ascii.

    Mi spiego meglio per capirci su quello che sto facendo:
    - la pagina index.php contiene un pannello di amministrazione gestito da 2 utenti diversi. quando si logga l'utente 1 vengono incluse (con include('nome_pagina.php')) le pagine per l' operatore 1. ovviamente il link per queste pagine nel menu diventa del tipo nome_pagina.php?operatore=1

    - la pagina nome_pagina.php (inclusa in index.php) ha un form in cui l'operatore fa una ricerca su database e gli ritornano dei risultati paginati in funzione di quello che ha inserito nel form, per cui la pagina diventa nome_pagina.php?operatore=1&qualcosadaform=qualcos a&pagina=1

    così so che l' operatore è sempre 1, che ha ricercato qualcosa per cui gli ho mandato i risultati sulla pagina e che è la pagina 1 che sta vedendo per cui poi genero i link alle pagine successive che devono essere gli stessi solo con pagina=2 ecc.

    ma a complicare tutto c'è che il form non può rimandare a nome_pagina.php ma a index.php che include nome_pagina.php e le fa fare qualcosa in funzione dell' utente...

    Spero sia chiaro
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  5. #5
    SCUSATE, credo di aver capito, nella pagina che visualizza il form prelevo le variabili via get e per ciascuna creo un campo hidden, mentre il form lo mando alla pagina senza la querystring, per cui all' invio del form dovrei avere la pagina con una querystring composta dai campi hidden e dai campi normali che è quello che volevo... ci provo subito
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Esatto...altrimenti, devi usare il metodo POST, se vuoi fare come ha scritto satifal.

    Ps: ma invece di portarti a spasso questi parametri, non potresti metterli in sessione? tra l'altro se un operatore=1 cambiasse l'url con, ad esempio, operatore=2, cosa succede?

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.