Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    28

    [PHP] impedire inserimento multiplo

    Salve a tutti,

    si può evitare l'inserimeto multiplo dei dati di un <form> con php?
    So che si può fare con javascript (che però può essere disabilitato sul browser).

    La struttura delle pagine sarebbe

    1) PHP con form ----POST----> 2) PHP che interpreta bottone spinto e inserisce --> 3) GET al PHP iniziale

    grazie a tutti
    Andrea

  2. #2
    Eh? Non ho capito nulla, cosa intendi per INSERIMENTO MULTIPLO DEI DATI? L' unico input che lo permette è il checkbox, se intendi che aggiornando la pagina PHP vengono rinviati i dati, nella pagina php (sempre che sia a parte e non nella stessa del form) puoi fare un redirect immediato (0) ad una pagina di conferma (che non ha i codici php), così l' utente non ha il tempo di aggiornare la pagina php per ritrasmettere i dati.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    28
    si forse sono stato poco chiaro, intendevo
    cliccare a raffica su <input type=submit ....
    del form, prima che la pagina venga sostituita dalla successiva.

    1) PHP con form ----POST---->
    2) PHP che interpreta bottone spinto e inserisce -->
    3) GET al PHP iniziale


    dopo il POST passa del tempo prima che le operazioni sql del punto 2
    e l' header("location: pagina1.php") del punto 3 abbiano effetto e
    in quel mentre si può cliccare ripetutamente sul bottone.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    28
    qualcuno è incappato in questo genere di problema?
    si può risolvere solo con javascript?

    non ho problemi di aggiornamento della pagina, ma di click consecutivi veloci sul tasto di submit del form, prima che la pagina scompaia.


    puoi fare un redirect immediato (0) ad una pagina di conferma (che non ha i codici php), così l' utente non ha il tempo di aggiornare la pagina php per ritrasmettere i dati.
    questa cosa può essere utile anche nel mio caso?
    Se si, cosa intendi precisamente?

  5. #5
    <?php
    session_start ();
    echo "<pre>".print_r($_REQUEST,true)."</pre>";
    echo "<pre>".print_r($_SESSION['hashes'],true)."</pre>";
    if (!isset($_SESSION['hashes']) || !is_array($_SESSION['hashes'])){
    $_SESSION['hashes'] = array ();
    }

    /* Logica dell'invio */
    $_REQUEST['hash'] = isset($_REQUEST['hash']) ? $_REQUEST['hash'] : '';
    //old if (isset($_REQUEST['action']) && $_REQUEST['action'] == 1) {
    if (isset($_REQUEST['trova'])) {
    if (!in_array($_REQUEST['hash'], $_SESSION['hashes'])) {
    $_SESSION['hashes'][] = $_REQUEST['hash'];
    print ("Questa è la prima volte che invii questa form!");
    /*
    * Inserisci qui il codice di gestione
    * dei dati della form.
    */

    } else {
    print ("Questa form è già stata inviata!");
    /*
    * Inserisci qui il codice di gestione
    * dell'errore.
    */
    }
    }

    /*
    * La variabile hash contiene un identificativo
    * univoco che distingue una determinata form/una
    * precisa azione di submit.
    */
    $hash = md5 (microtime ());

    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>
    <title>Sans Titre</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <meta name="generator" content="HAPedit 3.1">
    </head>
    <body bgcolor="#FFFFFF">

    <form method="post" action="<?php print ($_SERVER['PHP_SELF']); ?>">
    <input type="text" name="hash" value="<?php print ($hash); ?>" />
    <input type="text" name="test" value="this is a test" />
    <input type="submit" name="trova" id="trova" value="trova"/>
    </form>
    </body>

    </html>

    non è farina del mio sacco, magari

    tra le altre cose, se non ricordo male, c'è anche un articolo che lo riprende anche qui nella sezione php

  6. #6
    Originariamente inviato da andarin
    qualcuno è incappato in questo genere di problema?
    si può risolvere solo con javascript?

    non ho problemi di aggiornamento della pagina, ma di click consecutivi veloci sul tasto di submit del form, prima che la pagina scompaia.




    questa cosa può essere utile anche nel mio caso?
    Se si, cosa intendi precisamente?
    anche qui http://php.html.it/articoli/leggi/30...-form-con-php/ c'è qualcosa di simile

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    28
    grazie, risolto!!
    l'articolo è stato molto utile, ho adattato e funziona.

    Devo imparare a usare meglio il cerca


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.