Alcune note generali:

1. Non usare lo short open tag, utilizza il tag di apertura completo (<?php).
2. Non accedere ad una variabile (es. un indice di un array superglobale) se non sei sicura che esista (vedi http://kb.creativepark.it/kb/entry/6/).
3. Un header location richiede un URL assoluto.
4. I parametri di un URL dovrebbero essere codificati correttamente (vedi http://www.php.net/urlencode).
5. Dovresti rivedere attentamente le problematiche relative alla sicurezza come SQL Injection (vedi http://php.html.it/guide/leggi/121/g...urezza-di-php/).
6. L'utilizzo del codice all'interno del while ($$key etc,) potrebbe introdurre un buco di sicurezza
7. Prima di utilizzare il valore di ritorno di mysql_query() dovresti verificarne la correttezza.
8. Quando devi utilizzare un header location con le sessioni, dovresti forzare il salvataggio dei dati (vedi http://kb.creativepark.it/kb/entry/5/).
9. Per quale motivo utilizzi 3 diversi script di welcome.php?

Per il resto, posta il codice che utilizzi per verificare il fatto che l'utente è loggato.