Se connecter / S'enregistrer
Votre question

Redirection livre d'or

Tags :
  • Programmation
Dernière réponse : dans Programmation
18 Juin 2007 21:03:17

Bonsoir à tous !!!

J'ai un petit (enfin pour mois c'est un gros) problème avec mon livre d'or, je m'explique :

J'ai créé mon livre d'or, tout va bien sauf que quand je réactualise ma page mon message est en double, j'ai donc décidé de faire une page de redirection, c'est-à-dire qu'une fois que l'utilisateur a appuyé sur "envoyer", la page de redirection s'affiche et hop retour au livre d'or, et c'est là qu'est mon problème, je n'arrive pas à faire cette page de redirection, plus précisément, je ne sais pas le code a y mettre.

Je m'en remets donc à vous pour d'éventuelles explications !!!

Merci d'avance pour vos réponses.

Autres pages sur : redirection livre

18 Juin 2007 21:13:48

alors, mon petit chou ... sur ta page php qui reçoit les données du form, qui les enregistres sur MySQL ou .txt ou je ne sais quoi ...

Tu place ceci :
a la fin
  1. <?php
  2. header("Location : http://www.ton-site.com/livredor.php")
  3. ?>

remplace "livredor.php" par la page où on peut voir ce qui est marqué dans le livre d'or


[EDIT] : Je t'explique quand même :
header => redirection
"Location :http://........" => chemin d'accès
18 Juin 2007 21:24:04

Ok, mais euh sur mon livre d'or on voit les messages qui s'affichent donc en fait il faut que je fasse une page de redirection donc euh, je sais pas comment faire :pt1cable: 
Contenus similaires
18 Juin 2007 21:32:17

O.K... tu vois tu as ton formulaire, en action, tu as mis (exemple) "post.php"

ton formulaire comporte
nom
message

sur post.php tu doit mettre

  1. <?php
  2. $nom=$HTTP_POST_VARS['nom'];
  3. $message=$HTTP_POST_VARS['message'];
  4.  
  5. /*
  6. Ici un script de mettage des variables dans MySQL
  7. */
  8. //puis redirection :
  9. header("Location :http://www.ton-site.com/livredor.php");
  10. ?>
18 Juin 2007 21:36:54

Euh ouais, bon je suis vraiment bidon avec un grand B en PhP, sa fais des mois et ça veut pas rentrer !!!

Tu sais quoi, je te file mon code php de mon livre d'or et tu va me dire où dois-je faire les modifs !

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  2. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  3. <head>
  4. <title>Livre d'or</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <style type="text/css">
  7. form, .pages, select
  8. {
  9. text-align:center;
  10. }
  11. </style>
  12. </head>
  13.  
  14. <body>
  15.  
  16. <form method="post" action="livreor1.php">
  17. <p>Mon site vous plaît ? Laissez-moi un message !</p>
  18.  
  19. <p>Notez-le !
  20. <select name="note">
  21. <option value="10">10</option>
  22. <option value="9">9</option>
  23. <option value="8">8</option>
  24. <option value="7">7</option>
  25. <option value="6">6</option>
  26. <option value="5">5</option>
  27. <option value="4">4</option>
  28. <option value="3">3</option>
  29. <option value="2">2</option>
  30. <option value="1">1</option>
  31. <option value="0">0</option>
  32. </select>
  33. </p>
  34. <p>
  35. Pseudo : <input name="pseudo" /><br />
  36. Message :<br />
  37. <textarea name="message" rows="8" cols="35"></textarea> <br />
  38. <input type="submit" value="Envoyer" />
  39. </p>
  40. </form>
  41.  
  42. <p class="pages">
  43. <?php
  44. mysql_connect("localhost", "root");
  45. mysql_select_db("test");
  46.  
  47. // --------------- Etape 1 -----------------
  48. // Si un message est envoyé, on l'enregistre
  49. // -----------------------------------------
  50.  
  51. if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['note']))
  52. {
  53.  
  54. $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
  55. $note = htmlentities($_POST['note'], ENT_QUOTES);
  56. $message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message
  57. $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
  58.  
  59. // On peut enfin enregistrer :o)
  60. mysql_query("INSERT INTO livreor(id, pseudo, message, date, note) VALUES('', '" . $pseudo . "', '" . $message . "', '" . time() . "', '" . $note . "')");
  61.  
  62. }
  63.  
  64. // --------------- Etape 2 -----------------
  65. // On écrit les liens vers chacune des pages
  66. // -----------------------------------------
  67.  
  68. // On met dans une variable le nombre de messages qu'on veut par page
  69. $nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)
  70.  
  71. // On récupère le nombre total de messages
  72. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
  73. $donnees = mysql_fetch_array($retour);
  74. $totalDesMessages = $donnees['nb_messages'];
  75.  
  76. //On demande à MySQL de faire la moyenne
  77. $retour_moyenne = mysql_query('SELECT AVG(note) AS moyenne_vote FROM livreor');
  78. $donnees_moyenne = mysql_fetch_array($retour_moyenne);
  79.  
  80. // On calcule le nombre de pages à créer
  81. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
  82.  
  83. // Puis on fait une boucle pour écrire les liens vers chacune des pages
  84. echo 'Page : ';
  85. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  86. {
  87. echo '<a href="livreor1.php?page=' . $i . '">' . $i . '</a> ';
  88. }
  89.  
  90. ?>
  91.  
  92. </p>
  93.  
  94. <?php
  95. // --------------- Etape 3 ---------------
  96. // Maintenant, on va afficher les messages
  97. // ---------------------------------------
  98.  
  99. if (isset($_GET['page']))
  100. {
  101. $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
  102. }
  103. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  104. {
  105. $page = 1; // On se met sur la page 1 (par défaut)
  106. }
  107.  
  108. if (isset($_GET['note']))
  109. {
  110. $note = $_GET['note']; // On récupère la valeur de la note
  111. }
  112. else // La note n'existe pas
  113. {
  114. $note = "null";
  115. }
  116.  
  117. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  118. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  119.  
  120. $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
  121.  
  122. while ($donnees = mysql_fetch_array($reponse))
  123. {
  124. echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit le ' . date('d/m/Y' ,$donnees['date']) . ' à '. date('H:i', $donnees['date']) . ' :<br />' . $donnees['message'] . '</p></br><p> Note : '. $donnees['note'] .'/10</p>';
  125. }
  126. //On demande à MySQL de faire la moyenne
  127. $retour_moyenne = mysql_query('SELECT AVG(note) AS moyenne_vote FROM livreor');
  128. $donnees_moyenne = mysql_fetch_array($retour_moyenne);
  129.  
  130. echo 'Les visiteurs m\'ont laissé une note moyenne de ' . $donnees_moyenne['moyenne_vote'] . '/10.';
  131. // et voilà tu as ta moyenne ;-)
  132. // la fonction AVG permet d'éviter de passer par 3 étapes (somme de la colonne puis count du nombre de message et on divise le premier avec le deuxieme... truc chiant quoi :p )
  133.  
  134. mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
  135. ?>
  136.  
  137. </body>
  138. </html>


