Salve a tutti
ho nel database 2 campi con index unique per prevenire duplicati

il problema e che qualcosa e' sbagliato nel codice, non mi visualizza gli avvisi e mi da errore
ATTENZIONE!! Codice duplicato
Warning: Cannot modify header information - headers already sent by (output started at E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php:34) in E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php on line 35
Warning: Cannot modify header information - headers already sent by (output started at E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php:34) in E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php on line 52
inoltre mi inserisce anche nuovi record con id e altri campi vuoti

codice trovato in rete e adattato con l'errore 1062 di unique index
form.php
Codice HTML:
<form action="insert.php" method="POST">
<input type="text" name="articolo" placeholder="articolo" autofocus="on">
<input type="text" name="codice" placeholder="codice">
<input type="submit">
</form>
insert.php
Codice PHP:
<?php
//INSERISCO LE VARIABILI IN ALTRETTANTI VARIABILI DI SESSSIONE
$host = 'localhost';
$user = 'user';
$password = 'pass';
$db = 'duplicati';
$connessione = new mysqli($host, $user, $password, $db);
// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
echo "Connection failed: ". $conn->connect_error . ".";
exit();
}
session_start();
$_SESSION['codice'] = $codice;
$_SESSION['articolo'] = $articolo;
if (!$result = $connessione->query("SELECT * FROM articoli")) {
echo "Errore della query: " . (mysqli_errno($connessione) == 1062) . "."; // questo per errore uinique e visualizzare avviso in formato testuale
}
else{
// conteggio dei record
if ($connessione) {
echo 'ATTENZIONE!! Codice duplicato'.' ' .$codice .' '.$articolo;
header("location: form.php#mess");
}
// esecuzione della query per l'inserimento dei record
if (!$connessione->query("INSERT INTO articoli (articolo,codice) VALUES
('$articolo','$codice')")) {
echo "Errore della query: " . $connessione->error . ".";
}
//-----LEGGE IL DB E NE MEMORIZZA L'ID APPENA INSERITO
if (!$result = $connessione->query("SELECT * FROM articoli WHERE codice = '$codice'")) {
echo "Errore della query: " . $connessione->error . ".";
}else{
// conteggio dei record
if($result->num_rows > 0) {
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$id = $row['id'];
}
}
}
$_SESSION['messaggio']='OK!! Il record è stato correttamente inserito. Il suo id è: '.$id;
header("location: form.php#mess");
}
// chiusura della connessione
$connessione->close();
?>