ho il seguente codice

<?php

$user = $_POST["user"];
$pass = md5($_POST["pass"]);

require_once "connect.php";

$sel = " SELECT * FROM $db_name.users WHERE nickname = '$user' AND password = '$pass' ";
$q = mysql_query($sel);
$r = mysql_fetch_array($q);

echo mysql_error();
echo $r["id"];

if($r) {
$sessionid = $r["id"];
setcookie("session", $sessionid);
//header("location: index.php"); // effettua una redirect al file index.php
} else {
// header("location: index.php?error=1"); // effettua una redirect al file index.php comunicando un errore
echo ("ERROR");
}

?>

in cui tutte le credenziali di connessione al database sono nel file connect.php

L'ho provato in locale su localhost e funziona. L'ho provato pure su uno spazio di altervista e funziona.
Quando lo provo sul mio sito residente su un altro server remoto (non di altervista), mi dā pagina bianca senza scrivere l'errore ( come richiesto dalla funzione echo mysql_error() ) nč mi scrive l'id (come richiesto su echo $r["id"];). L'unica scritta che mi fa č "ERROR" (avendo inserito echo ("ERROR") successivamente). Non credo di aver sbagliato codice, la versione php che uso č la 5.3.