8792 sujets

Développement web côté serveur, CMS

Pages :
bonjour bonjour, chère communauté d'alsacreations!

Une fois de plus je vient posté pour vous demander de l'aide Smiley confused

J'ai mis au point un petit chat online, une sorte d'msn ou toutes les personnes du site peuvent poster. J'ai donc créer mes 3 pages: chat.html, chat2.php, chat3.php.

chat.html contient les cases d'entrée du message, donc pseudo et message.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>PikOo.ch</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="../style.css">
</head>



<body>
<!-- --------------------------------------------------------------- -->

<form name='chat' action='chat2.php' method='post'>
<table>
<tr><td>Pseudo:</td><td><input name='pseudo' type='text' maxlength='15' size='15'></td></tr>
<tr><td>Message:</td><td><textarea name='message' cols='12' rows='2'></textarea></td></tr>
<tr>
  <td height="26">&nbsp;</td>
  <td><input name='soumettre' type='submit' value='Envoyer'></td></tr>
</table>
</form>

<!-- --------------------------------------------------------------- -->
</body>
</html>


Ensuite, chat2.php prend ces données et les mets dans un tableau MYSQL:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<?php
	include_once('conf/mysql_config.php');
?>

<html>
<head>
	<title>PikOo.ch</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="../style.css">
</head>



<body>
<!-- --------------------------------------------------------------- -->

<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){

	$pseudo = $_POST['pseudo'];
	$message = $_POST['message'];
	
	if (empty($pseudo)) {
		echo "<script language='javascript'>alert('Pseudo Anonym');history.go(-1)</script>";	
	}
	elseif (empty($message)) {
		echo "<script language='javascript'>alert('Pas de message');history.go(-1)</script>";
	}
	
	else {
	$db = mysql_connect($mysql_server,$mysql_user,$mysql_password);
			mysql_select_db($mysql_DB, $db);
	$sql=mysql_query("insert into chat values('".$_POST['pseudo']."','$message')") or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo "<script language='javascript'>alert('Message postée avec succès');document.location.href='pikoo.php'</script>";
	}
}

?>

<!-- --------------------------------------------------------------- -->
</body>
</html>


et finallement, chat3.php affiche ces entrées:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<?php
	include_once('conf/mysql_config.php');
?>

<html>
<head>
	<title>PikOo.ch</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="../style.css">
</head>



<body>
<!-- --------------------------------------------------------------- -->

<table>
<?php  
$db = mysql_connect($mysql_server,$mysql_user,$mysql_password);
			mysql_select_db($mysql_DB, $db);
$i = "0";
/* On sélectionne tout les champs de la table  formulaire_contact créée plus haut */
$requete = mysql_query("SELECT * FROM chat");
/* on récupère TOUT (*) dans la table formulaire_contact et on le met dans une variable */
$resultat = mysql_numrows($requete);
/* Tant qu'il y a un enregistrement on l'affiche. */
while($resultat != $i)  {      
/* On récupère la valeur des champs pour la $i ème ligne*/
$pseudo = mysql_result($requete,$i,"pseudo");      
$message = mysql_result($requete,$i,"message");
/* On affiche à l'écran les valeurs */
echo "
		<tr>
			<td>
				<table>
					<tr>
						<td>
							par $pseudo
						</td>
					</tr>
					<tr>
						<td>
							$message
						</td>
					</tr>
				</table>							
			</td>
		</tr>
";


/* On saute une ligne */
$i++;
}
/* on referme notre connection mysql */
mysql_close();
?>
</table>

<!-- --------------------------------------------------------------- -->
</body>
</html>


Sur ma page principale (ou je veut que ça soit afficher), je fait un include de chat.html et chat3.php.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>PikOo.ch</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
	<div id="global">
<!-- --------------------------------------------------------------- -->

<div class="alien"></div>

<div class="chat">
	<?php
		include ('chat3.php');
	?>
</div>
<div class="chat2">
	<?php
		include ('chat.html');
	?>
</div>


<!-- --------------------------------------------------------------- -->
	</div>
</body>
</html>


Et mon problème dans tout cela?

