cancellare la query string

Ciao a tutti :)

Ho un problema con un redirect.

Parto da una pagina che chiama il metodo giusto da eseguire nella seguente maniera:

if( isset($_GET["fz"]) ) 
{
   $_POST["fz"] = $_GET["fz"];
   unset($_GET["fz"]);
}
if( isset( $_POST["fz"] ) && !empty( $_POST["fz"] ) )
{
   $method = $_POST["fz"];
   $class = new webmaster();
   $class->{$method}();
}
else
{ // fai altro }

il metodo chiamato fa piu' o meno la seguente cosa:

if( isset($_GET["id"]) && !empty($_GET["id"]) ) 
{
    $id = $_GET["id"];
    unset($_GET);
}
else
{
    if(isset( $_POST["id"])) $id = $_POST["id"];

}
//accedi al db
//creo un form con un campo nascosto "id" che va a page.php

page.php fa un controllo

if( controlla($_POST["id"]) ) //inserisci dati nel db
else redirect("paginaprecedente.php?fz=xxx&id=yyy");

function redirect($newurl, $sessionobjects = null)
{
   if($sessionobjects != null)
  {
      foreach($sessionobjects as $key => $valore) { $_SESSION[$key] = $valore; }
  }
  session_write_close();
  header("Location: ".$newurl);
  ob_end_flush();
  exit();
}

se sbaglio nell'inserimento dei dati e viene eseguito il redirect va tutto bene ma se al secondo tentativo inserisco i dati corretti anche se il controllo va a buon fine non riesco ad andare avanti perche' vengono trovate sempre $_GET["fz"] e $_GET["id"] (almeno credo sia questo il problema).....quindi vorrei sapere se esiste un modo per eliminare la query string.

Spero di essermi spiegata e di non aver inserito troppo codice.

Grazie :)

inviato 10 anni fa
purpitta
X 0 X

dal codice che hai riportato sembra che il redirect venga eseguito solo se la funzione "controlla" non va a buon fine:

if( controlla($_POST["id"]) ) //inserisci dati nel db

else redirect("paginaprecedente.php?fz=xxx&id=yyy");

Per caso la funzione "controlla" prevede la chiamata alla funzione "redirect"?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

esatto il redirect deve essere fatto solo se iil controllo non va a buon fine e questo e' ok.

controlla non e' una funzione...sta per la condizione che deve essere verificata.

risposto 10 anni fa
purpitta
X 0 X

quindi quell'IF non viene mai verificato e viene sempre eseguito il redirect?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

non ho capito se e' quell'if che non viene mai verificato o se e' la prima pagina che trova sempre la variabile $_GET["fz"] che in realta' dopo il redirect deve sparire, invece nella barra dell'indirizzo c'e' sempre.

risposto 10 anni fa
purpitta
X 0 X

l'unica chiamata alla funzione "redirect" mi sembra che sia quella dell'else, quindi l'IF che non va :dunno:

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

:-[ infatti era proprio l'if.....scusami per la mia stupidita'!!!

ti faccio un altra domanda...tramite un javascript posso cambiare l'action di un form?

risposto 10 anni fa
purpitta
X 0 X

l'argomento non di pertinenza di questa discussione e di questo forum in generale :knuppel:, comunque...

document.nome_form.action ="pagina.php";

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

:-X ancora scusa e grazie!

:bye:

risposto 10 anni fa
purpitta
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda