probleme redirection

probleme redirection - PHP - Programmation

Marsh Posté le 13-03-2010 à 22:39:13    

Bonjour,
 
Je vous expose mon problème j'ai une page ou l'on clic sur un lien qui envoi vers une autre page ou il y a en php une requête pour supprimé un adhérent mais une fois la suppression fini je voudrai redirigé ma page vers la page ou l'on a cliqué sur le lien .
 
Merci de vos réponses par avance .
Voici mon code
 
<?
 
  $hote = '*';
 
  $utilisateur = '*';
 
  $mdp = '*';
 
  $db = '*';
 
 
 
  //connexion à la base
 
  $connexion = mysql_connect($hote, $utilisateur,$mdp) or die("erreur de connexion au serveur" );
 
  mysql_select_db($db) or die ("Problème de connexion à la base de données !" );
 
 
// on crée la requête SQL
$sql = 'DELETE
  FROM Badminton
  WHERE matricule = "$matricule"';
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
 
if ($sql)
  {
   header('Location: details.php');
  }
  else
  {
   echo "<script language=\"Javascript\">";
   echo "alert (\"La suppresion à échouée !\" ) </script>";  
   header('Location: details.php');
   
// on ferme la connexion à mysql
mysql_close();  
 
?>

Reply

Marsh Posté le 13-03-2010 à 22:39:13   

Reply

Marsh Posté le 14-03-2010 à 11:06:53    

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 :
  1. if ($sql !== false)
  2. {
  3.     echo '<p>La suppression a bien été effectuée !</p>';
  4. }
  5. else
  6. {
  7.     echo '<p>La suppression a échoué ...</p>';
  8. }
  9. // et quel que soit le message, on affiche la redirection vers details.php
  10. echo '<p style="text-align:center;"><a href="details.php">Redirection en cours ...</a></p>';
  11. echo '<script type="text/javascript">';
  12. // j'ai mis 3000 millisecondes (= 3 sec) tu peux changer par ce que tu veux
  13. echo "window.setTimeout(\"location=('details.php');\",3000)";
  14. echo '</script>';
  15. // et on ferme la connexion
  16. mysql_close();


 
Après, ton code peut être optimisé encore.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed