Module de chat? [PHP]

Statut
N'est pas ouverte pour d'autres réponses.

bigoaL

Touriste
J'ai créé une gallerie via un générateur java.
J'ai pensé à créer un système de commentaires pour chaque photo... Seulement, ca sera pas très pratique.
Je me demandais si il était possible d'intégrer une shoutbox dans la frame de gauche sous les infos des dossiers et des photos...
J'aurais besoin d'aide... :roll:
Anyone? :oops:

Adresse:http://myst-r.eurower.net/bigoal/index.htm
 

MbK_

Etudjant
oui c'est possible...


Mais le tout est de savoir le faire :D

Tu sais le JS, c'est tjs tres hard de le modifier (tout le script est en js ou il y a bcp d'HTML?)
 
1er
OP
B

bigoaL

Touriste
MbK_ a dit:
oui c'est possible...


Mais le tout est de savoir le faire :D

Tu sais le JS, c'est tjs tres hard de le modifier (tout le script est en js ou il y a bcp d'HTML?)
Le programme génère tout en JS...
Mais le résultat est en HTML...
Et il y a moyen de modifier la "future-génération" en HTML...
 

MbK_

Etudjant
Modifier ce qui est généré, non.

mais a la limite, tu peux mettre une frame en plus. Mais bon c'est bcp de truc pour un resultat pas tres beau.

Si c'est only JS le script, je sais rien faire moi :x
 

kevz

BF3 ?
Bigoal ???
J'adore ton system :p
Pas moyen que tu me passe un zip :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
Aucune modification :oops: :oops:
 
1er
OP
B

bigoaL

Touriste
kevz a dit:
Bigoal ???
J'adore ton system :p
Pas moyen que tu me passe un zip
Ben..JAlbum...tu peux le downloader facilement via Google...
Modifié est un grand mot :D
Une petite partie du design ;)

Je sais pas bien expliquer le mode de fonctionnement de la chose :))
Pour ceux qui veulent m'aider, téléchargez le...
Ca peut toujours être utile ;)
Merci beaucoup
 

kevz

BF3 ?
bigoaL a dit:
kevz a dit:
Bigoal ???
J'adore ton system :p
Pas moyen que tu me passe un zip
Ben..JAlbum...tu peux le downloader facilement via Google...
Modifié est un grand mot :D
Une petite partie du design ;)

Je sais pas bien expliquer le mode de fonctionnement de la chose :))
Pour ceux qui veulent m'aider, téléchargez le...
Ca peut toujours être utile ;)
Merci beaucoup
oki je DL JAlbum alors ???:p
 

MbK_

Etudjant
kevz a dit:
bigoaL a dit:
kevz a dit:
Bigoal ???
J'adore ton system :p
Pas moyen que tu me passe un zip
Ben..JAlbum...tu peux le downloader facilement via Google...
Modifié est un grand mot :D
Une petite partie du design ;)

Je sais pas bien expliquer le mode de fonctionnement de la chose :))
Pour ceux qui veulent m'aider, téléchargez le...
Ca peut toujours être utile ;)
Merci beaucoup
oki je DL JAlbum alors ???:p
je crois que la réponse à ta question est tout simplement "oui"
 
1er
OP
B

bigoaL

Touriste
Ouep, super simple d'utilisation...
 

noLain

www.wearewise.be
ou alors, code une shoutbox en php, en remplacent les 'echo' par une fonction printf special du genre:

function jsprintf($chaine=" "){
$chaine = eregi_replace("\"","\\\"",$chaine);
$chaine = eregi_replace("'","\\'",$chaine);
echo "document.write('".$chaine."')";
}

et dans le code html 'pré-generé' tu colle ca:

<script language=javascript src='shoutbox.php'></script>

Voila, c'est une solution rapide, mais ca doit marcher :)

[edit]
evidemment tu peux remplacer document.write par une autre fonction qui ecrit dans un div, ce serait p-e même mieux.
[/edit]
 
1er
OP
B

bigoaL

Touriste
nauhLain a dit:
et voila un petit exemple: jshoutbox :wink:
Pfiou...Ca m'a l'air de venir du fond du coeur ton reply...
Ca m'enchante,...sauf que...j'y comprends pas la moitié :D
 

noLain

www.wearewise.be
pas de probleme, je sais bien que les commentaires c'est pas mon fort ^^

Commençons par analyser le fichier html:

Celui ci doit contenir,
  • un cadre qui affiche les derniers messages
  • un cadre qui affiche un formulaire permettant de poster un message
  • un cadre qui affiche un formulaire permettant de choisir un pseudonyme

Ces trois cadre portent respectivement les noms 'shoutbox','postmsg' et 'login' .

Ensuite, il faut appeler un javascript qui va gerer
le contenu de ces differents cadre de facon dynamique.

Nous utiliserons donc un script php chargé de generer du javascript,
prêt à être chargé par une page html.

