en faite un header() doit etre tj avant l'affichage d'un echo par ex. En gros il ne faut rien ecrire avant un header! tu peut faire des requete sql etc traitement mais ne rien ecrire.
Exemple (ne fonctionne pas):
...
echo $var1;
if ($var1 != 0) {
header("location:page.php")
} else {
...
}
Cela ne peut fonctionné parceque t'as deja ecrit sur t'as page
Mais comme jt'ai dit tu peut faire des traitement avant
Exemple (fonctionne):
if($_GET['action'] == 'login') {
require_once('../config/connect.php');
mysql_select_db($database_mc, $mc);
$req = "SELECT * FROM tbl_membre WHERE utili='".$pseudo."'";
$exec = mysql_query($req);
$result = mysql_fetch_array($exec);
$req1 = "SELECT * FROM tbl_admin WHERE admin='".$pseudo."'";
$exec1 = mysql_query($req1);
$result1 = mysql_fetch_array($exec1);
if ($result1['admin'] == $pseudo && $result1['pass'] == $password) {
$_SESSION['admin'] = $pseudo;
header("location: admin/acc-admin.php");
exit;
}
if ($result['utili'] == $pseudo && $result['mdp'] == $password){
$_SESSION['pseudo'] = $pseudo;
setcookie("clpass","$password",time()+365*24*3600);
setcookie("cllog","$pseudo",time()+365*24*3600);
header("location: acc.php");
exit;
}
else if($result['utili'] != $pseudo)
{
header("location: acc.php?erreur=1");
exit;
}
}
Sa ca fonctionne.
J'ai eu le prob aussi jcaptai pas 
allez a+ :)
Try to dodge my skill noob! 