• User Newbie

    Record Doppi dopo Insert

    ciao a tutti, sono nuovo di questo forum, ma ho letto molti articoli e alcune interessanti discussioni.

    ora sono qui a chiedervi aiuto....❌x

    nelle miei pagine php ho inserito un form per l'inserimento di un record, tutto sembrava andare perfettamente....oggi invece dopo alcune modifiche mi sono accorto che ogni volta che inseriva un record lo duplicava!:(:(

    cioè ne creava due perfettamente identici con ID differenti per via dell'auto increment, senza ovviamente che io glielo dicessi!

    sono abbastanza sicuro che lo script viene eseguito una volta sola (ci sono degli echo e un contatore) ma non mi capacito di questa cosa!!!

    io uso apache 2.0.59,php 5.2.3,mysql 5.0.41, ma lo stesso "giochetto" me lo fa anche con una versione più vecchia!!!

    vi prego aiutatemi, non so dove sbattere la testa!!:x :arrabbiato: :arrabbiato:


  • User Attivo

    senza vedere lo script è imposibile aiutarti...


  • User Newbie

    @gabrielem said:

    senza vedere lo script è imposibile aiutarti...

    ora posto lo script, cmq ho notato che me lo fa anche con altri script che avevo fatto.

    penso sia un problema del submit(o cmq della pagina madre), nel senso che richiama due volte la pagina di inserimento:x :arrabbiato: :arrabbiato:

    vi posto le due parti di codice:
    questa è il form:

    <div id="inserisci">
    <form action="insert.php" method="POST" target="_self" >
    <table>
    <tr>
    <td>
    *Cognome<br >
    <input name="cognome" type="text" size="30" onChange="val_nome(this.value)"><br />
    *Nome<br >
    <input name="nome" type="text" size="30" onChange="val_nome(this.value)">
    </td>
    <td>
    Vario<br >
    <input name="vario" type="text" size="30" onChange="val_nome(this.value)">
    </td>
    </tr>
    <tr>
    <td>Societa<br >
    <input name="societa" type="text" onChange="val_nome(this.value)">
    </td>
    <td>
    *Indirizzo<br >
    <input name="indirizzo" type="text" onChange="val_indiri(this.value)">
    </td>
    </tr>
    <tr>
    <td >Telefoni:<br />
    *Tel-1: <input type="text" name="tel1" onchange="val_tel(this.value)">   
    Tel-2: <input type="text" name="tel2" onchange="val_tel(this.value)">

         </td>
        <td >Fax:<br />
            <input type="text" name="fax" onChange="val_tel(this.value)">
        </td>
    </tr>
    <tr>
        <td >*E-mail:<br />
        <input type="text" name="email" onChange="val_mail(this.value)">
    
         </td>
        <td >Partita Iva:<br />
            <input type="text" name="p_iva"  onchange="val_piva(this.value)" >
        </td>
    </tr>
    <tr>
        <td >C.F.<br />
        <input type="text" name="cf" onChange="val_cf(this.value)">
    
         </td>
        <td >Banca<br />
            <input type="text" name="banca"  onchange="val_piva(this.value)" >
        </td>
    </tr>
    

    <tr>
    <td> <input name="submit" type="submit" value="inserisci" >
    <input name="controllo" type="hidden" value="1" />
    </td>
    <td><input name="reset" type="reset" value="reset"></td>
    </tr>
    </table>
    </form>
    <br /><br />
    </div>

    e questo è l'inserimento (insert.php):

    <?php

    include("../global/global.php");
    

    if(!empty($_POST['controllo']) AND $_POST['controllo']==1 ){
    //inserimento dato
    if(!empty($_POST['nome'])){
    $nome=$_POST['nome'];
    }
    else{
    recall_dato("non hai inserito un nome valido");
    }
    if(!empty($_POST['cognome'])){
    $cognome=$_POST['cognome'];
    }
    else{
    recall_dato("non hai inserito un cognome valido");
    }
    if(!empty($_POST['indirizzo'])){
    $indirizzo=$_POST['indirizzo'];
    }
    else{
    recall_dato("non hai inserito un indirizzo valido");
    }
    if(!empty($_POST['tel1'])){
    $tel1=$_POST['tel1'];
    }
    else{
    recall_dato("non hai inserito un telefono primario valido");
    }
    if(!empty($_POST['email'])){
    $email=$_POST['email'];
    }
    else{
    recall_dato("non hai inserito una email valida");
    }
    if(!empty($_POST['tel2'])){
    $tel2=$_POST['tel2'];
    }
    else{
    $tel2="";
    }
    if(!empty($_POST['fax'])){
    $fax=$_POST['fax'];
    }
    else{
    $fax="";
    }
    if(!empty($_POST['p_iva'])){
    $p_iva=$_POST['p_iva'];
    }
    else{
    $p_iva="";
    }
    if(!empty($_POST['cf'])){
    $cf=$_POST['cf'];
    }
    else{
    $cf="";
    }
    if(!empty($_POST['banca'])){
    $banca=$_POST['banca'];
    }
    else{
    $banca="";
    }
    if(!empty($_POST['vario'])){
    $vario=$_POST['vario'];
    }
    else{
    $vario="";
    }
    if(!empty($_POST['societa'])){
    $societa=$_POST['societa'];
    }
    else{
    $societa="";
    }

    $tabella= "table1";
    $result=mysql_query("INSERT INTO `$tabella` (
    `id_iscritto` ,
    `nome` ,
    `cognome` ,
    `societa` ,
    `indirizzo` ,
    `tel1` ,
    `tel2` ,
    `fax` ,
    `p_iva` ,
    `cf` ,
    `email` ,
    `banca` ,
    `id_utente` ,
    `vario`
    )
    VALUES( NULL, 
    '$nome',
    '$cognome',
    '$societa',
    '$indirizzo',
    '$tel1',
    '$tel2',
    '$fax',
    '$p_iva',
    '$cf',
    '$email',
    '$banca',
    '$sess_id',
    '$vario'
    );") or die ("SQL nella tabella $tabella fallita");
    
    recall_inserimento("Inserimento iscritto --> ".$nome." - ".$cognome." <-- avvvenuta con successo - ");
    

    }

    else {
    recall_dato("non hai inviato il form correttamente");
    }

    ?>

    • recall_dato() e recall_inserimento()= non fanno altro che stamapare a video la stringa che gli viene passata e interrompere l'esecuzione dello script.
    • global.php = configurazione d'accesso al database
    • onchange = semplici scriptini in javascript per controllare al volo la correttezza dell'inserimento 😄

  • User Newbie

    ho scoperto un'altra cosa.....questo errore lo fa solo con MOZILLA!!!!!

    con I.E. funziona tutto.....AIUTATEMI!!!!!


  • User Attivo

    non è che per caso può avvenire un doppio clic sul bottone di submit?