Visualizzazione risultati 1 fino 7 di 7

Discussione: problemi ricarica di una pagina

  1. #1
    Guest

    Predefinito problemi ricarica di una pagina

    ciao a tutti sto creando un CMS, sia per creare un blog sia per imparare php e sql.. ho creato una pagina per inserire articoli nel database SQL
    Codice:
    if ($submit == 'Invia') {
    	$write_work = write();
    	//TRUE Messaggi di servizio
    	if ($write_work == 1) echo '<p class="service_msg_t">Articolo inserito correttamente</p>';
    }
    tradotto: se il bottone INVIA è premuto avvia il processo e avvia la funzione write, che manda tramite l'input dei form al db SQL. ritorna 1 se funziona correttamente e da il messaggio di inserimento, vabbe.

    ma dopo aver inserito il messaggio, se ricarico una altra volta la pagina rimanda gli stessi ultimi dati al database cosi da trovarmi due articoli uguali, non si puo far niente per eliminare questo problema? magari bisogna svuotare la cache, chesso.. grazie

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    i dati li invii tramite un form? Poi, clicchi sul "input type='submit'" e passi i dati al codice che hai scritto sopra?... Se fai un questo modo, un aggiornamento della pagina non dovrebbe provocare questo fatto (perché non invochi il "submit" del form) ...

    Come passi i dati da client a server?.. Non con il form, immagino...

    Ciao!
    Ultima modifica di alemoppo : 26-04-2011 alle ore 13.26.00

  3. #3
    Guest

    Predefinito

    tramite un form che c'è proprio in quella pagina (newpage.php).. si precisamente

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    ahhh forse ho capito.

    Quindi tu hai una cosa tipo:

    Codice PHP:
    <?php
    //guardi se ci sono dei valori POST o GET e aggiorni il database
    ?>
    scrivi la pagina
    ..capito.

    Per evitare questo, la prima cosa che mi viene in mente è usare una pagina secondaria su cui salvare i dati. In questo modo:

    pagina leggi.htm
    Codice HTML:
    [...]
    <form action='salva.php'>
    [...]

    pagina salva.php:
    Codice PHP:
    <?php
    //controlli se ci sono dati POST o GET e li salvi

    header('Location: leggi.htm'); //redirect alla pagina precedente
    ?>
    La seconda pagina (salva.php) non produce alcun output html, ma salva i dati ed esegue il redirect alla pagina precedente. Quindi all'utente è "invisibile".

    ..Non so se mi son spiegato bene..


    (ovviamente i nomi delle pagine salva.php e leggi.htm me li son inventati. Puoi chiamarli come vuoi e la prima pagina ovviamente può essere *.php {anzi, deve esserlo per poter leggere da database :P})

    Ciao!
    Ultima modifica di alemoppo : 26-04-2011 alle ore 13.33.19

  5. #5
    Guest

    Predefinito

    wait wait wait.. quel redirect mi ha fatto venire in mente una cosa.. si grazie a quello sono riuscito a eliminare il problema... i pratica quando mando i dati li elabora e se è giusto ti redirecta nella stessa pagina, che, anche se la ricarico lo stesso non me li manda di nuovo al database..
    yeeeeeeeee xD grazie :D

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Infatti intendevo più o meno così... Oppure più elegantemente, se conosci javascript, puoi inviare i dati via ajax senza nemmeno far ricaricare la pagina. Per questo, consiglio di far uso di jQuery, perché ajax puro, a meno che non lo conosci già, non ti conviene impararlo...

    Se serve altro fai sapere

    Ciao!

  7. #7
    Guest

    Predefinito

    Grazie di tutto :)
    sto imparando php, e mysql intanto mi concentro su quello per il resto vedrò.. ciau ciau

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •