Back to top

Autore Topic: Problemi dopo il POST!  (Letto 4996 volte)

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Problemi dopo il POST!
« il: 25 Lug 2006, 10:53:09 »
Buongiorno a tutti..
Ho un problemino..
Dopo che riempio un form premo sul pulsante invia che utilizza una funzione post_spedisci..
Dopo aver spedito il form mi va su una lista delle informazioni che ho inserito..
Fino a qui va tutto bene..
Il problema è quando aggiorno la pagina la stringa mi si duplica e se riaggiorno di nuovo mi si triplica e cosi via..

Secondo voi dov'è il problema???
Probabilmente è sul POST, almeno credo..

Grazie

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #1 il: 25 Lug 2006, 11:05:58 »
Direi che il problema sta proprio nel codice PHP che hai scritto.
Non separi la parte di elaborazione da quella di visualizzazione.
Bisognerebbe vedere il codice però.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #2 il: 25 Lug 2006, 11:34:40 »
il codice è cosi composto, una classe html_componente::insertxxx()  che contiene il form il quale ha all'interno un campo hidden task="post_spedisci". (il file si chiama componente_html.php)

Nel file componente.php ho una switch $task con tutte le case, elaborano il comando posto ed inviano nel db il nuovo record a questo punto chiedo di visulaizzare la lista dei record è cio funziona

Ma se provo ad aggiornare il browser con una reload  mi ritorna in esecuzione con  task="post_spedisci" e questo mi fa duplicare il record nel database.

Spero di essere stato più esaustivo.

Grazie

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #3 il: 25 Lug 2006, 11:40:05 »
Ma se provo ad aggiornare il browser con una reload  mi ritorna in esecuzione con  task="post_spedisci" e questo mi fa duplicare il record nel database.

Evidentemente la pagina visualizzata contiene i dati del POST e quindi aggiornandola, li invia nuovamente.
Di solito si spezza il codice in questo modo:
form html -> elaborazione -> visualizzazione
Ogni pagina richiama quell'altra ma le uniche 2 che l'utente vende sono il form e la visualizzazione. Quindi anche con un refresh si ricarica solo la visualizzazione.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #4 il: 25 Lug 2006, 14:14:05 »
il codice nel componente.php è questo
Codice: [Seleziona]
case "post_spedisci";
post_esperienze($userid);
echo  "Sono dopo il post<br>";
unset($_POST['task']);
unset($_GET['task']);
show($option,$userid);
break;

e quetsa mi richiama questa funzione

Codice: [Seleziona]
function post_spedisci($userid){
/* Funzione per l'inserimento di un nuovo utente*/
  global $database;
 
//prelievo dei parametri inviati con il form html
$id = trim( mosGetParam( $_REQUEST, 'id', "" ) );
  $dtinizio = trim( mosGetParam( $_REQUEST, 'dtinizio', "" ) );
  $dtfine = trim( mosGetParam( $_REQUEST, 'dtfine', "" ) );
  $azienda = trim( mosGetParam( $_REQUEST, 'azienda', "" ) );
  $ruolo = trim( mosGetParam( $_REQUEST, 'ruolo', "" ) );
  $iduoappartenenza = trim( mosGetParam( $_REQUEST, 'iduoappartenenza', "" ) );
  $idservizio = trim( mosGetParam( $_REQUEST, 'idservizio', "" ) );
$userid = trim( mosGetParam( $_REQUEST, 'userid', "" ) );
$descr = trim( mosGetParam( $_REQUEST, 'descr', "" ) );

  $sql = "INSERT INTO #__anafor_esperienzeprofessionali (id,dtinizio,dtfine,azienda,ruolo,iduoappartenenza,idservizio,userid,descr)
  VALUES ('".$id."','".$dtinizio."','".$dtfine."','".$azienda."','".$ruolo."','".$iduoappartenenza."','".$idservizio."','".$userid."','".$descr."');";

  $database->setQuery( $sql );
  $database->query();
  if ($database->getErrorNum()) {
    echo $database->stderr();
      return false;
  }   
return true;
}


Poi nell'HTML ho la funzione che mi compila il form e mi spedisce sul pulsante invia
Codice: [Seleziona]
ULTIMA PARTE DELLA FUNZIONE (dove c'è il pulsante invia)

<tr>
          <td colspan="2">
            <input type="submit" value="Invia">
            <input type="reset" value="Cancella">
<input type="hidden" name="option" value="com_COMPONENTE">
      <input type="hidden" name="task" value="post_SPEDISCI">
      <input type="hidden" name="userid" value="<?php echo $userid?>">
      <input type="hidden" name="id" value="<?php echo $id?>">
        </td>

thanks

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #5 il: 25 Lug 2006, 14:17:42 »
Codice: [Seleziona]
case "post_spedisci";
post_esperienze($userid);
echo  "Sono dopo il post<br>";
unset($_POST['task']);
unset($_GET['task']);
show($option,$userid);
break;

Direi che il problema è qui, perchè inserisci le info (post_esperienze) e poi fai subito una echo.
Non va molto bene. Sarebbe meglio fare tutte le elaborazioni, senza nessun output di nessun tipo.
Alla fine fai un redirect sulla pagina che visualizza l'output.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #6 il: 25 Lug 2006, 14:58:10 »
Codice: [Seleziona]
case "post_spedisci";
post_spedisci($userid);
echo  "Sono dopo il post<br>";
unset($_POST['task']);
unset($_GET['task']);
show($option,$userid);
break;
Per quanto riguarda l'echo è stato messo li solo per prova..

Codice: [Seleziona]
unset($_POST['task']);
unset($_GET['task']);
show($option,$userid);

Questo l'ho messo per fare delle prove per quanto riguarda il refresh..
Il prob è che la stringa si duplica e cosi via..


Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #7 il: 25 Lug 2006, 15:07:37 »
Se c'è un task post_spedisci, ce ne sarà uno per visualizzare l'indice.
Perchè non fai un redirect sull'indice?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #8 il: 25 Lug 2006, 15:11:29 »
come posso fare il redirect???

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #9 il: 25 Lug 2006, 15:16:03 »
Mi sembra ci sia una funzione mosRedirect("URL").


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #10 il: 25 Lug 2006, 15:46:21 »
Ma lo devo integrare qua dentro????

Codice: [Seleziona]
case "post_spedisci";
post_spedisci($userid);
                                mosRedirect("URL")
unset($_POST['task']);
unset($_GET['task']);
show($option,$userid);
break;

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #11 il: 25 Lug 2006, 15:47:19 »
Sì, ma come ultima istruzione. ;)
Ovviamente sostituendo URL con l'indirizzo giusto.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: Problemi dopo il POST!
« Risposta #12 il: 27 Lug 2006, 16:09:38 »
Grazie napo..
Infine ci sono riuscito grazie a quella istruzione..

A presto un saluto ;)

 



Web Design Bolzano Kreatif