Aller au menu - Aller au contenu

Minichat

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1 
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page 1 
Hors ligne benjamim # Posté le 05/02/2012 à 12:31:25
Avatar

Bonjour,
j'aimerais pouvoir améliorer le minichat du tuto sur le php mais je ne sais pas trop comment faire.

J'ai découvert les "variables temporelle" et j'aimrais qu'à chaque message il y ai la date de poste qui s'affiche. Comment puis-je faire ?
Aussi, j'aimerais que le chat s'affiche dans une sortes de premier plan comme quand on affiche des images. Je sais pas si vous voyez, avec l'arroière plan qui devcient un peu flou et qu'on peut juste refermer ce "premier plan" avec une petite croix en haut à droite qui permet de fermer.
Je sais pas si je m'exprime bien ^^

Le codage est à peut près ça je pense :

Code : HTML
1
<a href="images/image-3.jpg" rel="lightbox[roadtrip]"><img src="image-photo-thumbnail-icone-5514-48.png"></a></br>




Ensuite, pour le minichat, j'en suis là :

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
<div id="chat3">
		<i>
			<a href="minichat.php">Actualiser </a>
		</i>
	</div>
	<form action="minichat_post.php" method="post">
		<p><div id="chat">
			<label>Pseudo : </label>
			<b><?php echo !empty($_SESSION['pseudo']) ? $_SESSION['pseudo'] : ''; ?></b>
		<p>
		<p>
			<label for="message">Message :</label> 
			<TEXTAREA rows="1" name="message" id="message"></TEXTAREA>
		<p></div><div id="chat2">
			<input type="submit" value="Envoyer" />
		</p></div>
	</form>
	<div id="chat">
		<?php
			// Connexion à la base de données
			try {
				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
				$bdd = new PDO('mysql:host=mysql.alwaysdata.com;dbname=, '', '', $pdo_options);
				
				// Récupération de tous les messages du plus récent au plus ancien
				$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC;');
				$messages = $req->fetchAll();
				
				foreach($messages as $message) : ?>
					<div id="unMessage">
						<strong><font color="#008080"><?php echo $message['pseudo']; ?> a écrit :</strong></font>
						<span><?php echo $message['message']; ?></span>
					</div>
				<?php endforeach;
			} catch(Exception $e) {
				die('Erreur : '.$e->getMessage());
			}
		?>


Merci de votre aide :)

PS : Comment fait-on pour supprimer tous les messages du minichat d'après un bouton sur une page ?
Édité le 05/02/2012 à 18:26:56 par benjamim

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Publicité # Posté le 05/02/2012 à 12:31:25

Connecté menofre # Posté le 05/02/2012 à 14:15:41
Avatar

Bon je vois que tu as plusieurs problèmes, donc pour mettre la date d'un message c'est assez simple. Il faut que tu créer un champs dans ta base de type timestamp, et que quand dans ton code, tu insert le message, tu lui mettes comme valeur NOW(), cela inscrira la date du message, ensuite pour l'afficher, c'est la meme chose que pour les autres variables. Tu la récupère dans ton code, puis tu l'affiche. Simple non?

Bref ensuite tu demandais si on pouvais tous supprimer d'un coups c'est ça ?
Bon si c'est ça c'est assez simpe voici le code.

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php

//Connexion BDD

if(isset($_GET['variable'])) // Si la varibale existe
{
$reponse = $bdd -> query('DELETE FROM matable'); // On vide toute la table.
}
else // Si la variable n'existe pas, on affichera le lien.
{
echo 'Voulez vous tout supprimer ? si oui cliquez <a href="tapage.php?variable=1">ICI</php>';
}

?>

"Mieux vaut savoir tout chercher que chercher à tout savoir."
Si tu n'as pas la solutions, quelqu'un sur les forums l'aura forcément.
 
Hors ligne benjamim # Posté le 05/02/2012 à 18:27:25
Avatar

ça ne marche pas pour le temps :S
Et comment je fais pour l'afficher en premier plan le minichat ?

J'ai mis ça mais ça ne marche pas :(

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php

//Connexion BDD

if(isset($_GET['message'])) // Si la varibale existe
{
$reponse = $bdd -> query('DELETE FROM message'); // On vide toute la table.
}
else // Si la variable n'existe pas, on affichera le lien.
{
echo '<ul><li>Voulez vous supprimer tous les messages ? Si oui cliquez <a href="../minichat.php?variable=1">ICI</php></a></li></ul>';
}

?>
Édité le 06/02/2012 à 13:22:05 par benjamim

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne benjamim # Posté le 06/02/2012 à 19:47:54
Avatar

Up :)

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne benjamim # Posté le 08/02/2012 à 20:05:32
Avatar

J'ai un problème avec le mincihat.
Il me dit un problème ligne 11, que faire ??

Fatal error: Call to a member function prepare() on a non-object in /home/anonymes/www/minichat_post.php on line 11

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
	session_start();
	// Connexion à la base de données
	try
	{
		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
		
		$db = new PDO('mysql:host=mysql.alwaysdata.com;dbname=anonymes_minichat', 'pseudo', 'mdp', $pdo_options);
		
		// Insertion du message à l'aide d'une requête préparée
		$req = $bdd->prepare('INSERT INTO minichat (pseudo, message) VALUES(?, ?)');
		$req->execute(array($_SESSION['pseudo'], $_POST['message']));
		
		// Redirection du visiteur vers la page du minichat
		header('Location: minichat.php');
	}
	catch(Exception $e)
	{
		die('Erreur : '.$e->getMessage());
	}
?>

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté menofre # Posté le 09/02/2012 à 19:18:46
Avatar

Ou tes noms de champs sont faux OU tes variables sont vides. Je te conseille de faire des vérification sur la présence ou non de tes variables avant.

"Mieux vaut savoir tout chercher que chercher à tout savoir."
Si tu n'as pas la solutions, quelqu'un sur les forums l'aura forcément.
 
Connecté Taguan # Posté le 09/02/2012 à 19:24:02
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

Ben regarde sur quoi tu fais un prepare() puis demande toi d'où vient/devrait venir cette varialbe...

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 
Hors ligne Calmacil # Posté le 09/02/2012 à 19:28:23

Ville : Gif sur yvette
Pays : France métropolitaine

Je viens d'apercevoir une superbe faute d'inattention là :)
Hors ligne benjamim # Posté le 12/02/2012 à 18:11:34
Avatar

C'est bon, ça marche :)

J'ai 2 questions par contre, si je suis sur une page administration.php et que je veuille effacer tous els messages de la page minichat.php
Comment faire ?


Et comment je pourrais faire pour "que le chat s'affiche dans une sortes de premier plan comme quand on affiche des images. Je sais pas si vous voyez, avec l'arrière plan qui devient un peu flou et qu'on peut juste refermer ce "premier plan" avec une petite croix en haut à droite qui permet de fermer."

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne Calmacil # Posté le 13/02/2012 à 09:29:58

Ville : Gif sur yvette
Pays : France métropolitaine

Pour ça il faudrait regarder du côté de tes CSS
Hors ligne benjamim # Posté le 13/02/2012 à 11:19:21
Avatar

Et vous sauriez m'aider ?


Et pour supprimer tous les messages, je fais comment ?

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne Bilon # Posté le 13/02/2012 à 12:53:37
Sivousplait d'avôtre avis ?
Avatar

Je sais pas si cela peut t'aider mais moi, la tchatbox que je suis entrain de faire pour supprimer les messages j'ai fais comme cela :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php 

//--------------------------------------------------------
// est-ce qu'on veut supprimer un message ?
//--------------------------------------------------------
if (isset($_GET['supprimer_message'])) // Si on demande de supprimer un commentaire
{
    // Alors on supprime le commentaire correspondante
    $_GET['supprimer_message'] = addslashes($_GET['supprimer_message']);
	if ( $_GET['supprimer_message'] == "tout" )
	{
	mysql_query('DELETE FROM chat');
	}
	else { mysql_query('DELETE FROM chat WHERE id=\'' . $_GET['supprimer_message'] . '\''); }
}?>


Ensuite si je souhaite supprimer tout les messages :
Code : PHP
1
<?php echo '<a href="admin.php?supprimer_message=tout">';?>


Ou un en particulié

Code : PHP
1
<?php echo '<a href="admin.php?supprimer_message=' . $donnees['id'] . '">';?>


Dans le cas ou tu souhaite ne supprimer qu'un message précis ne pas oublié la boucle pour listé les données.
Édité le 13/02/2012 à 12:58:06 par Bilon

Absent du samedi 31 mars au samedi 7 avril.
Image utilisateur
 
Hors ligne benjamim # Posté le 13/02/2012 à 13:39:06
Avatar

Par contre, je dois le placer dans la page souhaité soit minichat.php ?
Je peux pas le placer sur une autre page ? :S

ça ne marche pas :S
Comment faire ? :S
Édité le 13/02/2012 à 16:46:03 par benjamim

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne Bilon # Posté le 13/02/2012 à 16:55:29
Sivousplait d'avôtre avis ?
Avatar

Tu met ça dans la page admin.php par exemple.
Tu à bien mis la boucle pour récupéré les messages ? Modifier en mettant ta tables etc ?


Absent du samedi 31 mars au samedi 7 avril.
Image utilisateur
 
Hors ligne benjamim # Posté le 13/02/2012 à 17:57:23
Avatar

Je met une boucle qui marche comment ?
Juste la démarche stp :)

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne Bilon # Posté le 13/02/2012 à 18:32:06
Sivousplait d'avôtre avis ?
Avatar

Au cas ou j'aurai fais des erreurs si quelqu'un peut me prévenir :-°

J'ai noté quelques explications, dans la mesure ou j'ai moi même du mal ..
$donnee contient le pseudo et le messages, modifie par rapport aux nom des colonnes de ta table.

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
<?php
// $connection = mysql_connect("", "", "");
// mysql_select_db("");
// La requete pour vider la table
//
$affichage = mysql_query('SELECT * FROM chat ORDER BY id DESC'); // On définie la variable $affichage
// On souhaite relever tout les messages de la table chat et les classer par rapport aux id dans un ordre descendant.

if(mysql_num_rows($affichage) > 0) // Si des messages ont été posté on les récuperes
	{
		echo mysql_num_rows($affichage);?> messages envoyés, 
		<?php echo '<a href="admin.php?supprimer_message=tout">';?>Supprimer tout les messages</a><?php?>
		<br />
		<?php
		while ($donnees = mysql_fetch_array($affichage)) // On fait une boucle pour lister les commentaires
		{ ?>
<?php echo stripslashes($donnees['auteur']); ?> à dit : <?php echo stripslashes($donnees['message']); ?>

			<?php
			} // Fin de la boucle qui liste les commentaires
			?>

			<?php
	}
else // S'il n'y à pas de messages dans la table, on affiche un message plutot que l'erreur ..
	{
		echo('Aucun messages');
	}
mysql_close($connection);
?>


Tu peut tester cela ici l'administration ce trouve ici ;) Petite particularité il y à 2 salon

Je n'avais pas vu, tu cherche aussi à indiquer l'heure du message :
Dans le if qui contient les donnee tu pseudo et du mot de passe tu ajoute
Code : SQL
1
$date_message = date(' d-m-Y H:m:s ');

et dans la boucle qui récupère et affiche les messages (pas celle de ton administration)
Code : PHP
1
<?php echo $donnees['date_message']; ?>
Édité le 13/02/2012 à 18:48:21 par Bilon

Absent du samedi 31 mars au samedi 7 avril.
Image utilisateur
 
Hors ligne benjamim # Posté le 13/02/2012 à 18:45:59
Avatar

