11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Pour mon site j'ai un chat mais il ne fonctionne pas, regardez un apperçu :
upload/3681-bugchat.png

Et voilà mon code :
<?php
   @session_start();

include('fonctions.php');
connexionbdd();
actualiser_session();

    $page_name = 'testchat.php';
   
   
    if (isset($_GET['action'])) {
   
    switch ($_GET['action']) {
   
    case "nouveau_message":
	$requete = mysql_query("SELECT * FROM chat_msg ORDER BY time DESC LIMIT 0,15");
	while($data = mysql_fetch_assoc($requete)) {
	echo '<span style="color:#0080AF;">['.date('H:i', $data['time']).'] 
	<a href="user.php?action=consulter&amp;m='.$data['author'].'" target="_blank">'.$data['author'].'</a> ></span> <strong>'.$data['message'].'</strong><br />
    ';
	}
	break;
	
	case "poster":
    mysql_query("INSERT INTO chat_msg VALUES(',', '".$_SESSION['membre_pseudo']."', '".time()."', '".$_POST['message']."')");
	
    break;
   
    }
    }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>Chat</title>
    <style type="text/css">
   
    body {
    font:Verdana;
    font-size:12px;
    background-color:#848484;
    font-family: Verdana;
    }
    
    #chat {
    width:810px;
    margin-top:160px;
    position:absolute;
    margin-left: -405px;
    left: 50%;
   
    }
   
    .UserOnline {
    width:150px;
    height:300px;
    float:right;
    background-color: #FFFFFF;
    color : #0080AF;
    border:none;
    }
   
   
    #utilisateurs {
    width:150px;
    height:300px;
    float:right;
    overflow:hidden;
    border: 1px solid #000000;
    background-color: #FFFFFF;
    }
   
    #texte {
    width:650px;
    height:300px;
    overflow-y: auto;
    border: 1px solid #000000;
    background-color: #FFFFFF;
    color : #000000;
    }
    
     #message {
     height:17px;
     width:738px;
     margin-top:10px;
     background-color: #FFFFFF;
     color : #000000;
     }
     <!--
     {
    margin:0px;
    padding:0px;
    }
    
     li {
     margin-left:15px;
     }
    
     .menuitems{
     padding-left:15px;
     padding-right:10px;
     }
    
     p {
     margin-top: 0px;
     margin-bottom: 0px;
     line-height: 150%}
    
    
     input,textarea,select {
     border: 1px solid #FFFFFF;
    font-weight: bold;
    font-size: 10px;
     font-family: verdana;
	
     }
    
     input {
     border:1px solid #000000;
     }
    
    hr {
    color: #0093e6;
    background-color: #0093e6;
    height: 5px;
    }
   
    </style>
    <script language="javascript" type="text/javascript">
    var actualise = 1000; // temps entre chaque rechargement des messages
    
	function httprequest() // fonction nécessaires pour les requêtes Ajax
    {
     var xmlhttp=false;
     try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
     catch (e){
     try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
     catch (e) {xmlhttp = false;}
     }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); }
     return xmlhttp;
    }
    
    
         function envoyer()
     {
     var texte = document.getElementById('message').value;
     while(texte.indexOf("&") > 0 || texte.indexOf("+") > 0)
     {
     texte = texte.replace("&","%26");
     texte = texte.replace("+","%2B");
	 	 
     }
    
     // Envoi de la requete
     var envoyer = httprequest();
	 
     envoyer.open("POST", '<?php echo $page_name; ?>?action=poster', true);
     envoyer.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     envoyer.send('message='+texte);
	 document.getElementById('message').value='';

     }
	 
	 function Message()
    {
    var message = httprequest();
    message.open("GET","<?php echo $page_name; ?>?action=nouveau_message",true);
    message.onreadystatechange = function() {
    if (message.readyState == 4)
    {
    if(message.status == 200) { document.getElementById('texte').innerHTML = message.responseText;}
    }
    
    }
    message.send(null);
    setTimeout("Message()",actualise);
    
    }
        
	
    
    </script>
    </head>
    <body onLoad="Message();Utilisateurs();">
    <div id="chat">
    <?php
    if(isset($_SESSION['membre_pseudo'])) { ?>
    <form action="" method="" onSubmit="envoyer(); return false;">
    <input id="message" onKeyDown="if(this.value!='' && event.keyCode==13) { envoyer(); return false; }" maxleght="255" size="200">
    <input type="button" onClick="envoyer()" value="Envoyer"></form>
    <?php } else { echo'Vous devez être inscrit pour poster'; } ?>
    <div id='utilisateurs'></div>
    <div id='texte'>
       </div>
    <p>
    
    
    </p>
    </div>
    
    </body>
    </html>


Merci
Modifié par Mikachu (17 Dec 2009 - 01:30)
Salut,

Attention à ne pas afficher d'images géantes qui déforment le forum. Merci d'utiliser le bouton "créer une miniature" lorsque tu charge une image à partir du forum. Smiley cligne
Juste en passant, tu devrais remplacer :


<input id="message" onKeyDown="if(this.value!='' && event.keyCode==13) { envoyer(); return false; }" maxleght="255" size="200"> 
    <input type="button" onClick="envoyer()" value="Envoyer">


par ça :

<input id="message" maxlenght="255" size="200"> 
    <input type="submit" value="Envoyer">