Un switch avec des case pourrait clarifier ta situation :
http://www.lephpfacile.com/tutorials/index.php?page_a_afficher=7
Le elseif est interrsant lorqu'il apprait une ou deux fois maximum. Au dela, il vaut mieux utiliser un switch.
L'indentation aussi est importante pour bien se reperer, genre :
if ($toto == "test") {
[une tabulation] echo '$toto vaut test';
}
elseif ($toto == "caca") {
[une tabulation] echo '$toto vaut caca';
}
else {
[une tabulation] echo '$toto est different de test et de caca';
}
Tu vois ce que je veux dire ? (bien mettre des tabulations afin de mieux reperer ou s'ouvrent et se ferment les if, elseif, else)
Sinon, pour ton code, je l'ai regarde, mais bon, la chuis un peu dead, et j'ai du mal a bien voir où se ferment tes if, elseif, else.
Si tu veux, demain, on le regardera ensemble plus en profondeur (si tu n'as toujours pas trouvé la merde d'ici là)....