no, è solo un errore di scrittura il codice completo è questo:
funzione che aggiorna
Codice PHP:
<?
    
function edit_ticket($id)
    {
        
//clean up HTML tags
    
$frm_description strip_html($_POST['frm_description']);
    
$frm_affected strip_html($_POST['frm_affected']);
    
$frm_scope    strip_html($_POST['frm_scope']);
    
$frm_owner $_POST['frm_owner'];
    
$frm_status $_POST['frm_status'];
    
$frm_severity $_POST['frm_severity'];
        
//do automatic action reporting
        
echo "
id-> "
.$id;
        echo 
"
oggetto-> "
.$frm_scope;
        echo 
"
titolo-> "
.$frm_affected;
        echo 
"
descrizione-> "
.$frm_description ;
        echo 
"
mittente-> "
.$frm_owner;
        echo 
"
stato-> "
.$frm_status;
        echo 
"
livello-> "
.$frm_severity;
if (
$frm_severity!="" && $frm_status!="" && $frm_owner!="" && $frm_description!="" && $frm_affected!="" && $frm_scope!="" && $id!="") {
        
//update ticket
        
$query "UPDATE tabella SET campo='$frm_affected', campo='$frm_owner', campo='$frm_description', campo='$frm_status', campo='$frm_severity', campo='0', campo='0', campo='30' WHERE campo='$id'";
        
$result mysql_query($query) or die('edit.php::update_ticket');

        
/* show updated ticket */
        
print "<center><FONT CLASS=\"header\">Il Ticket $id è stato modificato</FONT>

"
;
        
show_ticket($id);
        
add_footer($id);
        
notify_user($id,1);
        
//notify_user(298,$NOTIFY_TICKET);
    
}
    else {
    echo 
"valori vuoti";
    echo 
"
id-> "
.$id;
    echo 
"
oggetto-> "
.$frm_scope;
    echo 
"
titolo-> "
.$frm_affected;
    echo 
"
descrizione-> "
.$frm_description ;
    echo 
"
mittente-> "
.$frm_owner;
    echo 
"
stato-> "
.$frm_status;
    echo 
"
livello-> "
.$frm_severity;
    }    

}
    
?>
nello stesso file la pagina che si visualizza:

Codice PHP:
<? 
    $id 
$_GET['id'];

    if (
$_GET['action'] == 'update')
    {        
        
//echo "entro qui perche devo aggiornare lo stato";
        /* update ticket */
        
if ($id == '' OR $id <= OR !check_for_rows("SELECT * FROM tabella WHERE campo='$id'"))
            print 
"<FONT CLASS=\"warn\">Ticket ID non valido: '$id'</FONT>";
        else
            
edit_ticket($id);
    }
    
//delete ticket
    
