Cuando a mi me pasa eso, uso esta función extraida del libro que figura en el comentario.
Guardala como include/debug.php y ponla con un include al principio de todos tus ficheros *.php.
Cuando tengas problemas hazle un dump() a tu código y verás que falla.
Código PHP:
<?
/*
* Rutina de ayuda a la depuración.
* Extraido de: Desarrollo Web con PHP y MYSQL
* Laura Thomsom, Luke Welling
* debug.php
*
* Muestra el valor de los distintos arrays GPCR en php.
*
* $_GET,$_POST,$_COOKIE,$_REQUEST
*/
function dump(){
//echo 'GLOBALS'.dump_array($_GLOBALS);
echo "<br />";
echo 'POST: '.dump_array($_POST);
echo "<br />";
echo 'GET: '.dump_array($_GET);
echo "<br />";
echo 'SESSION: '.dump_array($_SESSION);
echo "<br />";
echo 'COOKIE: '.dump_array($_COOKIE);
echo "<br />";
echo 'REQUEST: '.dump_array($_REQUEST);
echo "<br />";
}
function dump_array($array){
if ( is_array($array)){
$size=count($array);
$string='';
if ($size){
$count=0;
$string .='{ ';
// Añade la clave y el valor de cada elementro al matriz
foreach ($array as $var=>$value){
$string .="$var = $value";
if ($count++<($size-1))
$string .=', ';
}
$string .=' }';
}
return $string;
}
else {
// si no es una matriz, devuélvalo
return $array;
}
}
function debug ($text){
echo "<br><font color=\"red\">".$text."</font>";
}
?>