Voilà !

Merci.
18 Juin 2007 21:47:00

alors déjà les commentaires de ce genre :
"// Essayez de changer"
ça veut dire que tu as un peu pompé... même si tu peux et dois faire comme tu veux, et que d'une certaine manière on apprend comme ça, moi j'aime pas quand on pompe... mais c'est pas grave...

je dirais,
désolidarise "l'étape 1" du reste, mets le sur une page a part.

donc, pour faire cela
ici, :
  1. <form method="post" action="livreor1.php">

tu remplace par
  1. <form method="post" action="livreor2.php">

dans livreor2.php tu colle l'étape 1 (bien sur tu la suppr de livreor1.php)

et ensuite, à la fin, tu met le fameux code que je t'avais donné :
  1. header("Location :http://www.ton-site.com/livredor.php" );
18 Juin 2007 22:11:29

Donc voilà ce que j'ai fait :

livreor1.php :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  2. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  3. <head>
  4. <title>Livre d'or</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <style type="text/css">
  7. form, .pages, select
  8. {
  9. text-align:center;
  10. }
  11. </style>
  12. </head>
  13.  
  14. <body>
  15.  
  16. <form method="post" action="livreor2.php">
  17. <p>Mon site vous plaît ? Laissez-moi un message !</p>
  18.  
  19. <p>Notez-le !
  20. <select name="note">
  21. <option value="10">10</option>
  22. <option value="9">9</option>
  23. <option value="8">8</option>
  24. <option value="7">7</option>
  25. <option value="6">6</option>
  26. <option value="5">5</option>
  27. <option value="4">4</option>
  28. <option value="3">3</option>
  29. <option value="2">2</option>
  30. <option value="1">1</option>
  31. <option value="0">0</option>
  32. </select>
  33. </p>
  34. <p>
  35. Pseudo : <input name="pseudo" /><br />
  36. Message :<br />
  37. <textarea name="message" rows="8" cols="35"></textarea> <br />
  38. <input type="submit" value="Envoyer" />
  39. </p>
  40. </form>
  41.  
  42. <p class="pages">
  43. <?php
  44. mysql_connect("localhost", "root");
  45. mysql_select_db("test");
  46.  
  47. // --------------- Etape 2 -----------------
  48. // On écrit les liens vers chacune des pages
  49. // -----------------------------------------
  50.  
  51. // On met dans une variable le nombre de messages qu'on veut par page
  52. $nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)
  53.  
  54. // On récupère le nombre total de messages
  55. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
  56. $donnees = mysql_fetch_array($retour);
  57. $totalDesMessages = $donnees['nb_messages'];
  58.  
  59. //On demande à MySQL de faire la moyenne
  60. $retour_moyenne = mysql_query('SELECT AVG(note) AS moyenne_vote FROM livreor');
  61. $donnees_moyenne = mysql_fetch_array($retour_moyenne);
  62.  
  63. // On calcule le nombre de pages à créer
  64. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
  65.  
  66. // Puis on fait une boucle pour écrire les liens vers chacune des pages
  67. echo 'Page : ';
  68. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  69. {
  70. echo '<a href="livreor1.php?page=' . $i . '">' . $i . '</a> ';
  71. }
  72.  
  73. ?>
  74.  
  75. </p>
  76.  
  77. <?php
  78. // --------------- Etape 3 ---------------
  79. // Maintenant, on va afficher les messages
  80. // ---------------------------------------
  81.  
  82. if (isset($_GET['page']))
  83. {
  84. $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
  85. }
  86. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  87. {
  88. $page = 1; // On se met sur la page 1 (par défaut)
  89. }
  90.  
  91. if (isset($_GET['note']))
  92. {
  93. $note = $_GET['note']; // On récupère la valeur de la note
  94. }
  95. else // La note n'existe pas
  96. {
  97. $note = "null";
  98. }
  99.  
  100. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  101. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  102.  
  103. $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
  104.  
  105. while ($donnees = mysql_fetch_array($reponse))
  106. {
  107. echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit le ' . date('d/m/Y' ,$donnees['date']) . ' à '. date('H:i', $donnees['date']) . ' :<br />' . $donnees['message'] . '</p></br><p> Note : '. $donnees['note'] .'/10</p>';
  108. }
  109. //On demande à MySQL de faire la moyenne
  110. $retour_moyenne = mysql_query('SELECT AVG(note) AS moyenne_vote FROM livreor');
  111. $donnees_moyenne = mysql_fetch_array($retour_moyenne);
  112.  
  113. echo 'Les visiteurs m\'ont laissé une note moyenne de ' . $donnees_moyenne['moyenne_vote'] . '/10.';
  114. // et voilà tu as ta moyenne ;-)
  115. // la fonction AVG permet d'éviter de passer par 3 étapes (somme de la colonne puis count du nombre de message et on divise le premier avec le deuxieme... truc chiant quoi :p )
  116.  
  117. mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
  118. ?>
  119.  
  120. </body>
  121. </html>


