Salve a tutti,

stavo verificando uno script che utilizzo e mi sono reso conto che qualcosa non torna.

Così come è impostato, il ciclo foreach verifica e fa qualcosa oppure è vuoto? La mia impressione è che sia errato.

Ecco il codice in questione:

Codice PHP:
   //recupero informazioni da ... 

    
if (isset($_POST['posted2'])) {
    
//$idob = $_POST['objectID'};
    //$categoria = $_POST['categoria'];
    
$idcat $_POST['idcat'];
    
$subcat $_POST['idsub'];
    
$subcategoria $_POST['subcategoria'];
    
$articolo $_POST['articolo'];
    
$descrizione $_POST['descrizione'];
    
$dettaglio $_POST['dettaglio'];
    
$prezzo $_POST['prezzo'];
    
$sconto $_POST['sconto'];
    
$immagine $_FILES['userfile']['name'];
    
$immagine2 $_FILES['userfile2']['name'];
    
$immagine3 $_FILES['userfile3']['name'];
    
$thumb $_FILES['userfile']['name'];
    
$promozioni $_POST['promozioni'];
    
$novita $_POST['novita'];
    
$esclusivo $_POST['esclusivo'];
    
    
$nn explode("-",$idcat);
                    
$idx $nn[0];
                    
$ID $nn[1];
                    
                    
                
$cc explode("-",$subcat);
                    
$sub $cc[0];
                    
$subID $cc[1];
                    
$subcategoria $cc[2];    
                    
                    
//echo "$idx 
 
$ID 
 $sub 
 $subID
";

    //CODICE FOREACH IN ESAME 

foreach (
$_POST as $key => $value) { 
    
$_POST[$key] = mysql_real_escape_string(htmlentities(htmlspecialchars(trim($value)))); 
  } 
 
// HO AGGIUNTO QUESTI CONTROLLI CHE FUNZIONANO PERFETTAMENTE
  
$articolo = mysql_real_escape_string(htmlentities(htmlspecialchars(trim($articolo))));
$descrizione = mysql_real_escape_string(htmlentities(htmlspecialchars(trim($descrizione))));
$dettaglio = mysql_real_escape_string(htmlentities(htmlspecialchars(trim($dettaglio))));

  
$percentuale = ($prezzo*$sconto)/100;
  
$prezzoscontato = ($prezzo-$percentuale);
  
  //sezione dedicata alla pulizia stringa immagine
  
$immagine = str_replace (" ", "", $immagine);
  
$immagine = str_replace ("%20", "", $immagine);
  
$immagine = str_replace ("", "", $immagine);
    
$immagine2 = str_replace (" ", "", $immagine2);
  
$immagine2 = str_replace ("%20", "", $immagine2);
    
$immagine3 = str_replace (" ", "", $immagine3);
  
$immagine3 = str_replace ("%20", "", $immagine3);
  
$thumb = str_replace (" ", "", $thumb);
   
$thumb = str_replace ("%20", "", $thumb);
   
$thumb = str_replace ("", "", $thumb);

  //inserimento dati su tabella
$query="INSERT INTO $tabarticoli (ID,objectID,idcat,idsub,subcategoriaarticolo,descrizione,dettaglio,prezzo,sconto,immagine,immagine2,immagine3,thumb,promozioni,novita,esclusivoVALUES ('$idx','$subID','$ID','$sub','$subcategoria','$articolo','$descrizione','$dettaglio','$prezzoscontato','$sconto','$immagine','$immagine2','$immagine3','$thumb','$promozioni','$novita','$esclusivo')";

$result = mysql_query($query,$db) or die (mysql_error()); 


if(
$result) {
echo "
articolo inserito";
echo "
";
echo '<script>alert("
Articolo aggiunto");
              location="
articoli.php";    
              </script>';
}else{
echo "
articolo non inserito";
}
}
}
    
  ?> 
Ho inserito le sezioni precedenti e successive al foreach per analizzare il contesto...

Grazie.