• Bannato User Attivo

    refresh da bloccare

    ciao ragazzi qualcuno sa come bloccare il refresh del browser oppure una funzione che non permetta di reinviare i dati con un semplice refresh?
    io utilizzo due file distinti, il primo contiene il form mentre il secondo invia i dati a mysql. come posso fare?


  • User

    prova a postare il codice..
    io ho risolto una situazione analoga ma dovrei capire cosa ti servirebbe...

    cmq è suficiente che nella seconda pagina, quella che invia i dati, prima di lanciare i dati al DB verifichi che non siano gia immessi e in caso non siano presenti li inserisca, in caso contrario di un errore che segnali che i dati sono già presenti..
    se posti il file php che hai fatto ti invio la modifica
    ciao


  • Bannato User Attivo

    ciao gigi, è un normaissimo script che riceve i post in una variabile e poi li inserisce nel db..

    require_once ("head.php");
    require_once ("config.php");
    $user = $HTTP_SESSION_VARS[id];

    $id = $row[ID];
    $provincia=$_REQUEST['provincia'];
    $comune=$_REQUEST['comune'];
    $zona=$_REQUEST['zona'];
    $contratto=$_REQUEST['contratto'];

    $provincia = addslashes(stripslashes($provincia));
    $comune = addslashes(stripslashes($comune));
    $zona = addslashes(stripslashes($zona));
    $contratto = addslashes(stripslashes($contratto));

    $db = mysql_connect($db_host, $db_user, $db_pass);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    // CARICAMENTO DATA
    $giorno = date("d",time());
    $mese = date("m",time());
    $anno = date("Y",time());

    $query = "INSERT INTO annunci (provincia, comune, zona, contratto) VALUES ('$provincia', '$comune', '$zona', '$contratto')";

    if (mysql_query($query, $db)){
    require_once ("../../config.php");
    @$db = mysql_connect($db_host, $db_user, $db_pass) or die ("non posso connettermi al database");
    mysql_select_db($db_name, $db) or die ("non posso connettermi al database");
    $prelievo ="SELECT * FROM annunci WHERE provincia = '$provincia' ORDER BY id DESC LIMIT 0 , 1";
    $risultato = mysql_query($prelievo, $db);

    while ($row = mysql_fetch_array($risultato)){
    }}
    mysql_close($db);
    include ("foot.php");

    l'ho un pelo sintetizzata, nel finale mancano i risultati. se si refresha, reinvia i dati memorizzati


  • User

    capito...
    adesso non riesco a postarti il codice ma entro stanotte o domani al massimo te lo posto ok?


  • User

    eccoti il codice come io ho risolto il problema:

    [PHP]
    // per evitare che se uno faccia refresh reinserisca i valori in un nuovo record o che qualcuno si inserisca 2 volte
    $punt_db=mysql_connect($host,$user,$psw) or $conn="Errore nella connessione al database&";
    mysql_select_db($db,$punt_db) or die("Impossibile raggiungere il database".$db);
    $result= mysql_query("SELECT * FROM elencoWHERE user = '$_POST[user]'");
    while($record=mysql_fetch_object($result)){
    //nome deve essere un valore univoco della tua tabella nel DB
    $nome=$record->nome;
    }
    if ($nome==$_POST[nome]){
    echo "<script>alert('Attenzione Risulti essere gia registrato');";
    echo "history.back();</script>";
    }

    else{
    fai quello che vuoi che succeda se non risulta gia inserito
    }
    [/PHP]

    Prova così dovrebbe funzionare... dimmi se è tutto ok!
    ciao