Et livreor2.php :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  2. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
  3. <head>
  4. <title>Livre d'or</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <style type="text/css">
  7. form, .pages, select
  8. {
  9. text-align:center;
  10. }
  11. </style>
  12. </head>
  13.  
  14. <body>
  15.  
  16. <form method="post" action="livreor2.php">
  17. <p>Mon site vous plaît ? Laissez-moi un message !</p>
  18.  
  19. <p>Notez-le !
  20. <select name="note">
  21. <option value="10">10</option>
  22. <option value="9">9</option>
  23. <option value="8">8</option>
  24. <option value="7">7</option>
  25. <option value="6">6</option>
  26. <option value="5">5</option>
  27. <option value="4">4</option>
  28. <option value="3">3</option>
  29. <option value="2">2</option>
  30. <option value="1">1</option>
  31. <option value="0">0</option>
  32. </select>
  33. </p>
  34. <p>
  35. Pseudo : <input name="pseudo" /><br />
  36. Message :<br />
  37. <textarea name="message" rows="8" cols="35"></textarea> <br />
  38. <input type="submit" value="Envoyer" />
  39. </p>
  40. </form>
  41.  
  42. <p class="pages">
  43. <?php
  44. mysql_connect("localhost", "root");
  45. mysql_select_db("test");
  46.  
  47. // --------------- Etape 1 -----------------
  48. // Si un message est envoyé, on l'enregistre
  49. // -----------------------------------------
  50.  
  51. if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['note']))
  52. {
  53.  
  54. $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
  55. $note = htmlentities($_POST['note'], ENT_QUOTES);
  56. $message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message
  57. $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
  58.  
  59. // On peut enfin enregistrer :o)
  60. mysql_query("INSERT INTO livreor(id, pseudo, message, date, note) VALUES('', '" . $pseudo . "', '" . $message . "', '" . time() . "', '" . $note . "')");
  61.  
  62. }
  63.  
  64. mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
  65. ?>
  66. <?php
  67. header('Location : livredor1.php' );
  68. ?>
  69. </body>
  70. </html>


Est-ce que c'est bon ???
19 Juin 2007 18:14:20

normalement ... oui

mais un test t'aurait évité un post lol !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS