Ciao di nuovo a tutti.
Stavolta ho un problema che mi lascia un po perplesso.
Mi sono copiato in locale un applicativo per la gestione di chiamate di helpdesk per poterlo modificare senza interferire con chi ci lavora.

L'applicativo gira su un raq 550 SUN con su redhat quindi ha gia integrato tutto per php e via dicendo.
Io uso xampp per gestire apache e mysql su wizozz.

Da stamattina aprendo la pagina di login mi da questi errori:
------------------------------------------------
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\inetpub\Apache\helpdesk\common\common.php:1) in C:\inetpub\Apache\helpdesk\common\login.php on line 106

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\inetpub\Apache\helpdesk\common\common.php:1) in C:\inetpub\Apache\helpdesk\common\login.php on line 106

Warning: Cannot modify header information - headers already sent by (output started at C:\inetpub\Apache\helpdesk\common\common.php:1) in C:\inetpub\Apache\helpdesk\common\login.php on line 159

Warning: Cannot modify header information - headers already sent by (output started at C:\inetpub\Apache\helpdesk\common\common.php:1) in C:\inetpub\Apache\helpdesk\index.php on line 85
---------------------------------------------------

La cosa interessante è che lo stesso identico codice prima che spegnessi il pc ieri funzionava perfettamente e, sempre lo stesso codice, funziona tutt'ora sul server.
Avendo quindi escluso a priori il codice ho pensato fosse un problema di permessi sui cookie o qualcosa di simile (non si puo mai dire che vista abbia cambiato settaggi nella notte per dispetto) ma anche quelli sono a posto.

Le chiamate che generano gli errori sono una session_start(); alla riga 106, header("Location: $_SERVER[HTTP_REFERER]"); a 159 e header("Location: $supporter_site_url/index.php"); a 85.

Il codice fino a quella linea del file login è:

//Gestione errori
if (isset($_GET[error])){
//controllo cookie
if (!isCookieSet()) {
if (eregi("supporter", $_SERVER[PHP_SELF]) || eregi("admin", $_SERVER[PHP_SELF])){
require_once "../common/style.php";
require_once "../lang/$default_language.lang.php";
require_once "../common/common.php";
}else{
require_once "common/style.php";
require_once "lang/$default_language.lang.php";
require_once "common/common.php";
}
}

switch($_GET[error]){
case (1):
$error_message = $lang_wronglogin.'

<a href=index.php>'.$lang_click_here.'</a>';
break;
case (2):
$error_message = $lang_wronglogin.'

<a href=index.php>'.$lang_click_here.'</a>';
break;
case (3):
$error_message = $lang_notsupporter.'

<a href=../index.php>'.$lang_click_here.'</a>';
break;
case (4):
$error_message = $lang_wronglogin.'

<a href=index.php>'.$lang_click_here.'</a>';
break;
case (5):
$error_message = $lang_notadmin.'

<a href=index.php>'.$lang_click_here.'</a>';
break;
default:
}

echo '<TABLE class=border cellSpacing=0 cellPadding=0 width='.$theme['width'].' align=center border=0>
<TR>
<TD>
<TABLE cellSpacing=1 cellPadding=5 width="100%" border=0>
<TR>
<TD class=hf class=info align=center>' . $helpdesk_name . '</TD>
</TR>
<TD>
<TABLE cellSpacing=1 cellPadding=5 width="100%" border=0>
<TR>
<TD class=hf class=info align=center>' . $helpdesk_name . '</TD>
</TR>
<TR>
<TD class=back>
<TABLE border=0 width="100%">
<TR>
<TD class=back vAlign=top>
';
printError($error_message,"40%");
echo ' </TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TABLE>';

if (eregi("supporter", $_SERVER[PHP_SELF]) || eregi("admin", $_SERVER[PHP_SELF]))
require "../common/footer.php";
else
require "common/footer.php";

unset($_GET[error]);
exit;
}

$mtime1 = explode(" ", microtime());
$starttime = $mtime1[0] + $mtime1[1];
if (eregi("supporter", $_SERVER[PHP_SELF]) || eregi("admin", $_SERVER[PHP_SELF]))
require_once "../lang/$default_language.lang.php";
else
require_once "lang/$default_language.lang.php";

session_start();


Lo so che la stampa della prima parte della tabella è messa prima del session_start ma se ha funzionato fino a stamattina evidentemente viene eseguita dopo.
Qualche idea?

Grazie come sempre a tutti