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

Langage PHP Discussion :

[PHP-JS] aide sur chat


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [PHP-JS] aide sur chat
    voila j'ai realisez un chat mais quand j'actualise après envoyez un message ca apparez en double . pouvez vous m'aidez svp

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    comme j'ai ma boule de cristal avec moi, je suppose que tu envoie ton message en POST. la raison de ton pb est simple : quand tu actualises, le message est naturellement renvoyé. le plus simple pour pallier a cela est, comme c'est le cas sur ce forum par exemple, de passer par ne page intermediaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    page ou tu tapes le message --> page qui traite le message --> redirection vers la page ou sont affichés les messages.

  3. #3
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    salut,

    et un coup sur deux la meme variable est utilisé pour le post et l affiche ou, sois les registers global son a on dans ce cas $message et $_POST['message'] retourne meme valeur.

    ++

    ps: si tu veux plus d aide envoie ton code

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Mini-chat</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <style type="text/css">
        form
        {
        text-align:center;
        }
        </style>
        <body>
     
     
    <?php
    if(isset($_POST['pseudo'])AND($_POST['message'])) // Si la variable existe
    {
       if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) 
       { 
       mysql_connect("localhost","root");
    mysql_select_db("test");
     
        $pseudo = $_POST['pseudo'];
    	$message = $_POST['message'];
     
     mysql_query("INSERT INTO chat VALUES('','$pseudo','$message')");
     
    mysql_close();
    }
    }
    ?>
    <form action="tp.php" method="post">
    <p>pseudo:
    <input type="text" name="pseudo"   'value=<?php $_POST['pseudo'];}?> <br/>
    message:
    <input type="text" name="message" /> 
    <input type="submit" value="Valider" />
    </p>
    </form>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    // On utilise la requête suivante pour récupérer les 10 derniers messages :
    $reponse = mysql_query("SELECT * FROM chat ORDER BY ID DESC LIMIT 0,10");
     
    // On se déconnecte de MySQL
    mysql_close();
    while($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <p><strong><?php echo $donnees['pseudo'];?>:</strong><?php echo $donnees['message'];?></p>
    <?php
    }
    ?>
      </body>
    </html>




    voila mon code j'espere que tu peux m'aidez un peu plus avec merci en tout cas

  5. #5
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    ok,

    ton probleme vient du fait que quand tu actualises ta variable $POST['message'] s enregistre une seconde fois dans la bdd.

    le meilleur moyen est comme a dit jobherzt de séparer tes scripts.
    Sinon c'est pas tres propre je trouve detruit ta variable.

    ++

  6. #6
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Citation Envoyé par csbilouze
    ok,

    ton probleme vient du fait que quand tu actualises ta variable $POST['message'] s enregistre une seconde fois dans la bdd.

    le meilleur moyen est comme a dit jobherzt de séparer tes scripts.
    Sinon c'est pas tres propre je trouve detruit ta variable.

    ++
    Je ne vois pas en quoi unset la variable $message va resoudre quelque chose meme si le register global est activé.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    pour eviter que cela s'enregistre une seconde fois il ya bien un moyen enfin merci de mavoir aidé

  8. #8
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    et ca marche au fait lol ?

  9. #9
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    salut,

    désolé pour le doublon.
    j ai modifier un peu ton script.

    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
     
    <?php
    if(isset($_POST['pseudo'])AND($_POST['message'])) // Si la variable existe
    {
       if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
       {
       mysql_connect("localhost","root");
    mysql_select_db("test");
     
        $pseudo = $_POST['pseudo'];
    	$message = $_POST['message'];
     
     mysql_query("INSERT INTO chat VALUES('','$pseudo','$message')");
     
    mysql_close();
    header("location:tp.php");// l header est rajouter ici 
    }
    }
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Mini-chat</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <style type="text/css">
        form
        {
        text-align:center;
        }
        </style>
        <body>
     
    <form action="tp.php" method="post">
    <p>pseudo:
    <input type="text" name="pseudo" value="<?php $_POST['pseudo'];?>" <br/>
    message:
    <input type="text" name="message" />
    <input type="submit" value="Valider" />
    </p>
    </form>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    // On utilise la requête suivante pour récupérer les 10 derniers messages :
    $reponse = mysql_query("SELECT * FROM chat ORDER BY ID DESC LIMIT 0,10");
     
    // On se déconnecte de MySQL
    mysql_close();
    while($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <p><strong><?php echo $donnees['pseudo'];?>:</strong><?php echo $donnees['message'];?></p>
    <?php
    }
    ?>
      </body>
    </html>
    j ai simplement ajouté un header sur ta premiere condition que j ai décaler en haut avant l envoie du html.

    l enregistrement s'effectue normalement et la page du chat est redirigé mais sans garder en mémoire tes variable $_POST.

    c'est la solution de jobherzt.

    ++

Discussions similaires

  1. [SQL] Aide sur requête PHP - SQL
    Par jrnb58 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/09/2006, 12h56
  2. [PHP-JS] Besoin d'aide sur eval()
    Par KneXtasY dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2006, 10h35
  3. Besoin d'aide sur PHP/MyAdmin
    Par fabris dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 30/03/2006, 20h54
  4. Aide sur requete PHP vers MySQL
    Par pounie dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/02/2006, 15h12

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