le header ne se fait que si tu n'as aucun contenu envoyé au client ... Or dans le 2nd cas tu envoies du code source HTML avant le header, attends-toi à avoir un "warning headers already sent" ...
il ne faut pas confondre header et redirection, normalement le header est là pour envoyer un en-tête, pas pour faire une redirection. C'est un détournement de la fonction que de l'utiliser pour de la redirection.
d'autre part, tu fais if ($sql) mais jez ne suis pas sûr que ton mysql_query te renvoie un "true" ... Il renvoie false en cas d'erreur, mais un resultset en cas de succès et non un booléen. (cf la doc : http://fr.php.net/manual/fr/function.mysql-query.php)
donc tu devrais plutôt faire :
Code :
- if ($sql !== false)
- {
- echo '<p>La suppression a bien été effectuée !</p>';
- }
- else
- {
- echo '<p>La suppression a échoué ...</p>';
- }
- // et quel que soit le message, on affiche la redirection vers details.php
- echo '<p style="text-align:center;"><a href="details.php">Redirection en cours ...</a></p>';
- echo '<script type="text/javascript">';
- // j'ai mis 3000 millisecondes (= 3 sec) tu peux changer par ce que tu veux
- echo "window.setTimeout(\"location=('details.php');\",3000)";
- echo '</script>';
- // et on ferme la connexion
- mysql_close();
|
Après, ton code peut être optimisé encore.
---------------
NewsletTux - outil de mailing list en PHP MySQL