Tom's Guide > Forum > Programmation > Redirection livre d'or

Redirection livre d'or

Forum Programmation : Redirection livre d'or

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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.

------------------------------ http://crx.16s.free.fr
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

Code :
  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


Message édité par Dawlin le 18-06-2007 à 21:17:53
------------------------------ Gite de Vacances Deux-sèvres (79)
Ragnarok Battle Offline
L'Ouvroir
Répondre à Dawlin

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:

------------------------------ http://crx.16s.free.fr
Répondre à Devil_Jin

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

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

------------------------------ Gite de Vacances Deux-sèvres (79)
Ragnarok Battle Offline
L'Ouvroir
Répondre à Dawlin

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 !

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



Voilà !

Merci.

------------------------------ http://crx.16s.free.fr
Répondre à Devil_Jin

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, :

Code :
  1. <form method="post" action="livreor1.php">


tu remplace par

Code :
  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é :

Code :
  1. header("Location :http://www.ton-site.com/livredor.php" );


Message édité par Dawlin le 18-06-2007 à 21:47:40
------------------------------ Gite de Vacances Deux-sèvres (79)
Ragnarok Battle Offline
L'Ouvroir
Répondre à Dawlin

Donc voilà ce que j'ai fait :

livreor1.php :

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



Et livreor2.php :

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



Est-ce que c'est bon ???

------------------------------ http://crx.16s.free.fr
Répondre à Devil_Jin

normalement ... oui

mais un test t'aurait évité un post lol !

------------------------------ Gite de Vacances Deux-sèvres (79)
Ragnarok Battle Offline
L'Ouvroir
Répondre à Dawlin
Tom's Guide > Forum > Programmation > Redirection livre d'or
Aller à :

Il y a 2458 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens