Buona sera a tutti! (anzi buona notte vista l'ora)
Vi pongo un quesito a cui non so dare risposta.

Per un sito di annunci immobiliari (di un progetto universitario, quindi nulla di trascendentale) ho creato la pagina queryinserimentoimmobile.php

Mi sono accorta però, che nonostante l'inserimento immobile vada sempre a buon fine, sono sorti due problemi!

(1) Nel campo descrizione, se vengono inserite lettere accentate esce l'errore
(2) Se aggiorno la pagina, mi fa nuovamente le query, inserendo quindi lo stesso immobile, con un nuovo id.

Come posso risolverli?
Vi posto il codice della pagina:

Codice PHP:
<?php
#FILE CONTENENTE LE QUERY PER L'INSERIMENTO NEL DB DI UN IMMOBILE

#DEVO RICONVERTIRE LE QUERY CON LE MIE FUNZIONI

session_start();
#require('pg_connect.php');
#$que = new db()
#$que->db_open();

if ($mex==""){
    
$db pg_connect("host=** port=** *dbname=** user=** password=**");
    
#NEL CASO IN CUI IL TIPO NON SIA APPARTAMENTO IL NLOCALI E IL PIANO DEVONO ESSERE NULL
    
if (!empty($nlocali)){
        
#INSERIMENTO IMMOBILE
        
$result pg_query($db"INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione, nlocali, piano) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."', '$nlocali', '".$piano."')");
        
#$result = $que->query("INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione, nlocali, piano) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."', '$nlocali', '".$piano."')");
        #RECUPERO ID_I
        
$query pg_query($db"SELECT currval('immobile_id_i_seq')");
        
$record pg_fetch_row($query);
        
$id_i $record[0]; 
        
#$id_i = $que->query_fetch_row("SELECT currval('immobile_id_i_seq')");
        #INSERIMENTO RECAPITO
        
$rec pg_query($db"INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
        
#$rec = $que->query("INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
    
}else{
        
#INSERIMENTO IMMOBILE
        
$result pg_query($db"INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."')");
        
#$result = $que->query("INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."')");
        #RECUPERO ID_I
        
$query pg_query($db"SELECT currval('immobile_id_i_seq')");
        
$record pg_fetch_row($query);
        
$id_i $record[0];
        
#$id_i = $que->query_fetch_row("SELECT currval('immobile_id_i_seq')");
        #INSERIMENTO RECAPITO
        
$rec pg_query($db"INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
        
#$rec = $que->query("INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
    
}
    
#INSERIMENTO STATO OCCUPAZIONALE
    
if (!empty($statoocc)){
        if (
$statoocc=="Liberoda"){
            
$apartireda $giorno."-".$mese."-".$anno;
            
$statooccupazionale pg_query($db"INSERT INTO statoocc (id_i, stato, apartireda) VALUES ( '$id_i', '".$statoocc."', '".$apartireda."')");
            
#$statooccupazionale = $que->query("INSERT INTO statoocc (id_i, stato, apartireda) VALUES ( '$id_i', '".$statoocc."', '".$apartireda."')");
        
}else{
            
$statooccupazionale pg_query($db"INSERT INTO statoocc (id_i, stato) VALUES ( '$id_i', '".$statoocc."')");
            
#$statooccupazionale = $que->query("INSERT INTO statoocc (id_i, stato) VALUES ( '$id_i', '".$statoocc."')");
        
}
    }else{
        
$statooccupazionale pg_query($db"INSERT INTO statoocc (id_i) VALUES ('$id_i')");
        
#$statooccupazionale = $que->query("INSERT INTO statoocc (id_i) VALUES ('$id_i')");
    
}
    
#INSERIMENTO PROPRIETA'
    #TROVO IL CODICE FISCALE DELL'UTENTE IN SESSIONE
    #$codf = $que->query_fetch_row("SELECT codf FROM utente WHERE username='".$_SESSION['username']."' AND pw='".$_SESSION['password']."'");
    
$query pg_query($db"SELECT codf FROM utente WHERE username='".$_SESSION['username']."' AND pw='".$_SESSION['password']."'");
    
$record pg_fetch_row($query);
    
$codf $record[0];    
    
#PER ADESSO FACCIO FINTA CHE NON ESISTA LA DATA VENDITA
    
$dataacquisizione date("d-m-y");
    
#INSERISCO I DATI NELLA TABELLA PROPRIETA'
    #$proprieta = $que->query("INSERT INTO proprieta (dataacquisizione, codf, id_i) VALUES ('".$dataacquisizione."', '".$codf."', '$id_i')");
    
$proprieta pg_query($db"INSERT INTO proprieta (dataacquisizione, codf, id_i) VALUES ('".$dataacquisizione."', '".$codf."', '$id_i')");
    
    
#SE LA QUERY NON ANDASSE A BUON FINE, TORNA ALLA RELATIVA PAGINA DI INSERIMENTO IMMOBILE
    #CONTROLLI A CASCATA
    
if (!$result){
        
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
        
if ($uso=="privato"){
            
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
        
}elseif ($uso=="commerciale"){
            
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
        
}
        exit;
    }else{
        if (!
$id_i){
            
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
            
if ($uso=="privato"){
                
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
            
}elseif ($uso=="commerciale"){
                
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
            
}
            exit;
        }else{
            if (!
rec){
                
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                
if ($uso=="privato"){
                    
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                
}elseif ($uso=="commerciale"){
                    
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                
}
                exit; 
            }else{
                if (!
$statooccupazionale){
                    
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                    
if ($uso=="privato"){
                        
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                    
}elseif ($uso=="commerciale"){
                        
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                    
}
                    exit;
                }else{
                    if (!
$codf){
                        
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                        
if ($uso=="privato"){
                            
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                        
}elseif ($uso=="commerciale"){
                            
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                        
}
                        exit;    
                    }else{
                        if(!
$proprieta){
                            
?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                            
if ($uso=="privato"){
                                
?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                            
}elseif ($uso=="commerciale"){
                                
?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                            
}
                            exit;
                        }else{
                            
#$que->db_close();
                            
?>    <tr><td class="menu" align="center">Immobile inserito!</td></tr>
                                <tr><td class="testo">Vuoi creare l'annuncio per l'immobile che hai appena inserito?</td></tr>
                                <tr><td align="center">[url="queryannuncio.php"]Crea annuncio[/url]&nbsp &nbsp &nbsp &nbsp [url="home.php"]Torna alla homepage[/url]</td>
                                </tr><?php
                        
}
                    }
                }
            }
        }
    }
}
?>