IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Deux fois le message pour un livre d'or !


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Deux fois le message pour un livre d'or !
    Bonjour à tous !

    Je suis tout nouveau ici, et je suis aussi un newbie pour ce qui est du PHP.
    Je suis entrain de faire un tutoriel PHP sur le site.
    Mais là je coince grave !!

    J'ai réalisé un petit code pour un livre d'or, tout fonctionne, mais malheureusement, quand je recharge ma page, et que windows me demande de si j'accepte le renvoi d'information, le message précédemment écrit est a nouveau envoyé à la base de donnée, et donc réécri sur la page.
    Je sais qu'il faut dire à PHP "si le message ecrit est le meme qu'un dans la base, ne rien faire", mais là j'y arrive pas.
    Ca fait 5h que j'y suis, et je trouve pas.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php
    if (isset($_POST['pseudo']) AND isset($_POST['message'])){
    	if($_POST['pseudo']!=$donnees['pseudo'] AND $_POST['message']!=$donnees['message']){
    		$pseudo=htmlentities($_POST['pseudo']);
    		$message=htmlentities($_POST['message']);
    		mysql_connect("mysql5-2","thomascatest","7ws6xjjt");
    		mysql_select_db("thomascatest");
    		mysql_query("INSERT INTO livreor(ID, pseudo, message) VALUES('', '$pseudo', '$message')");
    		mysql_close();
    		}
    }
    ?>
    <p>
    Mon site vous plait ? Laissez-moi un message !
    </p>
    <form method="post" action="test.php">
    pseudo : <br/><input type="text" name="pseudo" /><br/>
    Message :<br/>
    <textarea name="message" rows="8" cols="45">
    </textarea>
    <br/>
    <input type="submit" value="envoyer" />
    </form>
    <?php
    		mysql_connect("mysql5-2","thomascatest","7ws6xjjt");
    		mysql_select_db("thomascatest");
    		$retour = mysql_query('SELECT COUNT(*) AS nbr_entrees FROM livreor');
    		$donnees = mysql_fetch_array($retour);
    		$totalDesMessages=$donnees['nbr_entrees'];
    		$nombreDeMessagesParPage=10;
    		$nombreDePages=ceil($totalDesMessages/$nombreDeMessagesParPage);
    		echo "le nombre total de message est :".$totalDesMessages."<br/>";
    		echo "le nombre total de page est :".$nombreDePages."<br/>";
    		for($i=1;$i<=$nombreDePages;$i++){
    		echo '<a href="test.php?page='.$i.'">'.$i.'</a>'." ";
    		}
     
    ?>
    Pages <br/>
    <?php
    if (isset($_GET['page'])){
    	$page=$_GET['page'];
    	}
    	else
    	{
    	$page=1;
    	}
    	$premierMessage=($page-1)*$nombreDeMessagesParPage;
    	$reponse=mysql_query("SELECT * FROM livreor ORDER BY ID DESC LIMIT $premierMessage,$nombreDeMessagesParPage");
    	while ($donnees = mysql_fetch_array($reponse))
    	{
    	echo $donnees['pseudo']."<br/>";
    	}
    	mysql_close();
    ?>
    </body>
    </html>
    Celui qui réussi à m'aider je lui donne... euh... un cours gratuit sur du HTML, c'est pas la classe ça ??

    A+

    Galaad

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 120
    Points
    120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO livreor(ID, pseudo, message) VALUES('', '$pseudo', '$message')
    hum... ta table livreor est définie comment ? d'après la requête, je dirais que le problème vient du fait que ton champ ID, n'est pas déclaré en tant que clé primaire... Sinon, tu aurais une erreur lorsque tu envoies ta requete indiquant que tu as une clé en double !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    ID est bien défini sur clé primaire...
    Mais en fait ca double pas la clé, ca en crée une nouvelle, genre

    ID=1
    salut tout le monde !
    ID=2
    salut tout le monde !

    Merci quand même pour ta réponse

    Galaad

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Sépare l'affichage du traitement.

    Ensuite il faut que ça suive ce cheminement :
    Formulaire -> Page de traitement -> header('Location: goldbook.php');

    Ce n'est qu'un exemple.

    P.s :
    un cours gratuit sur du HTML, c'est pas la classe ça ??
    Sur du xHTML ça aurait été un peu mieux comme "récompense" xD

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Par header, tu veux dire une redirection sur ma page ou il y a le formulaire ?
    Je vais essayer de séparer les deux, mais il risque d'y avoir une coupure, et ca c'est pas bon.
    Encore pour un livre d'or c'est pas grave, mais il m'arrive la même chose avec un tchat.
    Je rentre un texte, j'appuie sur valider, et la super, par contre si j'appuye sur recharger la page, ca double l'entrée, en créant un nouvel ID.

    Cette solution ne peut donc pas marcher.

    Pour le cours je veux bien aller jusqu'a html 2, mais ce sera tout.


    Galaad

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    La redirection en php est direct, il n'y a pas à attendre une seconde ou autre ... on ne voit pas la différence ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Ok, merci pour ta réponse, j'aurai aimé pouvoir faire ca en une seule page mais bon.

    Ah oui, mon cours sur le html...

    Alors quand tu veux créer une page, tu dois mettre ton contenu entre les balises <body></body>

    Voilà, c'est une petite astuce.

    Galaad.

Discussions similaires

  1. Message d'erreur qui s'affiche deux fois au lieu de trois
    Par popolvictory dans le forum Forms
    Réponses: 2
    Dernier message: 23/10/2008, 16h00
  2. Problème pour imprimer deux fois
    Par jodan33 dans le forum Débuter
    Réponses: 6
    Dernier message: 07/04/2008, 15h52
  3. Réponses: 4
    Dernier message: 29/01/2008, 14h08
  4. Message de confirm qui s'affiche deux fois
    Par Lolie11 dans le forum Langage
    Réponses: 17
    Dernier message: 07/06/2007, 11h00
  5. Message de confirm qui s'affiche deux fois
    Par Lolie11 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 05/06/2007, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo