- Home
- Categorie
- Coding e Sistemistica
- PHP
- Record Doppi dopo Insert
-
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
-
senza vedere lo script è imposibile aiutarti...
-
@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
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
-
ho scoperto un'altra cosa.....questo errore lo fa solo con MOZILLA!!!!!
con I.E. funziona tutto.....AIUTATEMI!!!!!
-
non è che per caso può avvenire un doppio clic sul bottone di submit?