Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema doppi insert

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    61

    Problema doppi insert

    Ciao Ragazzi,
    sto provando a prendere dati da una forma e ad inserirli in una tabella su db mysql.
    Il problema è che quando carico la pagina la insert viene eseguita pur non inserendo nessun dato nei campi della form e senza cliccare il pulsante.
    Avrei bisogno di inserire un controllo....
    Inoltre ho anche un altro problema,
    quando faccio il refresh della pagina nella tabella viene inserito un record in tabella.

    Vi posto il codice:

    //////////////////////////***************************//////////////////////////////////
    <?php


    include('../funzioni_php/connection.php');


    $tipo_immobile = htmlentities($_GET["tipo_immobile"]);
    $descrizione = htmlentities($_GET["descrizione"]);
    $provincia = htmlentities($_GET["provincia"]);
    $citta = htmlentities($_GET["citta"]);
    $zona = htmlentities($_GET["zona"]);
    $via = htmlentities($_GET["via"]);
    $vani = htmlentities($_GET["vani"]);
    $servizi = htmlentities($_GET["servizi"]);
    $richiesta = htmlentities($_GET["richiesta"]);
    $prezzo = htmlentities($_GET["prezzo"]);



    $query = "INSERT INTO immobili VALUES (NULL, '$tipo_immobile', '$descrizione', '$provincia', '$citta',
    '$zona', '$via', '$vani', '$servizi', '$richiesta', '$prezzo', '1', '1');";
    $result = mysql_query($query);



    echo '
    <fieldset>
    <form action = "'.$_SERVER["PHP_SELF"].'" method = "GET">
    <label>Tipo_immobile:</label>
    <SELECT class = "tipo_imm" id="tipo_imm" name="tipo_immobile">
    <OPTION value=Residenziale selected>Residenziale</OPTION>
    <OPTION value=Commerciale>Commerciale</OPTION>
    <OPTION value=Turistico>Turistico</OPTION>
    </select>
    </br></br></br>

    <label>Descrizione:<input type = "text" name = "descrizione" /> </label>
    <label>Provincia:<input type = "text" name = "provincia" /> </label>
    <label>Citta:<input type = "text" name = "citta" /> </label> </br></br></br>
    <label>Zona: <label>Centro<input type = "radio" name = "zona[]" value = "centro" /> </label>
    <label>Periferia<input type = "radio" name = "zona[]" value = "periferia" /> </label> </br></br></br>
    <label>Via:<input type = "text" name = "via" /> </label>
    <label>Vani:<SELECT class = "vani" id="vani" name="vani">
    <OPTION value=1 selected>1</OPTION>
    <OPTION value=2>2</OPTION>
    <OPTION value=3>3</OPTION>
    <OPTION value=4>4</OPTION>
    <OPTION value=5>5+</OPTION>
    </select></label>
    <label>Servizi:<SELECT class = "servizi" id="servizi" name="servizi">
    <OPTION value=1 selected>1</OPTION>
    <OPTION value=2>2</OPTION>
    <OPTION value=3>3+</OPTION>
    </select> </label>
    <label>Richiesta:<SELECT class = "richiesta" id="richiesta" name="richiesta">
    <OPTION value=1 selected>Vendita</OPTION>
    <OPTION value=2>Affitto</OPTION>
    </select> </label> </br></br></br>
    <label>Prezzo:<input type = "text" name = "prezzo" /> </label>




    <input type = "submit" value = "Inserisci Immobile" /> <input type = "reset" value = "Azzera campi" />
    </form>

    </fieldset>

    ';





    mysql_close();





    ?>

    //////////////////////////***************************//////////////////////////////////


    Vi ringrazio come sempre per i vostri aiuti che solo su questo forum riesco a trovare!
    Mitici!
    Saluti Antonio.

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    1. Usa post e non get, è molto più sicuro il controllo
    2. basta che inserisci un controllo con
    if(is_set($_POST['descrizione'])){
    INSERT
    }else{
    visualizzo il form
    }
    3. Manca ogni forma di controllo sull'input

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    61

    Problema doppi insert

    Ciao Luke70,
    innanzitutto grazie mille per la rapidissima risposta!
    Ho sostituito come da te suggerito il metodo GET con il metodo POST,
    ed ho aggiunto il controllo
    if(is_set($_POST['descrizione'])){
    INSERT
    }else{
    visualizzo il form
    }
    .
    Ora quando accedo alla pagina per la prima volta non lo inserisce più,
    ma se clicco su "inserimento" pur non avendo valorizzato il campo 'descrizione' il record viene inserito.
    Come se il controllo non funzionasse più dopo la prima volta.
    Grazie ancora.

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.