else if ($_GET['delete']) 
    {
        if (
$_POST['frm_confirm'])
        {    
            
//verifico se esiste l'allegato
            
if (verificaAllegato($id)) // se si entro e cancello tutto dalla tabella allegati, altrimenti vado sotto
            
{   
            
deldir($dir=("allegati/codice_".$id)); //elimino la cartella e il suo contenuto
            //elimino il ticket dal db
            //seleziono tutti gli id azioni per andare successivamente a cancellarli
            
$query=mysql_query("SELECT campo FROM tabella WHERE campo='$id'") or do_error('edit.php::remove_ticket(ticket)''mysql_query() failed'mysql_error());
                while(
$row mysql_fetch_array($query))
                {
            
//echo $id." n° di ticket";
            //echo $row[campo]." n° di azione";
            //cancello dalla tabella allegati gli id action
                
$result mysql_query("DELETE FROM tabella WHERE campo='$row[campo]' AND campo='1' ") or do_error('edit.php::remove_ticket(ticket)''mysql_query() failed'mysql_error());
            
//cancello da allegati gli id ticket
                
$result mysql_query("DELETE FROM tabella WHERE campo='$id' AND campo='0' ") or do_error('edit.php::remove_ticket(ticket)''mysql_query() failed'mysql_error());
                }
            } 
//se il controllo restituisce false cancello solo le tabelle di ticket ed action e non allegati, perchè vuota        
            //$nome="allegati/codice_".$id;
            
@rmdir("allegati/codice_".$id);
            
$result mysql_query("DELETE FROM tabella WHERE campo='$id'") or do_error('edit.php::remove_ticket(ticket)''mysql_query() failed'mysql_error());
            
$result mysql_query("DELETE FROM tabella WHERE campo='$id'") or do_error('edit.php::remove_ticket(action)''mysql_query() failed'mysql_error());
            
$result mysql_query("DELETE FROM tabella WHERE campo='$id' AND campo='0' ") or do_error('edit.php::remove_ticket(ticket)''mysql_query() failed'mysql_error());
                        
            print 
"<center><FONT CLASS=\"header\">Il Ticket '$id' è stato cancellato.</FONT>

"
;
            
            
list_tickets();
        }
        else
//confirm deletion
        
echo "<FORM METHOD=\"post\" ACTION=\"edit.php?id=$id&delete=1&go=1\">
        <table widht=\"780\" align=\"center\" CLASS=\"header\">
        <FONT CLASS=\"header\">Confermare la cancellazione del tickets</font>


        <INPUT TYPE=\"checkbox\" NAME=\"frm_confirm\" VALUE=\"1\">Cancella Ticket #
$id<INPUT TYPE=\"Submit\" VALUE=\"Elimina\"></FORM></table>";
        
    }
    else
    {
        
/* sanity check */
        
if ($id == '' OR $id <= OR !check_for_rows("SELECT * FROM tabella WHERE campo='$id'"))
        {
            print 
"<center>[b]Ticket '$id' non valido[/b]
"
;
        } else {

        
$result mysql_query("SELECT *,UNIX_TIMESTAMP(date) AS campo FROM tabella WHERE campo='$id'") or do_error('edit.php::show_ticket''mysql_query() failed'mysql_error());
        
$row mysql_fetch_array($result);

        
?>
        
        <TABLE width="780" BORDER="0" align="center">
        <FORM METHOD="post" ACTION="edit.php?id=<? echo $id;?>&amp;action=update">
        <tr><td colspan="2" ALIGN="left" class="titolo_ticket">Modifica Ticket</td>
        <td width="130"></td></tr>
        <tr><TD bgcolor="#f5f5f5" align="left" CLASS="td_label">Titolo:</TD>
        <TD align="left" ><INPUT TYPE="text" SIZE="48" NAME="frm_affected" VALUE="<? echo $row[campo];?>" ></TD></TR>
        <TR><TD bgcolor="#f5f5f5" align="left" CLASS="td_label">Obiettivo:</TD>
        <TD align="left" ><INPUT TYPE="text" NAME="frm_scope" SIZE="48" VALUE="<? echo $row[campo];?>" readonly=""></TD></TR>
    <?
        
//lookup owners
        
if (get_variable('restrict_user_add') && !(is_administrator()) || $_SESSION['level'] != $GLOBALS['LEVEL_ADMINISTRATOR'])
            print 
"<INPUT TYPE=\"hidden\" NAME=\"frm_owner\" VALUE=\"$row[campo]\">";
        else
        {
            print 
"<TR><TD bgcolor=\"#f5f5f5\" align=\"left\" CLASS=\"td_label\">Utente:</TD>
            <TD align=\"left\" widht=\"\">"
;
            
$result2 mysql_query("SELECT campo,campo FROM tabella") or do_error('edit.php::lookup_owner''mysql_query() failed'mysql_error());
            print 
"<SELECT NAME=\"frm_owner\">";
            
            while (
$row2 mysql_fetch_array($result2))
            {
                if (
get_owner($row['campo']) == $row2['campo'])
                    print 
"<OPTION VALUE=\"$row2[campo]\" SELECTED>$row2[campo]</OPTION>";
                else
                    print 
"<OPTION VALUE=\"$row2[campo]\">$row2[campo]</OPTION>";
            }
            print 
"</SELECT></TD></TR>";
        }
        
?>
        <TR><TD bgcolor="#f5f5f5" align="left" widht="" CLASS="td_label">Priorità:</TD>
        <TD align="left" widht=""><SELECT NAME="frm_severity">
        <OPTION VALUE="<?=$GLOBALS['SEVERITY_NORMAL'];?><?=($row[campo]==$GLOBALS['SEVERITY_NORMAL']) ? "SELECTED" "";?>><?=get_severity($GLOBALS['SEVERITY_NORMAL']);?></OPTION>
        <OPTION VALUE="<?=$GLOBALS['SEVERITY_MEDIUM'];?><?=($row[campo]==$GLOBALS['SEVERITY_MEDIUM']) ? "SELECTED" "";?>><?=get_severity($GLOBALS['SEVERITY_MEDIUM']);?></OPTION>
        <OPTION VALUE="<?=$GLOBALS['SEVERITY_HIGH'];?><?=($row[campo]==$GLOBALS['SEVERITY_HIGH']) ? "SELECTED" "";?>><?=get_severity($GLOBALS['SEVERITY_HIGH']);?></OPTION>
        </SELECT></TD></TR>  
        <TR><TD bgcolor="#f5f5f5" align="left" widht="" CLASS="td_label">Stato:</TD>
        <TD align="left" widht=""><SELECT NAME="frm_status"><OPTION VALUE="2">Aperto</OPTION><OPTION VALUE="1">Chiuso</OPTION></SELECT></TD></TR>  
        <TR><TD bgcolor="#f5f5f5" align="left" widht="" CLASS="td_label">Descrizione:</TD>
        <TD align="left" widht=""><TEXTAREA NAME="frm_description" COLS="100%" ROWS="8"><?=$row['campo'];?></TEXTAREA></TD></TR>
        <? print "<tr><td align=\"left\" colspan=\"2\">".getNoLinkAllegato($id,0)."

</td></tr>"
;?>
<!-- questi li passavo per prova nel caso inviavo due volte<INPUT TYPE="hidden" NAME="frm_affected_default" VALUE="<?=$row['campo'];?>">
        <INPUT TYPE="hidden" NAME="frm_scope_default" VALUE="<?=$row['campo'];?>">
        <INPUT TYPE="hidden" NAME="frm_owner_default" VALUE="<?=$row['campo'];?>">
        <INPUT TYPE="hidden" NAME="frm_severity_default" VALUE="<?=$row['campo'];?>">
        <INPUT TYPE="hidden" NAME="frm_status_default" VALUE="<?=$row['campo'];?>">    
        <INPUT TYPE="hidden" NAME="frm_status_description" VALUE="<?=$row['campo'];?>">     -->

        
        <?        
        
/* list actions belonging to ticket */
        
$result mysql_query("SELECT *,UNIX_TIMESTAMP(date) AS campo FROM tabella WHERE campo='$id' ORDER BY date") or do_error('edit.php::action''mysql_query() failed'mysql_error());    
         
        
$i=0;
        while (
$row mysql_fetch_array($result))
        {
            
//if reporting action, skip
            
if ($row[campo] != $GLOBALS[ACTION_COMMENT]) continue;
            
        
            if (!
$no_action)
        print 
"<TABLE width=\"780\" BORDER=\"0\" align=\"center\">";
        print 
"<TR><TD bgcolor=\"#CCCCCC\" align=\"canter\" widht=\"\" colspan=\"2\">[b]Azioni effettuate:[/b]</td></tr>";
            print 
" <tr><TD bgcolor=\"#f5f5f5\" ALIGN=\"left\" widht=\"\">Data Inserimento: [B]".format_date($row[date])."[/B]
da: [b]"
.get_owner($row[campo])."[/b]

"
;
            if (
get_variable('abbreviate_affected'))
            if (
strlen($row['campo']) > get_variable('abbreviate_affected')) $row['description'] = substr($row['campo'],0,get_variable('abbreviate_affected')).'...';
            print 
"$pre_tag".custom_tags($row[campo]).$pre_tag_closed ".getNoLinkAllegato($row[id],1)."
[<A HREF=\"action.php?ticket_id=
$id&id=$row[campo]&action=edit\">Modifica</A>| <A HREF=\"action.php?id=$row[campo]&ticket_id=$id&action=delete\">Elimina</A>]</TD></TR>
            <TR><TD>
</TD></TR>"
;
            
$no_action 1/* simple cosmetics fix */
            
$i++;
        }
          print 
"<tr><td colspan=\"2\" align=\"left\"><INPUT TYPE=\"submit\" VALUE=\"Modifica\"></td></tr>
</TABLE>"
;     
        }
echo 
"</FORM></table>";
    }
Questa è tutta la pagina che mi dava quel problema... e non solo... ho dovuto modificare tutti gli UPDATE con un controllo come questo prima di effettuare la query:

if ($variabile1!="" &&$variabile2!=""...) {
$query="udate tabella set campi1=variabile1, capmpo2=variabile2...."
mysql_query....
}

in modo che se le variabili sono vuote non fa nesusn danno!!
Però sta cosa è strana un bel pò.. con la versione vecchia di firefox non mi dava nesusn problema... e ne sono sicurissimo, perchè questo programma lo fatto (modificato/ampliato) 6-7 mesi fà, e con la vecchia relaese di firefox funzionava bene!!