Super bien expliqué en tout cas :)
J'ai tout suivis, je sais pas si j'arriverai à le refaire seul mais bon :(
Juste 1 truc, ce que tu me donnes c'est pour lister les commentaires mais pour le ssupprimer, je vois pas la démarche :S

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Hors ligne Bilon # Posté le 13/02/2012 à 18:50:02
Sivousplait d'avôtre avis ?
Avatar

Elle y est regarde bien, Code : PHP
1
<?php echo '<a href="admin.php?supprimer_message=tout">';?>Supprimer tout?</a>


N'oublie pas de mettre la requête que je ter donner plus haut juste après tes identifiant de connexion. J'ai éditer mon message concernant la date des messages.

Absent du samedi 31 mars au samedi 7 avril.
Image utilisateur
 
Hors ligne benjamim # Posté le 13/02/2012 à 19:08:24
Avatar

Mais ça ne me le supprime pas ^^

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté Taguan # Posté le 13/02/2012 à 19:19:45
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

Bien sûr, tu as mis la partie du code avec la requête pour supprimer ?

Et bien sûr, tu as fait correctement les liens ?

Et évidemment, tu as modifié le code (notamment les requêtes) pour que ça corresponde à ce que tu as chez toi ?

Tu as bossé quoi, bien sûr ???

Alors montre-nous ce que t'as fait... Donne le code qu'on voie le problème. Et ne nous dit pas "j'ai juste copié ce qu'il a donné", on veut voir TON truc.

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 
Hors ligne Bilon # Posté le 13/02/2012 à 19:30:18
Sivousplait d'avôtre avis ?
Avatar

Ou alors, c'est moi qui est pommé quelques chose ? :lol:

Absent du samedi 31 mars au samedi 7 avril.
Image utilisateur
 
Hors ligne nc333 # Posté le 13/02/2012 à 19:37:19
Avatar

Citation : benjamim
Comment fait-on pour supprimer tous les messages du minichat d'après un bouton sur une page ?

au lieu de vider ta base de donnée tout les 500 message, moi dans la page post.php j'insert le message et je supprime le 10eme
donc dans mon tchat il 'y a que 10 message d'afficher.
je dit sa je dit rien mais je trouve que sa permet de ne pas avoir une base de donnée sur-charger.

après pour ton problème redonne nous tout ton code car avec les changement etc ... chuis perdu :-°

Minecraft --> Un jeux de survie-Construction au cotés TRÈS addictif
FantaBobShow -->Site de The_Fantasio974 et de Bob Lennon, créateur de la vidéo Minecraft française, dont le guide de survie dans Minecraft

Si vous avez lus set signature jusques au bout, alors vous êtes affectée par Minecraft!
 
Hors ligne benjamim # Posté le 13/02/2012 à 19:41:48
Avatar

POUR TAGUAN, OUI j'ai changé les bases de données pour que ça correspondent à chez moi, OUI j'ai changé chaque liens en fonction des miens, OUI j'ai changé les variables pour que ça correspondent aux miennes.
OUI J'AI FAIT QUELQUE CHOSE !

Je déteste écrire en majuscule mais là, il le fallait !

ça donne cela :

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
<?php
$connection = mysql_connect("mysql.alwaysdata.com", "pseudo", "mdp");
mysql_select_db("anonymes_forum");
// La requete pour vider la table
//
$affichage = mysql_query('SELECT * FROM minichat ORDER BY id DESC'); // On définie la variable $affichage
// On souhaite relever tout les messages de la table chat et les classer par rapport aux id dans un ordre descendant.

if(mysql_num_rows($affichage) > 0) // Si des messages ont été posté on les récuperes
	{
		echo mysql_num_rows($affichage);?> messages envoyés, 
		<?php echo '<a href="anonymeS-administration.php?supprimer_message=tout">';?>Supprimer tout les messages</a><?php?>
		<br />
		<?php
		while ($donnees = mysql_fetch_array($affichage)) // On fait une boucle pour lister les commentaires
		{ ?>
<u><?php echo stripslashes($donnees['pseudo']); ?> </u>à dit : <?php echo stripslashes($donnees['message']); ?><br />

			<?php
			} // Fin de la boucle qui liste les commentaires
			?>

			<?php
	}
else // S'il n'y à pas de messages dans la table, on affiche un message plutot que l'erreur ..
	{
		echo('Aucun messages');
	}
mysql_close($connection);
?>

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté Taguan # Posté le 13/02/2012 à 19:43:01
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

Citation : Taguan
Bien sûr, tu as mis la partie du code avec la requête pour supprimer ?


T'as oublié une question, et la réponse est visiblement non.

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 
Hors ligne benjamim # Posté le 13/02/2012 à 19:49:11
Avatar

Cela donc ?

$reponse = $bdd -> query('DELETE FROM minichat');

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté Taguan # Posté le 13/02/2012 à 19:50:40
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

Pas seulement... Y a un minimum de traitement à faire (et il t'a été donné...)

Sauf si tu veux effacer tout chaque fois que t'arrives sur la page.

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 
Hors ligne benjamim # Posté le 13/02/2012 à 19:51:52
Avatar

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php

//Connexion BDD

if(isset($_GET['variable'])) // Si la varibale existe
{
$reponse = $bdd -> query('DELETE FROM matable'); // On vide toute la table.
}
else // Si la variable n'existe pas, on affichera le lien.
{
echo 'Voulez vous tout supprimer ? si oui cliquez <a href="tapage.php?variable=1">ICI</php>';
}

?>


C'était cela il me semble.
D'accord. Je vais essayer ainsi.

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté Taguan # Posté le 13/02/2012 à 19:59:33
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

En mélangeant les codes de menofre et de bilon... Je doute que ça fonctionne...

Par contre, ça prouve que tu comprends pas les codes que tu utilise, tu devrais commencer par là déjà.

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 
Hors ligne benjamim # Posté le 13/02/2012 à 20:01:21
Avatar

Je parle juste de la requete qui est contenu dans ce dernier code ...

Mieux vaut prévenir que guérir ;)
Image utilisateur
Image utilisateur

Cliquez et inscrivez vous ;)

HTML : IIIIIIIIII

CSS : IIIIIIIIII

C : IIIIIIIII









 
Connecté Taguan # Posté le 13/02/2012 à 20:02:33
Auto-quote Powaaa
Avatar
Groupe : Auteurs
Flux RSS

Ville : Bruxelles
Pays : Belgique

Wai wai, soit. Du coup tout va bien ? Sinon on attend ton nouveau code.

!!! Attention, ceci est ma signature, pas une réponse à votre post !!!
Mon tutoriel : SQL avec MySQL
 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx