Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Evitare duplicazione dati con refresh

    Premetto che ho letto la pillola di Piero.Mac.

    Ma dopo vari tentativi non sono riuscito ad adattarla alle mie esigenze. Ho form e file di controllo su due file diversi. Il form manda i dati ad una pagina chiamata inse.php.

    Ecco il codice della pagina:
    Codice PHP:
    <?php
                  
    $evento 
    ucfirst(htmlentities(strip_tags($_POST["evento"])));
    $nomelocale ucfirst(htmlentities(strip_tags($_POST["nomelocale"])));
    $cittaevento ucfirst(htmlentities(strip_tags($_POST["cittaevento"])));
    $luogo ucfirst(htmlentities(strip_tags($_POST["luogo"])));
    $giorno htmlentities(strip_tags($_POST["giorno"])); 
    $mese htmlentities(strip_tags($_POST["mese"])); 
    $anno htmlentities(strip_tags($_POST["anno"])); 
    $ora htmlentities(strip_tags($_POST["ora"]));
    $oraporte htmlentities(strip_tags($_POST["oraporte"]));
    $descrizione str_replace("\n""
    "
    ,$_POST["descrizione"]);
    $biglietti htmlentities(strip_tags($_POST["biglietti"]));
    $disponibilita htmlentities(strip_tags($_POST["biglietti"]));
    $prezzo str_replace(","".",$_POST["prezzo"]);
    $comunicazioni str_replace("\n""
    "
    ,$_POST["comunicazioni"]);
    $organizzazione ucfirst(htmlentities(strip_tags($_POST["autore"])));

    $type $_FILES['file']['type'];
    $foto $_FILES['file']['name'];
    $size $_FILES['file']['size'];
    $immagine = @file_get_contents($_FILES['file']['tmp_name']);
    $immagine addslashes ($immagine);
    $max_size 100000;

    if(
    $evento=="")
    {
    print (
    "Il nome dell'evento è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $nomelocale=="")
    {
    print (
    "Il nome del locale è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $cittaevento=="")
    {
    print (
    "La città dell'evento è obbligatoria
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $luogo=="")
    {
    print (
    "Il luogo dell'evento è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $giorno=="")
    {
    print (
    "Il giorno dell'evento è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $mese=="")
    {
    print (
    "Il mese dell'evento è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $anno=="")
    {
    print (
    "L'anno dell'evento è obbligatorio
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $ora=="")
    {
    print (
    "L'ora dell'evento è obbligatoria
    <a href=\"insertevent.php\">indietro</a>
    "
    );
    }
    elseif(
    $descrizione=="")
    {
    print 
    "La descrizione è obbligatoria
    <a href=\"insertevent.php\">indietro</a>
    "
    ;
    }
    elseif(
    $biglietti=="")
    {
    print 
    "Indicare la disposibilità
    <a href=\"insertevent.php\">indietro</a>
    "
    ;
    }
    elseif(
    $prezzo=="")
    {
    print 
    "Devi inserire un prezzo unitario per singolo biglietto
    <a href=\"insertevent.php\">indietro</a>
    "
    ;
    }
    elseif(
    $immagine=="")
    {
    print 
    "L'immagine è obbligatoria
    <a href=\"insertevent.php\">indietro</a>
    "
    ;
    }
    elseif(
    $size $max_size)
    {
    print 
    "L'immagine supera i 1064 kb. Il file è troppo grande
    <a href=\"insertevent.php\">indietro</a>
    "
    ;
    }
    else
    {

    $dataevento $anno.'-'.str_pad($mese,2"0"STR_PAD_LEFT).'-'.str_pad($giorno,2"0"STR_PAD_LEFT).' '.$ora.'';

    include(
    "config.php");
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

    $sql "SELECT * from organizzatori WHERE organizzatore_id='".$_SESSION['usernamepromoter']."'";

    $query mysql_query($sql);
    $organizzatore_id =  mysql_result($query0'organizzatore_id');
    mysql_free_result($query);
    }
                      
    mysql_query("insert into eventi (organizzatore_id, evento, nomelocale, cittaevento, luogo, dataevento, oraporte, descrizione, biglietti, disponibilita, prezzo, comunicazioni, autore, foto, size, type, immagine) values ('$organizzatore_id', '$evento', '$nomelocale', '$cittaevento', '$luogo', '$dataevento', '$oraporte', '$descrizione', '$biglietti', '$disponibilita', '$prezzo', '$comunicazioni', '$organizzazione','$foto','$size','$type','$immagine')") or die( mysql_error() . "
    $sql) ;
    $ultimo_id mysql_insert_id();

    print 
    "<table id=\"insert\" cellpadding=\"0\" cellspacing=\"5\" border=\"0\">";
    print 
    "<tr>";
    print 
    "<td>";
    print 
    "<div aling=\"center\">";
    print 
    "<h3><font color=\"#000000\">Evento inserito con successo</font></h3>";
    print 
    "</div>";
    print 
    "</td>";
    print 
    "</tr>";
    print 
    "</table>";
    mysql_close();
    ?>
    Come adattare la pillola ad un file di controllo del genere?

  2. #2
    hai un altro modo semplicissimo: fai un redirect

    pagina form.php
    vai a pagina inse.php
    finito lo script inse.php invia con un meta a una pagina transfer.php
    dalla pagina transfer.php mandi dove ti pare.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Guarda ieri stavo lottando tutto il pomeriggio con questa cosa dei redirect.
    Alla fine ho optato per uno script java di questo tipo:

    <script type="text/javascript">
    <!--
    function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
    location.href = "menuorg.php";
    }
    window.setTimeout("doRedirect()", 4000); //Fa partire il redirect dopo tot. secondi
    //-->
    </script>

    che mi reindirizza al menu utente. Tuttavia resta un problema. Se per caso qualche rompi.... decide di andare avanti con la pagina c'è nuovamente l'inserimento degli stessi dati all'interno del database. Mi spiego. Si inseriscono i dati via form, vengono convalidati ad inseriti in database dal file inse.php postato in precedenza.

    Da questo file lo script jaca rimanda al menu utente. Ma da qui, se lo stesso utente clicca sulla freccia "avanti" del browser, ecco che i dati prima inseriti vengono nuovamente caricati nel database.

    Evitarlo, come fare? Non ho ben capito il discorso della pagina intermedia.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Come non detto, ho capito

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.