C'est ici qu'entre en jeu notre fichier shoutbox.php,
La façon dont la shoutbox est gerée ce fait de maniere habituelle:

Les messages sont stockés dans une db, le script affiche les 6 dernier messages,
ou en insere un nouveau suivant les parametres reçus.

La seule differences réside dans le fait que au lieu de faire une simple sortie ' echo "<table> ... </table>"; '
Il faudra sortir un code compréhensible par javascript,
on pourrait donc penser à ' echo "document.write('<table> ... </table>');"; '.
Mais il est bien plus interressant encore d'ecrire directement dans un cadre,
donc nous utiliserons une methode du dhtml: ' innerHtml ' qui permet de lire et ecrire dans un élement (div,span,td,...).
Voici donc au final ce que nous devrions avoir:
Code:
<?
 // fichier: test.php
 echo "document.getElementById('shoutbox').innerHTML = 'le texte à mettre dans le cadre shoutbox';";
?>
Ce script genere du javacript prêt à être chargé grace à cette balide html:
Code:
 <!-- fichier: test.html -->
<div id=shoutbox></div>
<script language='javascript' src='test.php'></script>
Sur l'exemple ci-dessus, quand le navigateur va arriver à hauteur de la balise ' <script ...> ',
il va charger le fichier test.php qui renvera le code javascript suivant:
Code:
document.getElementById('shoutbox').innerHTML = 'le texte à mettre dans le cadre shoutbox';
Et donc, la phrase 'le texte à mettre ...' serra inscrite dans le <div id=shoutbox></div> du fichier test.html.

Voila pour la petite parenthese explicative,
Pour faire le reste brievement:
La fonction jsflush permet de vider le cadre 'shoutbox';
La fonction jsprint permet d'ajouter du texte au cadre 'shoutbox';

Code:
 session_name("jshoutbox");
 session_start();
Permet de demarrer une session qui servira à stocker le pseudo et le temps entre chaque message.

Code:
 extract(array_merge($_GET, $_POST));
Permet de simplifier les tableau de requete,
exemple: '$_GET['message']' devient automatiquement '$message' .

Code:
 if(isset($shoutboxsubmit)){
  if(session_is_registered("pseudo")){
   if(!(session_is_registered("timenow") && ((time()-$_SESSION['timenow'])<=10))){
    $_SESSION['timenow'] = time();
    @mysql_query("INSERT INTO shoutbox (auteur,message) VALUES ('".$_SESSION['pseudo']."','".$message."')", $connectnews);
   }
  }
  header("Location: ".$HTTP_SERVER_VARS['HTTP_REFERER']);
 }else if(isset($logginsubmit)){
  $_SESSION['pseudo'] = htmlspecialchars($loggin);
  header("Location: ".$HTTP_SERVER_VARS['HTTP_REFERER']);
 }
Si '$shoutboxsubmit' n'est pas vide, (ce qui veut dire que le formulaire de message à été utilisé)
Alors, Si L'utilisateur à defini un pseudo,
Alors, Si l'utilisateur à déjà posté et ceci il y a plus de 10 secondes,
On indique que l'utilisateur vient de poster à tel heure.
Et on inscrit son message dans la db.
Retour à la page précédente.
Sinon, Si '$slogginsubmit' n'est pas vide, (et donc que l'utilisateur tente de s'enregistrer)
On enregistre son pseudo dans la session,
Et on retourne à la page précédente.

----

Ensuite, on execute une requete sql qui recupere les 6 derniers messages par ordre decroissant.
On vide le cadre 'shoutbox',
et on y ajoute les messages au fur et à mesures.

La derniere partie permet de définire lequel des 2 cadres doit être affiché,
entre celui pour poster et celui pour s'identifier.

---------------

Pour ne rien cacher, c'est ma premiere experience avec innerHtml et j'ai été assez decu.
J'ai essayé d'afficher les différents formulaire via innerHtml, mais ce sans succes,
impossible d'envoyer ou d'appeler un element du formulaire.
Et pour l'affichage des messages, j'avais utilisé des tables,
mais elles etaient tout bonnement ignorée par cette fonction :-(
Donc en conclusion, dans ce cas précis, c'est la methode à utiliser, .. mais dans ce cas précis uniquement.

[nb]
Je rajoute la table sql que j'avais omis dans le .rar

Code:
CREATE TABLE `shoutbox` (
  `id` int(11) NOT NULL auto_increment,
  `message` text NOT NULL,
  `auteur` varchar(120) NOT NULL default '',
  `date` timestamp(14) NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
[/nb]
 
1er
OP
B

bigoaL

Touriste
Je t'embrasserais bien ;)
Génial ta tartine, dès que je rentre chez moi je teste :p
 

noLain

www.wearewise.be
bigoaL a dit:
Je t'embrasserais bien ;)
Je m'en passerais bien :D
1500€ ca me suffira :p ( et encore, c'est un prix special gamerz ^^ )
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut