Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Problème avec un Script pour Tchat



  1. #1
    MagStellon

    Problème avec un Script pour Tchat

    Bonjour,

    j'ai un problème avec mon script qui est au lien suivant http://magstellon.ifrance.com/index.php, mon chat ne fonctionne pas ( impossible d'écrire un dialogue ) pourtant j'ai bien vérifier mais je ne voit pourquoi cela ne marche pas

    MERCI

    -----

    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  2. Publicité
  3. #2
    overmind

    Re : Problème avec un Script pour Tchat

    Où est la source?

  4. #3
    MagStellon

    Re : Problème avec un Script pour Tchat

    Mon tchat est composé de cette facon :

    Un fichier chat.php :

    <?php
    //-----------------------------------------
    // Module de chat - discussion
    // ===========================
    // Contient la partie interactive
    //-----------------------------------------
    session_start();
    header('content-type:text/html;charset=iso-8859-1');

    //-----------------------------------------
    //CONTROLE L'EXISTENCE DU LOGIN
    //-----------------------------------------
    if(!isset($_SESSION['login']))
    {
    header('location:index.php?con firm=2');
    exit;
    }

    //-----------------------------------------
    //AFFICHE LE CODE XHTML DU CHAT
    //-----------------------------------------
    echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Discutez en direct de vos probl&egrave;mes informatiques</title>
    <link rel="stylesheet" href="style.css" type="text/css" media="all" />
    <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
    <p id="chat_haut">Bienvenue sur le chat</p>
    <div id="chat_centrage">
    <label id="chat_html"></label>
    <div id="chat_connectes">
    <p>Connectés au chat :</p><hr />
    <label id="connectes"></label>
    </div>
    <div id="chat_bas">
    <form action="javascript:envoi_messa ge()">
    <p class="pm"><input type="text" name="message" id="message" size="82" /><input type="submit" value="Ok" class="gris" /></p>
    </form>
    <p id="smileys"><a href="javascript:sm(\'\')"><img src="smileys/smile1.gif" alt="" /></a><a href="javascript:sm(\')\')"><img src="smileys/smile2.gif" alt="" /></a><a href="javascript:sm(\'\')"><img src="smileys/smile10.gif" alt="" /></a><a href="javascript:sm(\'^^\')">< img src="smileys/smile11.gif" alt="" /></a><a href="javascript:sm(\':P\')">< img src="smileys/smile5.gif" alt="" /></a><a href="javascript:sm(\':\')"><img src="smileys/smile6.gif" alt="" /></a><a href="javascript:sm(\'^p\')">< img src="smileys/smile21.gif" alt="" /></a><a href="javascript:sm(\':[]:\')"><img src="smileys/smile32.gif" alt="" /></a><a href="javascript:sm(\':coeur:\ ')"><img src="smileys/smile33.gif" alt="" /></a><a href="javascript:sm(\'\')"><img src="smileys/smile24.gif" alt="" /></a><a href="javascript:sm(\':mouais: \')"><img src="smileys/smile34.gif" alt="" /></a><a href="javascript:sm(\':etonne: \')"><img src="smileys/smile15.gif" alt="" /></a><a href="javascript:sm(\':enerve: \')"><img src="smileys/smile13.gif" alt="" /></a><a href="javascript:sm(\'uais:\')"><img src="smileys/smile20.gif" alt="" /></a>
    <form id="form_statut" action="#">
    <select id="s_statut" onchange="javascript:statut()" >
    <option value="0">En ligne</option>
    <option value="1">Occupé</option>
    <option value="2">Parti manger</option>
    <option value="3">Absent</option>
    <option value="4">Au t&eacute;l&eacute;phone</option>
    <option value="5">De retour bient&ocirc;t</option>
    </select>
    </form>
    </p>
    </div>
    </div>
    <script type="text/javascript">
    setTimeout(lire_messages,2000) ;
    connectes();
    </script>


    </body>
    </html>';
    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  5. #4
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier Inscription.php :

    <?php
    ob_start();
    header('content-type:text/html;charset=iso-8859-1');

    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Inscription au Chat</title>
    <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
    </head>
    <body>';

    //-----------------------------------------
    //RECUEILLE LES DONNEES DU FORMULAIRE
    //-----------------------------------------
    if(isset($_POST['envoi']))
    {
    if(isset($_POST['pseudo']) AND !eregi("[\^'?\\]",$_POST['pseudo']) AND isset($_POST['ville']) AND !eregi("[\^'\\]",$_POST['ville']) AND strlen($_POST['pseudo'])<=25 AND strlen($_POST['pseudo'])>=3 AND isset($_POST['jour']) AND is_numeric($_POST['jour']) AND $_POST['jour']>0 AND $_POST['jour']<32 AND isset($_POST['mois']) AND is_numeric($_POST['mois']) AND $_POST['mois']>0 AND $_POST['mois']<13 AND isset($_POST['annee']) AND is_numeric($_POST['annee']) AND strlen($_POST['annee'])===4 AND isset($_POST['sexe']) AND is_numeric($_POST['sexe']) AND ($_POST['sexe']==='0' OR $_POST['sexe']==='1'))
    {
    if(isset($_POST['passe']) AND isset($_POST['passe2']) AND strcmp($_POST['passe'],$_POST['passe2'])===0)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    $pseudo=htmlentities($_POST['pseudo']);
    $_POST['ville']=htmlentities($_POST['ville']);

    $mysql->requete("SELECT COUNT(*) FROM membres WHERE pseudo='".$pseudo."'",0,1,0);
    $r=$mysql->fetch_row(0);

    if($r[0]!=='0')
    {
    $mysql->deconnect();

    header('location:inscription.p hp?confirm=3');
    exit;
    }
    if($mysql->requete("INSERT INTO membres VALUES('','".$pseudo."','".md5 ($_POST['passe'])."',".$_POST['sexe'].",".mktime(0,0,0,$_POST['mois'],$_POST['jour'],$_POST['annee']).",'".$_POST['ville']."',0,0)",0,0,1))
    {
    header('location:index.php?con firm=4');
    }
    else
    {
    header('location:index.php?con firm=5');
    }
    }
    else
    {
    header('location:inscription.p hp?confirm=2');
    }
    }
    else
    {
    header('location:inscription.p hp?confirm=1');
    }
    exit;
    }
    //-----------------------------------------
    //AFFICHE LE FORMULAIRE
    //-----------------------------------------
    else
    {
    $tab=array(1=>'Le pseudo doit avoir une taille comprise entre 3 et 25 caract&egrave;res et il ne doit pas contenir de caract&egrave;res sp&eacute;ciaux. La ville ne doit &eacute;galement pas en comporter.',2=>'Les deux mots de passes doivent être identiques',3=>'Ce pseudo est déjà enregistr&eacute;');

    if(isset($_GET['confirm']) AND array_key_exists($_GET['confirm'],$tab))
    {
    echo '<p class="erreur">',$tab[$_GET['confirm']],'</p>';
    }
    echo '<h1>Inscription sur le chat</h1>
    <form action="?" method="post">
    <p><label for="pseudo">Pseudo :</label>
    <input type="text" name="pseudo" maxlength="25" id="pseudo" /></p>
    <p><label for="passe">Mot de passe :</label>
    <input type="password" name="passe" maxlength="20" id="passe" /></p>
    <p><label for="passe2">Confirmation du mot de passe :</label>
    <input type="password" name="passe2" maxlength="20" id="passe2" /></p>
    <p><label for="sexe">Sexe :</label>
    <select name="sexe">
    <option value="0">Homme</option>
    <option value="1">Femme</option>
    </select>
    <p><label>Date de naissance (JJ/MM/AAAA) :</label>
    <select name="jour">
    <option value="1">01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select>
    <select name="mois">
    <option value="1">01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    </select>
    <input type="text" name="annee" maxlength="4" size="4" /></p>
    <p><label for="ville">Ville :</label><input type="text" name="ville" maxlength="35" size="25" id="ville" /></p>
    <p><input type="submit" value="S\'inscrire" /><input type="hidden" name="envoi" /></p>
    </form>',"\n";
    }
    ?>
    </body>
    </html>
    Dernière modification par MagStellon ; 15/02/2006 à 16h39.
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  6. #5
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier index.php :

    <?php
    ob_start();
    session_start();
    header('content-type:text/html;charset=iso-8859-1');

    //------------------------------------------------------
    //EVITE LE MULTI PSEUDO SIMULTANNE
    //------------------------------------------------------
    if(isset($_SESSION['login']))
    {
    header('location:chat.php');
    exit;
    }

    include 'classe_mysql.inc.php';
    $mysql = new mysql;

    //------------------------------------------------------
    //VERIFIE SI LE PSEUDO EXISTE
    //------------------------------------------------------
    if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND !eregi("[\^'?\\]",$_POST['pseudo']) AND strlen(trim($_POST['pseudo']))>3)
    {
    //----------------------------------------------
    //DETECTION DE MULTI
    //----------------------------------------------

    $dossier=opendir('connectes/');
    $limite=time()-20;
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[8]===$_SERVER['REMOTE_ADDR'] AND $ligne[2]>$limite)
    {
    header('location:index.php?con firm=7');
    exit;
    }
    }
    }
    closedir($dossier);


    //-----------------------------------------------
    $_POST['pseudo']=htmlentities($_POST['pseudo']);
    $mysql->requete("SELECT pseudo,passe,droits,sexe,age,v ille,ban FROM membres WHERE pseudo='".$_POST['pseudo']."'",0,1,1);

    $r=$mysql->fetch_row(0);

    //-----------------------------------------------------------
    //LE PSEUDO EXISTE ET LE PASSE EST EXACT
    //-----------------------------------------------------------
    if(isset($r[0]) AND $r[0]===$_POST['pseudo'] AND $r[1]===md5($_POST['passe']))
    {
    //-------------------
    //BANNI
    //-------------------
    if($r[6]==='1')
    {
    header('location:index.php?con firm=3');
    exit;
    }
    $_SESSION['login']=$r[0];
    $_SESSION['droits']=$r[2];
    $_SESSION['sexe']=$r[3];
    $_SESSION['age']=floor((time()-$r[4])/(3600*24*365));
    $_SESSION['ville']=$r[5];
    $_SESSION['id']=substr(md5(microtime()),0,10) ;
    $_SESSION['debut']=count(file('contenu/contenu_chat.txt'));
    $_SESSION['deja_lu']=0;
    $_SESSION['etat']=0; //en ligne
    $_SESSION['ban']=$r[6];
    $_SESSION['enregistre']=1;

    header('location:chat.php');
    }
    //------------------------------------------------
    //LE PSEUDO EXISTE ET LE PASSE EST INEXACT
    //------------------------------------------------
    elseif(isset($r[0]) AND $r[1]!==md5($_POST['passe']))
    {
    header('location:index.php?con firm=1');
    exit;
    }
    //------------------------------------------------
    //LE PSEUDO N'EST PAS RESERVE
    //------------------------------------------------
    elseif($mysql->nbre_lignes(0)===0)
    {
    //----------------------------------------------
    //BANNI PAR IP ?
    //----------------------------------------------

    $tab=file('contenu/bans_ip.txt');
    $i=0;
    $nb=count($tab);
    $var_ban=0;

    while($i<$nb)
    {
    $ligne=explode('|',$tab[$i]);

    if(($ligne[0]===$_SERVER['REMOTE_ADDR'] AND $ligne[1]>time()) OR $ligne[2]===$_POST['pseudo'])
    {
    $var_ban=1;
    }
    $i++;
    }
    if(isset($_COOKIE['ban']) OR $var_ban===1)
    {
    header('location:index.php?con firm=3');
    exit;
    }
    //-----------------------------------------------
    if(isset($_POST['sexe']) AND ($_POST['sexe']==='0' OR $_POST['sexe']==='1') AND isset($_POST['age']) AND isset($_POST['ville']) AND strlen($_POST['ville'])<=35)
    {
    if(!is_numeric($_POST['age']))
    {
    $_POST['age']=0;
    }
    $_SESSION['login']=$_POST['pseudo'];
    $_SESSION['droits']=0;
    $_SESSION['sexe']=$_POST['sexe'];
    $_SESSION['age']=$_POST['age'];
    $_SESSION['ville']=htmlentities($_POST['ville']);
    $_SESSION['id']=substr(md5(microtime()),0,10) ;
    $_SESSION['debut']=count(file('contenu/contenu_chat.txt'));
    $_SESSION['deja_lu']=0;
    $_SESSION['etat']=0; //en ligne
    $_SESSION['ban']='0';
    $_SESSION['enregistre']=0;

    header('location:chat.php');
    }
    else
    {
    header('location:index.php?con firm=6');
    exit;
    }
    }
    include './fonctions.php';
    ajout_chat('<p class="chat">Bienvenue &agrave; '.$_SESSION['login'].' qui vient de nous rejoindre.</p>');
    }
    //------------------------------------------------------
    //AFFICHE LE FORMULAIRE DE CONNEXION
    //------------------------------------------------------
    else
    {
    $tab=array(1=>'Le mot de passe associé au pseudo est incorrect',2=>'Vous n\'êtes pas enregistré(e)',3=>'Vous êtes banni du chat pour une dur&eacute; ind&eacute;termin&eacute;e',4= >'Votre pseudo a bien &eacute;t&eacute; enregistr&eacute; correctement.',5=>'Il y a eu une erreur lors de l\'enregistrement de votre pseudo',6=>'Vous devez passer par le formulaire des pseudos non enregistr&eacute;s pour pouvoir entrer sur le chat',7=>'Vous etes d&eacute;j&agrave connect&eacute;. Ne passez pas par un autre navigateur pour tenter d\'utiliser plusieurs pseudos &agrave; la fois');

    echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Bienvenue sur le chat du site </title>
    <meta name="description" content="Discutez en direct de vos problèmes informatiques sur le chat." />
    <meta name="keywords" content="chat informatique, informatique, chat" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
    <p>Bienvenue sur le chat du site ! Afin de vous aider &agrave; r&eacute;soudre vos probl&egrave;mes informatiques, le site vous propose de venir en parler en direct sur le chat.</p><p class="rouge">Des discussions ayant pour th&egrave;me l\'informatique sont organis&eacute;es le mercredi (g&eacute;n&eacute;ralement à 21h). Pour connaître le sujet principal des discussions, inscrivez-vous à la newsletter du site.</p></div>
    ';

    if(isset($_GET['confirm']) AND array_key_exists($_GET['confirm'],$tab))
    {
    echo '<p class="rouge"><b>',$tab[$_GET['confirm']],'</b></p>';
    }

    echo '
    <p>Connectez-vous au chat : pour ce faire, entrez votre pseudo (3 caract&egrave;res minimum, certains caract&egrave;res sp&eacute;ciaux sont interdits). Si vous vous êtes enregistr&eacute;(e), n\'oubliez pas de rentrer un mot de passe valide. Si vous souhaitez r&eacute;server votre pseudo, <b><a href="inscription.php">inscriv ez-vous ici</a></b>.</p>
    <hr />
    <p><label for="chk_enre">Cochez cette case si vous n\'avez pas enregistr&eacute; votre pseudo :</label><input type="checkbox" value="1" id="chk_enre" onclick="javascript:checkbox() ;" /></p>
    <div id="enregistre">
    <form action="?" method="post">
    <p><label for="pseudo">Votre pseudo :</label><input type="text" name="pseudo" id="pseudo" maxlength="25" /></p>
    <p><label for="passe">Votre mot de passe :</label><input type="password" name="passe" id="passe" /></p>
    <p><input type="submit" value="Se connecter au chat" /></p>
    </form>
    </div>
    <div id="pas_enregistre">
    <form action="?" method="post">
    <p><label for="pseudo">Votre pseudo :</label><input type="text" name="pseudo" id="pseudo" maxlength="25" /></p>
    <p><label for="age">Age :</label><input type="text" size="2" maxlength="2" id="age" name="age" /></p>
    <p><label for="ville">Ville :</label><input type="text" size="25" maxlength="35" id="ville" name="ville" /></p>
    <p><label for="sexe">Sexe :</label>
    <select name="sexe">
    <option value="0">Homme</option>
    <option value="1">Femme</option>
    </select></p>
    <p><input type="submit" value="Se connecter au chat" /><input type="hidden" name="passe" value="" /></p>
    </form>
    </div>
    </div>
    </body>
    </html>';
    }
    ob_end_flush();
    ?>
    Dernière modification par MagStellon ; 15/02/2006 à 16h40.
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  7. A voir en vidéo sur Futura
  8. #6
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier fonction_admin.php :

    <?php
    if(!defined('CHAT'))
    {
    exit;
    }
    //--------------------------------------------
    //ACTIVE LE MODE VOICE NECESSAIRE POUR PARLER
    //--------------------------------------------
    if($message==='/options voice on')
    {
    if($_SESSION['droits']>1)
    {
    $fichier=file_get_contents('./ajouter_message.php');
    $fichier=str_replace('$mode_vo ice=0;','$mode_voice=1;',$fich ier);

    $fp=fopen('./ajouter_message.php','w+');
    fputs($fp,$fichier);
    fclose($fp);

    ajout_chat('<p class="chat">'.$_SESSION['login'].' a activ&eacute; le mode voice. Vous devez donc &ecirc;tre voic&eacute; pour pouvoir parler.</p>');
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //--------------------------------------------
    //DESACTIVE LE MODE VOICE
    //--------------------------------------------
    elseif($message==='/options voice off')
    {
    if($_SESSION['droits']>1)
    {
    $fichier=file_get_contents('./ajouter_message.php');
    $fichier=str_replace('$mode_vo ice=1;','$mode_voice=0;',$fich ier);

    $fp=fopen('./ajouter_message.php','w+');
    fputs($fp,$fichier);
    fclose($fp);

    ajout_chat('<p class="chat">'.$_SESSION['login'].' a d&eacute;sactiv&eacute; le mode voice.</p>');
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //--------------------------------------------
    //ACTIVE LE MODE POUR PARLER
    //SEULEMENT SI ON EST ENREGISTRE
    //--------------------------------------------
    elseif($message==='/options users on')
    {
    if($_SESSION['droits']>1)
    {
    $fichier=file_get_contents('./ajouter_message.php');
    $fichier=str_replace('$mode_en registres=0;','$mode_enregistr es=1;',$fichier);

    $fp=fopen('./ajouter_message.php','w+');
    fputs($fp,$fichier);
    fclose($fp);

    ajout_chat('<p class="chat">'.$_SESSION['login'].' a activ&eacute; le mode &quot;enregistr&eacute;&quo t; Vous devez donc &ecirc;tre enregistr&eacute; pour pouvoir parler.</p>');
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //--------------------------------------------
    //DESACTIVE LE MODE POUR PARLER
    //SEULEMENT SI ON EST ENREGISTRE
    //--------------------------------------------
    elseif($message==='/options users off')
    {
    if($_SESSION['droits']>1)
    {
    $fichier=file_get_contents('./ajouter_message.php');
    $fichier=str_replace('$mode_en registres=1;','$mode_enregistr es=0;',$fichier);

    $fp=fopen('./ajouter_message.php','w+');
    fputs($fp,$fichier);
    fclose($fp);

    ajout_chat('<p class="chat">'.$_SESSION['login'].' a d&eacute;sactiv&eacute; le mode &quot;enregistr&eacute;&quo t; Tous les utilisateurs peuvent parler.</p>');
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  9. Publicité
  10. #7
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier classe_mysql.inc.php :

    <?php
    class mysql
    {
    var $sql_serveur;
    var $sql_user;
    var $sql_passe;
    var $sql_bdd;
    var $connexion_sql;
    var $base;
    var $requete;
    var $deja_erreur;
    var $return;

    function mysql()
    {
    $this->sql_serveur='*****';
    $this->sql_user='*****';
    $this->sql_passe='*****';
    $this->sql_bdd=*****';
    $this->connexion_sql=NULL;
    $this->requete=array();
    $this->deja_erreur=0;
    $this->return=FALSE;
    }
    function connect()
    {
    if(!$this->connexion_sql=@mysql_connect( $this->sql_serveur,$this->sql_user,$this->sql_passe) OR !$this->base=@mysql_select_db($this->sql_bdd))
    {
    $this->erreur('Connexion impossible à la base de données. Merci de me contacter svp');
    }
    }
    function requete($requete,$i,$connect,$ deconnect)
    {
    if($connect===1)
    {
    $this->connect();
    }
    if(!$this->requete[$i]=@mysql_query($requete))
    {
    $this->erreur('Impossible d\'effectuer la requête.');
    }
    else
    {
    $this->return=TRUE;
    }
    if($deconnect===1)
    {
    $this->deconnect();
    }
    return $this->return;
    }
    function fetch_row($i)
    {
    return @mysql_fetch_row($this->requete[$i]);
    }
    function nbre_lignes($i)
    {
    return @mysql_num_rows($this->requete[$i]);
    }
    function deconnect()
    {
    $this->connexion_sql=@mysql_close($t his->connexion_sql);
    }
    function erreur($erreur)
    {
    if($this->deja_erreur===0)
    {
    echo '<div style="border:1px dashed #CC0000;width:270px;height:60p x;background-color:#FAFAFA;margin-left:auto;margin-right:auto;text-align:center"><p>Erreur : ',$erreur,'</p></div>',"\n";

    $this->deja_erreur=1;
    }
    }
    }
    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  11. #8
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier connectes.php :

    <?php
    session_start();

    //--------------------------------------------------------
    //PAS DE PSEUDO ENREGISTRE
    //--------------------------------------------------------
    if(!isset($_SESSION['login']))
    {
    header('location:index.php?con firm=2');
    exit;
    }

    //--------------------------------------------------------
    //ON MODIFIE SON STATUT
    //--------------------------------------------------------
    if(isset($_GET['modifier_statut']) AND is_numeric($_GET['modifier_statut']) AND $_GET['modifier_statut']>=0 AND $_GET['modifier_statut']<6)
    {
    $_SESSION['etat']=$_GET['modifier_statut'];
    }

    //--------------------------------------------------------
    //LES PSEUDOS SONT ENREGISTRES SOUS CETTE FORME
    //DANS UN FICHIER INDIVIDUEL :
    //-----------------------------------------------
    //ID'PSEUDO'TEMPS'DROITS'ETAT'SE XE'AGE'VILLE'IP
    //============================== ==========================
    //LES DROITS : 0=normal
    // 1=voice
    // 2=modé
    // 3=admin
    //--------------------------------------------------------
    $dossier=opendir('connectes/');
    $existe=0;
    $temps_limite=time()-30; //30 secondes max
    $tab_final=array();

    //--------------------------------------------------------
    //AFFICHE LA LISTE DES CONNECTES
    //--------------------------------------------------------
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    //----------------------------------------
    //RECUPERE LES INFORMATIONS SUR LE PSEUDO
    //----------------------------------------

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    //--------------------------------------------
    //SI LE PSEUDO NE S'EST PAS MANIFESTE
    //DEPUIS PLUS D'UNE MINUTE ON LE CONSIDERE
    //COMME DECONNECTE (LE MEMBRE N'A PAS BESOIN
    //D'ECRIRE POUR ETRE CONSIDERE COMME CONNECTE
    //SEULE SA CONNEXION INTERNET DOIT FONCTIONNER
    //---------------------------------------------

    if($ligne[0]===$_SESSION['id'])
    {
    $existe=1;
    $ligne[2]=time();
    }
    if($ligne[2]<$temps_limite)
    {
    unlink('connectes/'.$fichier);
    }
    else
    {
    //-------------------------------
    //AFFICHE LE STATUT EN FONCTION
    //DE LA VALEUR DE $ligne[4]
    //-------------------------------

    $statut=array(0=>'',1=>'|occup &eacute;',2=>'|Parti manger',3=>'|Absent',4=>'|Au t&eacute;l&eacute;phone',5=>'| De retour bient&ocirc;t');

    if($ligne[5]==0)
    {
    $sexe=' Homme ';
    }
    else
    {
    $sexe=' Femme ';
    }

    //-------------------------------
    //EN FONCTION DES DROITS
    //ON AFFICHE UN PSEUDO DE COULEUR
    //DIFFERENTE
    //-------------------------------
    switch($ligne[3])
    {
    case '0':
    echo '<p class="connec" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '1':
    echo '<p class="voice" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '2':
    echo '<p class="mode" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '3':
    echo '<p class="admin" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;
    case '5':
    echo '<p class="bot5" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;
    }
    }
    }
    }
    closedir($dossier);
    //----------------------------------------------------
    //MODIFIE LE FICHIER CORRESPONDANT AU PSEUDO CONNECTE
    //----------------------------------------------------
    $fichier=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fichier,$_SESSION['id'].'\''.$_SESSION['login'].'\''.time().'\''.$_SESSION['droits'].'\''.$_SESSION['etat'].'\''.$_SESSION['sexe'].'\''.$_SESSION['age'].'\''.$_SESSION['ville'].'\''.$_SERVER['REMOTE_ADDR']);
    fclose($fichier);
    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  12. #9
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier fonction.php :

    <?php
    session_start();

    //--------------------------------------------------------
    //PAS DE PSEUDO ENREGISTRE
    //--------------------------------------------------------
    if(!isset($_SESSION['login']))
    {
    header('location:index.php?con firm=2');
    exit;
    }

    //--------------------------------------------------------
    //ON MODIFIE SON STATUT
    //--------------------------------------------------------
    if(isset($_GET['modifier_statut']) AND is_numeric($_GET['modifier_statut']) AND $_GET['modifier_statut']>=0 AND $_GET['modifier_statut']<6)
    {
    $_SESSION['etat']=$_GET['modifier_statut'];
    }

    //--------------------------------------------------------
    //LES PSEUDOS SONT ENREGISTRES SOUS CETTE FORME
    //DANS UN FICHIER INDIVIDUEL :
    //-----------------------------------------------
    //ID'PSEUDO'TEMPS'DROITS'ETAT'SE XE'AGE'VILLE'IP
    //============================== ==========================
    //LES DROITS : 0=normal
    // 1=voice
    // 2=modé
    // 3=admin
    //--------------------------------------------------------
    $dossier=opendir('connectes/');
    $existe=0;
    $temps_limite=time()-30; //30 secondes max
    $tab_final=array();

    //--------------------------------------------------------
    //AFFICHE LA LISTE DES CONNECTES
    //--------------------------------------------------------
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    //----------------------------------------
    //RECUPERE LES INFORMATIONS SUR LE PSEUDO
    //----------------------------------------

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    //--------------------------------------------
    //SI LE PSEUDO NE S'EST PAS MANIFESTE
    //DEPUIS PLUS D'UNE MINUTE ON LE CONSIDERE
    //COMME DECONNECTE (LE MEMBRE N'A PAS BESOIN
    //D'ECRIRE POUR ETRE CONSIDERE COMME CONNECTE
    //SEULE SA CONNEXION INTERNET DOIT FONCTIONNER
    //---------------------------------------------

    if($ligne[0]===$_SESSION['id'])
    {
    $existe=1;
    $ligne[2]=time();
    }
    if($ligne[2]<$temps_limite)
    {
    unlink('connectes/'.$fichier);
    }
    else
    {
    //-------------------------------
    //AFFICHE LE STATUT EN FONCTION
    //DE LA VALEUR DE $ligne[4]
    //-------------------------------

    $statut=array(0=>'',1=>'|occup &eacute;',2=>'|Parti manger',3=>'|Absent',4=>'|Au t&eacute;l&eacute;phone',5=>'| De retour bient&ocirc;t');

    if($ligne[5]==0)
    {
    $sexe=' Homme ';
    }
    else
    {
    $sexe=' Femme ';
    }

    //-------------------------------
    //EN FONCTION DES DROITS
    //ON AFFICHE UN PSEUDO DE COULEUR
    //DIFFERENTE
    //-------------------------------
    switch($ligne[3])
    {
    case '0':
    echo '<p class="connec" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '1':
    echo '<p class="voice" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '2':
    echo '<p class="mode" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;

    case '3':
    echo '<p class="admin" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;
    case '5':
    echo '<p class="bot5" title="',$ligne[6],$sexe,$ligne[7],'">',$ligne[1],$statut[$ligne[4]],'</p>';
    break;
    }
    }
    }
    }
    closedir($dossier);
    //----------------------------------------------------
    //MODIFIE LE FICHIER CORRESPONDANT AU PSEUDO CONNECTE
    //----------------------------------------------------
    $fichier=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fichier,$_SESSION['id'].'\''.$_SESSION['login'].'\''.time().'\''.$_SESSION['droits'].'\''.$_SESSION['etat'].'\''.$_SESSION['sexe'].'\''.$_SESSION['age'].'\''.$_SESSION['ville'].'\''.$_SERVER['REMOTE_ADDR']);
    fclose($fichier);
    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  13. #10
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier ajouter_message.php :

    <?php
    session_start();

    //--------------------------------------------------------
    //PARAMETRES DE CONFIGURATION
    //--------------------------------------------------------
    $mode_voice=0;
    $mode_enregistres=0;
    define('CHAT',1);

    //--------------------------------------------------------
    //PAS DE PSEUDO ENREGISTRE
    //--------------------------------------------------------
    if(!isset($_SESSION['login']) OR !isset($_GET['message']))
    {
    header('location:index.php?con firm=2');
    exit;
    }

    include './fonctions.php';

    //--------------------------------------------------------
    //TRAITE LE MESSAGE RECU
    //--------------------------------------------------------
    if(!empty($_GET['message']))
    {
    if(get_magic_quotes_gpc()===1)
    {
    $message=urldecode(stripslashe s($_GET['message']));
    }
    else
    {
    $message=urldecode($_GET['message']);
    }

    //------------------------------------------------------
    //EN CAS DE BAN OU DE MODE VOICE ACTIF ALORS QU'ON A PAS
    //LES DROITS
    //------------------------------------------------------
    if($_SESSION['ban']==='1')
    {
    pas_droit('Vous avez &eacute;t&eacute; banni pour une dur&eacute; ind&eacute;termin&eacute;e.');
    exit;
    }
    //------------------------------------------------------
    //GERE SI IL S'AGIT D'UNE COMMANDE
    //------------------------------------------------------
    if($message{0}==='/')
    {
    //----------------------------------------------
    //ON CHANGE DE PSEUDO
    //UTILISATION : /nick nouveau_pseudo
    //----------------------------------------------
    if(substr($message,0,5)==='/nick')
    {
    $nouveau_pseudo=substr($messag e,6,strlen($message));
    $len=strlen(trim($nouveau_pseu do));

    if($len>3 AND $len<=25 AND !eregi("[\^'?\\]",$nouveau_pseudo))
    {
    $succes=0;
    $pseudo_passe=explode(' ',$nouveau_pseudo);
    $pseudo=htmlentities($pseudo_p asse[0]);
    if(isset($pseudo_passe[1]))
    {
    $passe=$pseudo_passe[1];
    }
    else
    {
    $passe='';
    }

    include './classe_mysql.inc.php';

    $mysql=new mysql;

    //----------------------------------------------
    //REGARDE SI LE PSEUDO EXISTE
    //----------------------------------------------
    $mysql->requete("SELECT pseudo,passe,droits,sexe,age,v ille,ban FROM membres WHERE pseudo='".$pseudo."'",0,1,1);

    $r=$mysql->fetch_row(0);

    //------------------------------------------------
    //LE PSEUDO EXISTE ET LE PASSE EST EXACT
    //------------------------------------------------
    if($r[0]===$pseudo AND $r[1]===md5($passe))
    {
    $_SESSION['droits']=$r[2];
    $_SESSION['sexe']=$r[3];
    $_SESSION['age']=floor((time()-$r[4])/(3600*24*365));
    $_SESSION['ville']=$r[5];
    $_SESSION['ban']=$r[6];
    $succes=1;
    }
    //------------------------------------------------
    //LE PSEUDO EXISTE ET LE PASSE EST INEXACT
    //------------------------------------------------
    elseif($r[1]!==md5($passe) AND !empty($r[0]))
    {
    pas_droit('Le mot de passe est incorrect.');
    }
    //------------------------------------------------
    //LE PSEUDO N'EST PAS RESERVE
    //------------------------------------------------
    elseif($mysql->nbre_lignes(0)===0)
    {
    $succes=1;
    }

    if($succes===1)
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' s\'appelle maintenant '.$pseudo.'</p>');

    $fichier=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fichier,$_SESSION['id'].'\''.$_SESSION['login'].'\''.time().'\''.$_SESSION['droits'].'\''.$_SESSION['etat'].'\''.$_SESSION['sexe'].'\''.$_SESSION['age'].'\''.$_SESSION['ville'].'\''.$_SERVER['REMOTE_ADDR']);
    fclose($fichier);

    $_SESSION['login']=$pseudo;
    }
    }
    else
    {
    pas_droit('Le pseudo ne doit pas contenir de caract&egrave;res sp&eacute;ciaux, il doit faire 3 caract&egrave;res minimum et 25 caract&egrave;res maximum.');
    }
    }
    //-----------------------------------
    //ON AFFICHE UN MESSAGE
    //UTILISATION : /me message
    //-----------------------------------
    elseif(substr($message,0,3)=== '/me')
    {
    $message=htmlentities(substr($ message,4,strlen($message)));
    $len=strlen(trim($message));

    if($len>=1)
    {
    ajout_chat('<p class="marron">'.$_SESSION['login'].' '.str_replace(array('<','>'),a rray('&lt;','&gt;'),$message). '</p>');
    }
    }
    //-----------------------------------
    //ON MET UN MODE +V A UN CONNECTE
    //UTILISATION : /voice pseudo
    //-----------------------------------
    elseif(substr($message,0,6)=== '/voice')
    {
    $message=substr($message,7,str len($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($_SESSION['droits']>1 AND $len>=1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    //----------------------------------------
    //RECUPERE LES INFORMATIONS SUR LE PSEUDO
    //----------------------------------------

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if(($ligne[3]<$_SESSION['droits']) OR $pseudo===$_SESSION['login'])
    {
    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'1\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);

    ajout_chat('<p class="chat">'.$_SESSION['login'].' active le mode voice sur '.$pseudo.'</p>'.
    "\r\n".'<p class="passage_voice">'.$pseud o.'</p>');

    break;
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    }
    }
    closedir($dossier);
    }
    //-----------------------------------------------------
    //VERIFIE DANS LA BASE SI LE PSEUDO PEUT ACCEDER AU
    //DROIT DE VOICE
    //-----------------------------------------------------
    elseif($pseudo===$_SESSION['login'])
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    $mysql->requete("SELECT droits FROM membres WHERE pseudo='".$pseudo."'",0,1,1);

    $r=$mysql->fetch_row(0);

    if($mysql->nbre_lignes(0)===0 OR $r[0]<1)
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    else
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a obtenu la parole.</p>'."\r\n".'<p class="passage_voice">'.$pseud o.'</p>');

    $ligne=explode('\'',file_get_c ontents('connectes/'.$_SESSION['id'].'.txt'));

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'1\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    //ON ENLEVE LE MODE +V
    //UTILISATION : /devoice pseudo
    //-----------------------------------
    elseif(substr($message,0,8)=== '/devoice')
    {
    $message=substr($message,9,str len($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($pseudo===$_SESSION['login'] OR $ligne[3]<$_SESSION['droits'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' d&eacute;sactive le mode voice sur '.$pseudo.'</p>'."\r\n".'<p class="passage_devoice">'.$pse udo.'</p>');

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'0\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    }
    //-----------------------------------
    //PASSE AU STATUT MODERATEUR
    //UTILISATION : /moderateur pseudo
    //-----------------------------------
    elseif(substr($message,0,11)== ='/moderateur')
    {
    $message=substr($message,12,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($_SESSION['droits']>2)
    {
    if($len>=1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($ligne[3]<$_SESSION['droits'] OR $pseudo===$_SESSION['login'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a fait passer '.$pseudo.' au statut de mod&eacute;rateur du salon.</p>'."\r\n".'<p class="passage_moderateur">'.$ pseudo.'</p>');

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'2\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    break;
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    }
    }
    closedir($dossier);
    }
    }
    //-----------------------------------------------------
    //VERIFIE DANS LA BASE SI LE PSEUDO PEUT ACCEDER AU
    //DROIT DE MODERATEUR
    //-----------------------------------------------------
    elseif($pseudo===$_SESSION['login'])
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    $mysql->requete("SELECT droits FROM membres WHERE pseudo='".$pseudo."'",0,1,1);

    $r=$mysql->fetch_row(0);

    if($mysql->nbre_lignes(0)===0 OR $r[0]<2)
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    else
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a fait passer '.$pseudo.' au statut de mod&eacute;rateur du salon.</p>'."\r\n".'<p class="passage_moderateur">'.$ pseudo.'</p>');

    $ligne=explode('\'',file_get_c ontents('connectes/'.$_SESSION['id'].'.txt'));

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'2\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    //ENLEVE TOUS LES DROITS
    //UTILISATION : /touriste pseudo
    //-----------------------------------
    elseif(substr($message,0,9)=== '/touriste')
    {
    $message=substr($message,10,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($ligne[3]<$_SESSION['droits'] OR $pseudo===$_SESSION['login'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a enlev&eacute; les droits de '.$pseudo.'.</p>'."\r\n".'<p class="passage_membre">'.$pseu do.'</p>');

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'0\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    }
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  14. #11
    MagStellon

    Re : Problème avec un Script pour Tchat

    Suite de ajouter_message.php :

    //-----------------------------------
    //PASSE EN ADMIN
    //UTILISATION : /admin pseudo
    //-----------------------------------
    elseif(substr($message,0,6)=== '/admin')
    {
    $message=substr($message,7,str len($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1)
    {
    if($_SESSION['droits']>2)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {

    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($ligne[3]<$_SESSION['droits'] OR $pseudo===$_SESSION['login'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a fait passer '.$pseudo.' au statut d\'administrateur du salon.</p>'."\r\n".'<p class="passage_admin">'.$pseud o.'</p>');

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'3\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    //-----------------------------------------------------
    //VERIFIE DANS LA BASE SI LE PSEUDO PEUT ACCEDER AU
    //DROIT D'ADMIN
    //-----------------------------------------------------
    elseif($pseudo===$_SESSION['login'])
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    $mysql->requete("SELECT droits FROM membres WHERE pseudo='".$pseudo."'",0,1,1);

    $r=$mysql->fetch_row(0);

    if($mysql->nbre_lignes(0)===0 OR $r[0]<3)
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    else
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a fait passer '.$pseudo.' au statut d\'administrateur du salon.</p>'."\r\n".'<p class="passage_admin">'.$pseud o.'</p>');

    $ligne=explode('\'',file_get_c ontents('connectes/'.$_SESSION['id'].'.txt'));

    $fichier_final=$ligne[0].'\''.$pseudo.'\''.$ligne[2].'\'3\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ligne[7].'\''.$ligne[8];
    $fp=fopen('connectes/'.$_SESSION['id'].'.txt','w+');
    fputs($fp,$fichier_final);
    fclose($fp);
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    }
    //-----------------------------------
    //BANNIT UN PSEUDO
    //UTILISATION : /ban pseudo|motif
    //-----------------------------------
    elseif(substr($message,0,4)=== '/ban')
    {
    $message=substr($message,5,str len($message));
    $pseudo=htmlentities(trim($mes sage));

    $tab=explode('|',$pseudo);
    $pseudo=$tab[0];
    if(isset($tab[1]))
    {
    $motif=$tab[1];
    }
    else
    {
    $motif=' motif non pr&eacute;cis&eacute;';
    }

    $len=strlen($pseudo);

    if($len>=1)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    if($_SESSION['droits']>1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($ligne[3]<$_SESSION['droits'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a banni '.$pseudo.' du salon pour le motif suivant : '.$motif.'.</p>'."\r\n".'<p class="banissement">'.$pseudo. '</p>');
    $mysql->requete("UPDATE membres SET ban=1 WHERE pseudo='".$pseudo."'",0,1,1);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    //-----------------------------------------------------
    //VERIFIE DANS LA BASE SI LE PSEUDO PEUT ACCEDER AU
    //DROIT DE MODERATEUR POUR BANNIR LE PSEUDO (SANS ETRE
    //CONNECTE EN TANT QU'ADMIN)
    //-----------------------------------------------------
    else
    {
    $mysql->requete("SELECT droits FROM membres WHERE pseudo='".$_SESSION['login']."'",0,1,0);

    $r=$mysql->fetch_row(0);

    if($mysql->nbre_lignes(0)===0 OR $r[0]<2)
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    $mysql->deconnect();
    }
    else
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a banni '.$pseudo.' du salon pour le motif suivant : '.$motif.'.</p>'."\r\n".'<p class="banissement">'.$pseudo. '</p>');
    $mysql->requete("UPDATE membres SET ban=1 WHERE pseudo='".$pseudo."'",0,0,1);
    }
    }
    }
    }
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  15. #12
    MagStellon

    Re : Problème avec un Script pour Tchat

    Suite 2 de ajouter_message.php :

    //-----------------------------------
    //DEBANNIT UN PSEUDO
    //UTILISATION : /deban pseudo
    //-----------------------------------
    elseif(substr($message,0,6)=== '/deban')
    {
    $message=substr($message,7,str len($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;

    if($_SESSION['droits']>1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    if($ligne[3]<$_SESSION['droits'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a d&eacute;banni '.$pseudo.' du salon.</p>'."\r\n".'<p class="debanissement">'.$pseud o.'</p>');
    $mysql->requete("UPDATE membres SET ban=0 WHERE pseudo='".$pseudo."'",0,1,1);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    //-----------------------------------------------------
    //VERIFIE DANS LA BASE SI LE PSEUDO PEUT ACCEDER AU
    //DROIT DE MODERATEUR POUR BANNIR LE PSEUDO (SANS ETRE
    //CONNECTE EN TANT QU'ADMIN)
    //-----------------------------------------------------
    else
    {
    $mysql->requete("SELECT droits FROM membres WHERE pseudo='".$_SESSION['login']."'",0,1,0);

    $r=$mysql->fetch_row(0);

    if($mysql->nbre_lignes(0)===0 OR $r[0]<2)
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    $mysql->deconnect();
    }
    else
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' a d&eacute;banni '.$pseudo.' du salon.</p>'."\r\n".'<p class="debanissement">'.$pseud o.'</p>');
    fclose($fp);
    $mysql->requete("UPDATE membres SET ban=0 WHERE pseudo='".$pseudo."'",0,0,1);
    }
    }
    }
    }
    //-----------------------------------
    //MET A JOUR LA VILLE
    //UTILISATION : /update ville ville
    //-----------------------------------
    elseif(substr($message,0,13)== ='/update ville')
    {
    $message=substr($message,14,st rlen($message));
    $ville=htmlentities(trim($mess age));
    $len=strlen($ville);

    if($len>=1 AND !eregi("[\^'?\\]",$ville))
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$_SESSION['login'])
    {
    ajout_chat('<p class="chat">'.$_SESSION['login'].' r&eacute;side d&eacute;sormais &agrave; '.$ville.'.</p>'."\r\n".'<p class="changement_ville">:'.$_ SESSION['id'].' '.$ville.'</p>');

    $fichier_final=$ligne[0].'\''.$ligne[1].'\''.$ligne[2].'\''.$ligne[3].'\''.$ligne[4].'\''.$ligne[5].'\''.$ligne[6].'\''.$ville.'\''.$ligne[8];
    $fp=fopen('connectes/'.$fichier,'w+');
    fputs($fp,$fichier_final);
    fclose($fp);

    if($_SESSION['enregistre']===1)
    {
    if(get_magic_quotes_gpc()===0)
    {
    $ville=addslashes($ville);
    }
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET ville='".$ville."' WHERE pseudo='".$_SESSION['login']."'",0,1,1);
    }
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('La ville doit faire plus de un caract&egrave;re et elle ne doit pas comporter de caract&egrave;s sp&eacute;ciaux.');
    }
    }
    //-----------------------------------
    //AJOUTE UN ADMIN SUR LA LISTE
    //UTILISATION : /update admin pseudo
    //-----------------------------------
    elseif(substr($message,0,13)== ='/update admin')
    {
    if($_SESSION['droits']>2)
    {
    $message=substr($message,14,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1 AND !eregi("[\^'?\\]",$pseudo))
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET droits=3 WHERE pseudo='".$pseudo."'",0,1,0);
    if(mysql_affected_rows()===1)
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' a &eacute;t&eacute; ajout&eacute; &agrave; la liste des administrateurs.</p>');
    }
    else
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' n\'est pas enregistr&eacute; ou est d&eacute;j&agrave; administrateur.</p>');
    }
    $mysql->deconnect();
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('Le pseudo doit faire plus de un caract&egrave;re et ne doit pas comporter de caract&egrave;s sp&eacute;ciaux.');
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    //AJOUTE UN MODERATEUR SUR LA LISTE
    //UTILISATION : /update moderateur pseudo
    //-----------------------------------
    elseif(substr($message,0,18)== ='/update moderateur')
    {
    if($_SESSION['droits']>2)
    {
    $message=substr($message,19,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1 AND !eregi("[\^'?\\]",$pseudo))
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET droits=2 WHERE pseudo='".$pseudo."'",0,1,0);
    if(mysql_affected_rows()===1)
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' a &eacute;t&eacute; ajout&eacute; &agrave; la liste des mod&eacute;rateurs.</p>');
    }
    else
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' n\'est pas enregistr&eacute; ou est d&eacute;j&agrave; mod&eacute;rateur.</p>');
    }
    $mysql->deconnect();
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('Le pseudo doit faire plus de un caract&egrave;re et ne doit pas comporter de caract&egrave;s sp&eacute;ciaux.');
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  16. Publicité
  17. #13
    MagStellon

    Re : Problème avec un Script pour Tchat

    Suite 3 de ajouter_message.php :

    //AJOUTE UN VOICE SUR LA LISTE
    //UTILISATION : /update voice pseudo
    //-----------------------------------
    elseif(substr($message,0,13)== ='/update voice')
    {
    if($_SESSION['droits']>2)
    {
    $message=substr($message,14,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1 AND !eregi("[\^'?\\]",$pseudo))
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET droits=1 WHERE pseudo='".$pseudo."'",0,1,0);
    if(mysql_affected_rows()===1)
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' a &eacute;t&eacute; ajout&eacute; &agrave; la liste des personnes voic&eacute;es</p>');
    }
    else
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' n\'est pas enregistr&eacute; ou est d&eacute;j&agrave; voic&eacute;.</p>');
    }
    $mysql->deconnect();
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('Le pseudo doit faire plus de un caract&egrave;re et ne doit pas comporter de caract&egrave;s sp&eacute;ciaux.');
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    //ENLEVE TOUS LES DROITS DU PSEUDO
    //JUSQU'A NOUVELLE UPDATE
    //UTILISATION : /update touriste pseudo
    //-----------------------------------
    elseif(substr($message,0,16)== ='/update touriste')
    {
    if($_SESSION['droits']>2)
    {
    $message=substr($message,17,st rlen($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1 AND !eregi("[\^'?\\]",$pseudo))
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET droits=0 WHERE pseudo='".$pseudo."'",0,1,0);
    if(mysql_affected_rows()===1)
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' n\'a d&eacute;sormais plus aucun droit.</p>');
    }
    else
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' n\'est pas enregistr&eacute; n\'a d&eacute;j&agrave; plus aucun droit.</p>');
    }
    $mysql->deconnect();
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('Le pseudo doit faire plus de un caract&egrave;re et ne doit pas comporter de caract&egrave;s sp&eacute;ciaux.');
    }
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    //-----------------------------------
    //AJOUTE UN VOICE SUR LA LISTE
    //UTILISATION : /update voice pseudo
    //-----------------------------------
    elseif(substr($message,0,13)== ='/update passe')
    {
    if($_SESSION['enregistre']===1)
    {
    $message=substr($message,14,st rlen($message));
    $passe=htmlentities(trim($mess age));
    $len=strlen($passe);

    if($len>=2)
    {
    include './classe_mysql.inc.php';

    $mysql=new mysql;
    $mysql->requete("UPDATE membres SET passe=md5('".$passe."') WHERE pseudo='".$_SESSION['login']."'",0,1,1);

    ajout_chat('<p class="private">:'.$_SESSION['id'].' Votre mot de passe est d&eacute;sormais '.$passe.'</p>');
    }
    else
    {
    pas_droit('Le mot de passe doit faire plus de deux caract&egrave;res');
    }
    }
    else
    {
    pas_droit('Vous devez &ecirc;tre enregistr&eacute; pour pouvoir changer votre mot de passe.');
    }
    }
    //--------------------------------------------------------------------------------
    //COMMANDES MODIFIANT LA CONFIGURATION DU CHAT
    //--------------------------------------------------------------------------------
    elseif($message==='/options voice on' OR $message==='/options voice off' OR $message==='/options users on' OR $message==='/options users off')
    {
    include './fonctions_admin.php';
    }
    //-----------------------------------
    //WHOIS
    //UTILISATION : /whois pseudo
    //-----------------------------------
    elseif(substr($message,0,6)=== '/whois')
    {
    $message=substr($message,7,str len($message));
    $pseudo=htmlentities(trim($mes sage));
    $len=strlen($pseudo);

    if($len>=1)
    {
    if($_SESSION['droits']>1)
    {
    $dossier=opendir('connectes/');
    while(($fichier=readdir($dossi er))!==FALSE)
    {
    if($fichier!=='.' AND $fichier!=='..')
    {
    $ligne=explode('\'',file_get_c ontents('connectes/'.$fichier));

    if($ligne[1]===$pseudo)
    {
    ajout_chat('<p class="private">:'.$_SESSION['id'].' '.$pseudo.' est identifi&eacute; par l\'adresse IP suivante : '.$ligne[8].'</p>');
    break;
    }
    }
    }
    closedir($dossier);
    }
    else
    {
    pas_droit('Vous n\'avez pas les droits n&eacute;cessaires pour effectuer cette action.');
    }
    }
    }
    //------------------------------------------------
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  18. #14
    MagStellon

    Re : Problème avec un Script pour Tchat

    Un fichier lire_messages.php :

    <?php
    session_start();

    //---------------------------------
    //LE PSEUDO N'EXISTE PAS
    //---------------------------------
    if(!isset($_SESSION['login']))
    {
    header('location:index.php?con firm=2');
    exit;
    }

    include './fonctions.php';

    echo afficher_messages();

    ?>
    Une théorie nouvelle ne triomphe jamais. Ce sont ses adversaires qui finissent par mourir.

  19. #15
    jgol

    Re : Problème avec un Script pour Tchat

    Bonjour,

    J'ai le même script et j'ai un problème avec le fichier "connectes.php". Il me met une erreur sur "opendir" en ligne 32.

    As-tu trouvé ce problème aussi ?
    et
    As-tu une solution ?

    Le tchat fonctionne-t-il bien chez toi ?

    Merci de ta réponse

    Jgol

Sur le même thème :

Discussions similaires

  1. Script chez octave : programme avec chaîne de caractères.
    Par julien_4230 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 21/03/2007, 09h58
  2. tchat avec les grandes écoles pour trouver une formation
    Par kharal dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 12/03/2007, 13h24
  3. script pour accès membre
    Par Lucie10 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 23/06/2006, 16h41
  4. Pb avec script .vbs
    Par ilcomendente dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/04/2006, 09h55
  5. Probleme de code; sh script
    Par Evil.Saien dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/10/2005, 16h28