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 :

minichat qui s'éxécute à moitié


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut minichat qui s'éxécute à moitié
    bonjours

    j'ai un problème avec ce donne il ne s'éxécute que pour enregistrer
    Code php : 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
     
    <?php
    session_start();
    ?>
     
     
     
     
     
    <div id="corps">
    <?php
    mysql_connect("localhost","schats*****","******");
    mysql_select_db("schats");
    $_SESSION['pseudochat'] = $_SESSION['pseudo'];
    $tt =  time()+300;
    mysql_query("insert into mnichat values('','".$_SESSION['pseudo']."','','".time()."','".$tt."','2')")or die (mysql_error());
    if(!empty($_SESSION['pseudochat'])) 
    {
    ?>
    <form method="post" action="chat.php">
    <input type="text" name="pseudo" /><input type="submit" value="accès au chat"/> 
    </form>
     
    <?php
    $pseudo = mysql_escape_string($_POST['pseudo']);
    if(empty($pseudo))
    {
    echo 'merci de mettre un pseudo'; 
    $pl = mysql_query("select membre.pseudo, mnichat.pseudo from mnichat LEFT JOIN membre on membre.pseudo = mnichat.pseudo where membre.pseudo ='$pseudo' ")or die (mysql_error());
    echo $pl// il ne m'affiche pas la requette  et ne vérifie pas si le pseudo existe 
    $lm = mysql_num_rows($pl);
    }
    elseif($pl != 0)
    {
    echo 'pseudo deja existant merci de le changer';
    }
    else
    {
    $timex = time() + 300;
    mysql_query(" insert into mnichat values( '','".$pseudo."','','".time()."','".$timex."','2')") or die (mysql_error());
    $_SESSION['pseudochat'] = $pseudo;  
    // ici normalement il devrai passer a la seconde parie mais il ne veut pas je ne comprend pas pourquoi.
    }
    }
    else
    {
    ?>// il ne passa jamais ici

    merci de m'aider car je ne comprend pl

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Pourrais-tu expliquer davantage ton problème ? Y a-t-il des messages d'erreur ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    bonjours
    j'ai aucun message d'erreur ( c'est bien cela qui m'inquiète) .
    en faite quand je remplie le premier formulaire il ne me renvoye par dans la second parti du site ( c'est a dire dans le chat) mais il semble que la première requête ( celle qui vérifie que le membre n'existe pas déjà ) quand dans le formulaire je met mon pseudo ( de membre ) ben sa ne me met pas pseudo déjà existant j'ai tester dans phpadmin la requête et elle marche :s

    @Celira me revoilà avec les problème bizare .

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon on va commencer par vérifier que je comprends bien le fonctionnement de ton algo :
    Ta variable $_SESSION['pseudo'] provient d'une autre page (je suppose). Ce que tu essaye de faire c'est :
    - si cette variable existe, ouvrir la session de chat avec ce pseudo (mémorisé dans $_SESSION[pseudochat] et dans la table minichat)
    - si cette variable n'existe pas : demander un pseudo à l'utilisateur, vérifier que ce pseudo n'est pas déjà pris et ouvrir la session avec ce pseudo.

    Et avec une vérifiaction sur $_SESSION[pseudochat]; tu vérifie si la session de chat est ouverte ou non, donc si tu dois faire des manipulatiosn de pseudo ou passer au chat.

    Est-ce bien ça ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    c'est tout a fait cela ....
    si tu comprends, php devrait aussi comprendre
    oups un petit problème de dernière minute le formulaire n'a pas l'air de réagit
    pour tester

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon, j'ai bien compris. Le problème c'est que ce n'est pas ce que tu as écrit Je crois que tu t'es un peu emmelé les pinceaux au niveau des conditions...

    J'ai repris le code que tu cites dans le premier post en réorganisant les if...
    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
    <?php
    session_start();
    ?>
     
    <div id="corps">
    <?php
    mysql_connect("localhost","schats*****","******");
    mysql_select_db("schats");
     
    // il n'y a pas de session de chat ouverte <= $_SESSION[pseudochat] est vide
    if(empty($_SESSION['pseudochat'])) 
    {
    	// $-SESSION['pseudo'] existe => on ouvre le chat avec 
    	if (!empty ($_SESSION['pseudo'])){
    		$_SESSION['pseudochat'] = $_SESSION['pseudo'];
    		$tt =  time()+300;
    		$rq_chat = "insert into mnichat values('','".$_SESSION['pseudochat']."','','".time()."','".$tt."','2')";
    		mysql_query($rq_chat)or die ('Erreur SQL sur '.$rq_chat.' : '.mysql_error());
    	}
    	else // sinon on demande un pseudo
    	{
    		?>
    		<form method="post" action="chat.php">
    		<input type="text" name="pseudo" /><input type="submit" value="accès au chat"/> 
    		</form>
    		<?php
    		if(empty($_POST['pseudo']))
    		{
    			echo 'merci de mettre un pseudo'; 
    		}
    		else
    		{
    			$pseudo = mysql_escape_string($_POST['pseudo']);
    			$rq_pseudo = "select membre.pseudo, mnichat.pseudo from mnichat LEFT JOIN membre on membre.pseudo = mnichat.pseudo where membre.pseudo ='$pseudo' ";
    			$pl = mysql_query($rq_peusdo)or die ('Erreur sur '.$rq_pseudo.' : '.mysql_error());
    			$lm = mysql_num_rows($pl);
    			if($lm != 0)
    			{
    				echo 'pseudo deja existant merci de le changer';
    			}
    			else
    			{
    				$_SESSION['pseudochat'] = $pseudo;
    				$tt =  time()+300;
    				$rq_chat = "insert into mnichat values('','".$_SESSION['pseudochat']."','','".time()."','".$tt."','2')";
    				mysql_query($rq_chat)or die ('Erreur SQL sur '.$rq_chat.' : '.mysql_error());
    			}
    		}
    	}
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    oups ca marchais mais juste un problème quand je met schats dans la zone de saisie le mysql_num_rows me met 0 alorq que sa devrai mettre 1 :s
    bizare :s

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    petit up

    j'ai trouver le problème elle vient de la requête
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rq_pseudo = "select membre.pseudo, mnichat.pseudo from mnichat LEFT JOIN membre on membre.pseudo = mnichat.pseudo where membre.pseudo ='$pseudo' ";
      $pl = mysql_query($rq_pseudo)or die ('Erreur sur '.$rq_pseudo.' : '.mysql_error());
    elle me renvoie rien membre s'il y a des données ( tester sur phpadmin)

    la composition des table
    mnichat
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    -- 
    -- Structure de la table `mnichat`
    -- 
     
    CREATE TABLE IF NOT EXISTS `mnichat` (
      `id` int(11) NOT NULL auto_increment,
      `pseudo` varchar(255) NOT NULL,
      `message` text NOT NULL,
      `timestamp` bigint(20) NOT NULL,
      `timestampex` bigint(20) NOT NULL,
      `statue` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 A

    Code sql : 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
    -- 
    -- Structure de la table `membre`
    -- 
     
    CREATE TABLE IF NOT EXISTS `membre` (
      `id` int(11) NOT NULL auto_increment,
      `pseudo` varchar(255) NOT NULL,
      `mdp` varchar(255) NOT NULL,
      `email` varchar(255) NOT NULL,
      `date` date NOT NULL,
      `sexe` varchar(255) NOT NULL,
      `statue` varchar(2) NOT NULL,
      `confirmation` varchar(2) NOT NULL,
      `nom` varchar(255) NOT NULL,
      `prenom` varchar(255) NOT NULL,
      `jeuxfutur` varchar(2) NOT NULL,
      `statueforum` int(11) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=73 ;

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par schats
    j'ai trouver le problème elle vient de la requête
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rq_pseudo = "select membre.pseudo, mnichat.pseudo from mnichat LEFT JOIN membre on membre.pseudo = mnichat.pseudo where membre.pseudo ='$pseudo' ";
      $pl = mysql_query($rq_pseudo)or die ('Erreur sur '.$rq_pseudo.' : '.mysql_error());
    elle me renvoie rien membre s'il y a des données ( tester sur phpadmin)
    Que doit vérifier cette requête exactement ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    normalement elle doit regarder regarder dans les deux table si le pseudo choisie n'existe pas

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    C'est-à-dire si on n'a pas choisit le pseudo d'un membre du quelqu'un déjà le chat.
    Le pseudo ne doit être dans aucune des deux tables. Donc ce qu'on cherche à faire, c'est sélectionner le pseudo dans l'une ou l'autre.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Celira
    C'est-à-dire si on n'a pas choisit le pseudo d'un membre du quelqu'un déjà le chat.
    Le pseudo ne doit être dans aucune des deux tables. Donc ce qu'on cherche à faire, c'est sélectionner le pseudo dans l'une ou l'autre.
    voila après on met un nombre :s avec mysql_num_rows() et la si le nombre est différent de 0 on ne l'autorise pas

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si ta version de mysql le supporte (>4.1) tu pourrais simplement faire un union entre deux requêtes, sans avoir à te prendre la tête avec une jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rq_pseudo = "(select pseudo from mnichat where pseudo ='$pseudo' ) UNION (select pseudo from membre where pseudo ='$pseudo' )";
    ou utiliser deux requêtes.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    merci ca a lair de marcher :s
    par contre par simple curiositer comment banir quelqu'un ( ip a bloquer ) ou cookie??

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par schats
    merci ca a lair de marcher :s
    Tant mieux !

    par simple curiositer comment banir quelqu'un ( ip a bloquer ) ou cookie??
    Aucune idée

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    petit problème il faut recharger la page pour acceder au reste de la page ceux qui veut dire créer un pseudo puis actualiser la page ??? on ne peu pas le faire par header :s

  17. #17
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par schats
    petit problème il faut recharger la page pour acceder au reste de la page ceux qui veut dire créer un pseudo puis actualiser la page ??? on ne peu pas le faire par header :s
    Tu veux dire rafraichir la page automatiquement après avoir fait l'insertion dans mnichat ?

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    OUI ( dsl pour la majuscule )
    et après j'ai une j'ai une page ou il y a tout le requette ch.php et tout les données sont afficher dans chat.php ces deux page s'apelle avec un requiere mais quand on envoye un message sa nous renvoye a ch sans retour a chat.php :s

Discussions similaires

  1. [XL-2007] Procédure qui s'éxécute une seconde fois à partir de la moitié
    Par stepel dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/08/2014, 22h26
  2. Pagination qui marche a moitie
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 28/09/2010, 09h05
  3. Un page php qui se recharge à moitié exécutée
    Par lysandre dans le forum Langage
    Réponses: 5
    Dernier message: 17/04/2009, 08h39
  4. [MySQL] Requete qui s'execute à moitié
    Par xclam dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/05/2008, 14h26
  5. [VB.NET]Procédure qui s'éxécute plusieurs fois
    Par ropiet dans le forum Windows Forms
    Réponses: 13
    Dernier message: 25/08/2006, 17h21

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