En faite il y en à deux. Le premier est que je ne sait pas comment faire pour ractualisé seulement ma page chat3.php toute les 3 secondes... J'ai éssayer dans le header de la manière suivante mais ça ne marche pas car ça ractualise toute ma page principal, pas seulement mon include, donc impossible d'écrire un message si ça ractualise toute les 5 secondes ^^:


<head>
      <meta http-equiv="refresh" content="5">
</head>


Y à t'il un moyen de ractualiser seulement cette include?

Question number 2:

quand je poste un message, ça me transfert automatiquement sur la page chat3.php (comme c'est action=chat3.php dans chat.html), mais j'aurait envie que je reste sur ma page principale, que je ne bouge donc pas! Y à t'il un moyen?

Merci infiniment pour vos réponse, j'ai la tête qui va bientot exploser j'ai passer pas mal d'heure à programmer tout ça! Smiley lol

PS. excuser mes fautes d'orthographes je suis de langue allemande Smiley confused
Modifié par pikoo (18 Dec 2006 - 10:54)
tu peux faire ça en javascript avec XHR
tu envoyes une commande toutes les 2 secondes par exemple, à ce moment XHR lance un script PHP, récupère le nouveau contenu et l'insère dans la page

mais le problème c'est qu'il utilise du javascript, si tu as un site grand public il faudra trouvé un contournement pour ce qui ont pas javascript activé
Merci mathieu je vais voir, mais n'y à t'il vraiment aucun moyen de laisser le javascript à la porte? il me semble pourtant qu'il devrait être possible de créer un petit script php, seulement mes connaissances ne suffisent pas pour y arrivez seul sans indice Smiley sweatdrop Smiley decu

pour l'autre problême personne n'aurait une idée comment faire non plus? c'est vraiment embêtant si je doit chaque fois changé de page!

merci à tous Smiley lol
Modifié par pikoo (14 Dec 2006 - 19:49)
Bonjour.

Javascript n'a pas la côte, en ce moment...

Suggestion...

Si on place la zone de chat à rafraichir dans un iframe, il est fort possible que le mécanisme de rafraichissement fonctionne...

Je viens de faire une maquette :
fichier test.html

<html>
<head></head>
<body>
     <iframe src="test.php"></iframe>
</body>
</html>


fichier test.php

<html>
<head>
<meta http-equiv="refresh" content="5; url=test.php" />
</head>
<body>
<?php
echo date("h:i:s");
?>
</body>
</html>

... et ceci me donne l'heure toutes les 5 secondes. (sous firefox, linux)
GeorgesM a écrit :
Javascript n'a pas la côte, en ce moment...

Perso, c'est l'idée même d'un chat en php qui me pertube.
PHP n'est pas fait pour ça, ça bouffe de la ressource et ça reste bancal dans tous les cas.
Bison a écrit :

Perso, c'est l'idée même d'un chat en php qui me pertube.
PHP n'est pas fait pour ça, ça bouffe de la ressource et ça reste bancal dans tous les cas.


Mais encore? Quelle solution alternative à php? (en dehors d'irc et de msn, évidemment)
GeorgesM a écrit :


Mais encore? Quelle solution alternative à php? (en dehors d'irc et de msn, évidemment)

Java !
Et c'est php qui est une alternative à Java, pas l'inverse Smiley cligne
a bison:

Tu devrait revoir ta theorie sur php... Je te signal que tous les CMS telle que joomla! utilise php pour leur chat! ça ne veut pas rien dire...

Donc pour le problème qui fait changer de page une fois le message posté toujours aucune idee? Moi je vois vraiment pas comment faire snif Smiley bawling
Bison a écrit :

Java !
Et c'est php qui est une alternative à Java, pas l'inverse

Oulà !
Tu t'avances vite là ...

PHP une alternative à Java ?
Il ne faut pas tout mélanger.
Chaque langage à ses avantages et ses inconvénients.
Java sera plus avantageux dans certains projets. Mais PHP le sera également dans d'autres.
Les solutions java ou flash peuvent se compléter avec dot net, python ou même un simple script bash. Soit dans tout ces cas de figure, une solution basée sur les sockets, dont la mise en place industrielle est très éloignée de ce qu'autorisent les hébergeurs lambda.

Et puis, à tout prendre si on implante une architecture de ce type, le plus raisonnable serait de coder le serveur en python, et de laisser l'html tel quel, car à ce point, plus rien n'interdit de faire les requêtes avec xmlHttpRequest. L'argument technologique ne tient plus.

Enfin, le manuel php montre comment coder un serveur basé sur les socket en deux coups de cuillères à pot, mais toujours en ayant la main sur la machine.

Reste la solution de se faire attribuer une ip fixe et d'héberger le serveur sur son ordinateur personnel.
pikoo a écrit :

Donc pour le problème qui fait changer de page une fois le message posté toujours aucune idee? Moi je vois vraiment pas comment faire snif Smiley bawling


La solution que j'ai présenté, avec un iframe rafraichi périodiquement, doit faire l'affaire...
Modifié par GeorgesM (17 Dec 2006 - 22:30)
pikoo a écrit :
Tu devrait revoir ta theorie sur php... Je te signal que tous les CMS telle que joomla! utilise php pour leur chat! ça ne veut pas rien dire...

Revoir ma théorie sur PHP, et pourquoi donc stp ?
N'inverses pas les rôles mon garçon, les questions... c'est toi qui les posent pas moi.

Je maîtrise suffisament mon sujet pour savoir que PHP n'est pas et ne sera jamais adapter à un chat (quoi que t'en dise)
Ce n'est pas parce qu'il est possible d'enfoncer une vis avec un marteau que c'est forcément l'outil adapté.

Quand à la remarque de Ptifox sur ma citation :
Bison a écrit :
Java !
Et c'est php qui est une alternative à Java, pas l'inverse

Comme je l'ai dit au-dessus, je maîtrise suffisament mon sujet pour ne pas faire d'amalgame entre différents langages.
Je répondais à GeorgesM quand à savoir ce qui était une alternative à un chat en php.
Comme php n'est pas adapté à un chat, malgré ce qu'en disent certains, j'ai voulu souligné par ma citation que s'il fallait employer le mot "alternative" à la mise en place d'un chat, il faudrait le voir dans le sens :
JAVA en premier lieu et ensuite peut-être... une alternative qui serait le php.
Donc en ce sens, un chat codé en php serait une alternative à un chat codé en java.
Modifié par Bison (17 Dec 2006 - 23:43)
Bison a écrit :
Java !
Et c'est php qui est une alternative à Java, pas l'inverse Smiley cligne
Tu parles de Java côté serveur ou d'une applet ?
Bison a écrit :
Les applets java se connectant à IRC sont bien plus rapides et moins gourmand que PHP
C'est bien ce qu'il me semblait, mais je pense qu'il y a eu confusion pour certaines personnes (quand on parle de Java, il s'agit plutôt du langage côté serveur, les applets étant un peu passées de mode).
Modifié par Eldebaran (18 Dec 2006 - 00:13)
Bison a écrit :
Les applets java se connectant à IRC sont bien plus rapides et moins gourmand que PHP

Je connais bien le sujet aussi Smiley cligne
Oui tu as parfaitement raison.
Java peut stocker en mémoire, alors que PHP gére tout via fichiers et bases de données. Donc une réactivité plus rapide.
Il faut alors que la machine suive la charge en Java également.
Si ce n'est que pour la situation du chat, Java est effectivement plus approprié.
Ptitfox a écrit :
Je connais bien le sujet aussi Smiley cligne
Oui tu as parfaitement raison.
Java peut stocker en mémoire, alors que PHP gére tout via fichiers et bases de données. Donc une réactivité plus rapide.
Il faut alors que la machine suive la charge en Java également.
Si ce n'est que pour la situation du chat, Java est effectivement plus approprié.
Je ne suis pas sûr que tu aies bien compris. Quand il s'agit d'une applet, la comparaison ne s'envisage pas du tout de cette façon. La charge est déportée chez le client, qui se connecte lui-même au serveur IRC.
Peu importe le langage choisi, il sera plus efficace que le meilleur des "chat" codé en php. Je ne comprends même pas comment certains parviennent à utiliser ça sur un mutualisé.

Enfin bon, ouais... ça reste dans le domaine du jouet donc... Smiley langue
Pages :