email und user_id werden niemals für den Herausgeber funktionieren, da die Login-Funktion "pub_id" und "cemail" zurückgibt. Um dies zu beheben, könnten Sie die SQL ändern in:
$q = "SELECT pub_id as user_id, company_name, cemail AS email FROM
pub WHERE cemail='$e' AND password=SHA1('$p')";