Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/07/2007, 21h54   #1
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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 :
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 09h25   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Bonjour

Pourrais-tu expliquer davantage ton problème ? Y a-t-il des messages d'erreur ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 12h01   #3
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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 .
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 13h22   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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 ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 18h53   #5
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 08h26   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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 :
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());
			}
		}
	}
}
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 11h45   #7
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h14   #8
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
petit up

j'ai trouver le problème elle vient de la requête
Code php :
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 :
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 :
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 ;
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h21   #9
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Citation:
Envoyé par schats
j'ai trouver le problème elle vient de la requête
Code php :
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 ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h26   #10
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
normalement elle doit regarder regarder dans les deux table si le pseudo choisie n'existe pas
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h36   #11
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h04   #12
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h19   #13
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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 :
$rq_pseudo = "(select pseudo from mnichat where pseudo ='$pseudo' ) UNION (select pseudo from membre where pseudo ='$pseudo' )";
ou utiliser deux requêtes.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h46   #14
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
merci ca a lair de marcher :s
par contre par simple curiositer comment banir quelqu'un ( ip a bloquer ) ou cookie??
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h53   #15
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Citation:
Envoyé par schats
merci ca a lair de marcher :s
Tant mieux !

Citation:
par simple curiositer comment banir quelqu'un ( ip a bloquer ) ou cookie??
Aucune idée
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 22h00   #16
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2007, 08h50   #17
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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 ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2007, 11h56   #18
Membre du Club
 
Inscription : février 2007
Messages : 274
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 274
Points : 53
Points : 53
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
schats est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h33.


 
 
 
 
Partenaires

Hébergement Web