Chat
Résolu
Utilisateur anonyme
-
Konseil Messages postés 643 Date d'inscription Statut Membre Dernière intervention -
Konseil Messages postés 643 Date d'inscription Statut Membre Dernière intervention -
Salut, je suis entrain de faire un petit chat pour mon site, pour ça j'ai pris celui de openclassroom, https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/tp-un-mini-chat J'ai copié collé les ligne de code, mais une erreur s'affiche quand je charge la page. Voilà l'erreur : http://hpics.li/24b3a53 J'y connais absolument rien en php et en mysql donc j'ai juste copié collé, je pense qu'il manque un endroit où stocker les message non ?
A voir également:
- Chat
- Coco chat - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Chat engine - Télécharger - Outils Internet
- Nouveau site coco chat - Forum Réseaux sociaux
- Chat tubidy - Télécharger - Outils Internet
4 réponses
Tu vas avoir besoin de créer 3 fichiers, je vais les poster ici, 1 par 1.
minichat.html
minichat.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<title>Teste d'un formulaire AJAX</title>
<head>
<style type="text/css">
.bordure{
border:1px solid red;
margin:5px;
padding:5px;
}
</style>
<script type="text/javascript" src="fonctions.js"></script>
</head>
<body>
<form method="post" id="monform">
Pseudo : <input type="text" name="pseudo" id="pseudo" value=""/><br/>
Message : <input type="text" name="message" id="message" value=""/><br/>
Envoyer : <input type="button" value="Go" onclick="teste_ajax()">
</form>
<div id="mondiv">La réponse sera affiché à la place de ce texte.</div>
</body>
</html>
fonctions.js
//Fonction d'instance permettant de vérifier si le navigateur supporte l'objet XMLHTTPRequest
function objet_XMLHttpRequest()
{
//On déclare une variable "mavariable" à null
var mavariable = null;
//Teste si le navigateur prend en charge les XMLHttpRequest
if (window.XMLHttpRequest || window.ActiveXObject){
// Si Internet Explorer alors on utilise les ActiveX
if(window.ActiveXObject){
//On teste IE7 ou supérieur
try{
mavariable = new ActiveXObject("Msxml2.XMLHTTP");
}
//Si une erreur est levée, alors c'est IE 6 ou inférieur
catch(e){
mavariable = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//Navigateurs récents (Firefox, Opéra, Chrome, Safari, ...)
else{
mavariable = new XMLHttpRequest();
}
}
//XMLHttpRequest non supporté par le navigateur
else{
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
//On retourne l'objet mavariable
return mavariable;
}
function teste_ajax(){
//On déclare une variable
var mavariable = objet_XMLHttpRequest();
//récupération des données
var pseudo = encodeURIComponent(document.getElementById("pseudo").value);
var message = encodeURIComponent(document.getElementById("message").value);
//Si le pseudo est vide
if(pseudo == ''){
//On lance une alert
alert('Pseudo vide!');
//On stop tout
return false;
}
//idem pour le message
if(message == ''){
alert('Message vide!');
return false;
}
//On assigne une fonction à la propriété onreadystatechange
mavariable.onreadystatechange = function(){
//Si l'attribut readyState renvoie 4 et que l'attribut status renvoie 200
if(mavariable.readyState == 4 && mavariable.status == 200){
//On affiche le résultat chargé dans l'attribut responseText qui est affiché dans un div nommé "mondiv"
document.getElementById("mondiv").innerHTML=mavariable.responseText;
//On vide le champ message
document.getElementById("message").value='';
}
};
//On déclare la méthode d'envoie
mavariable.open("POST","traitement.php",true);
//On assigne un header
mavariable.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//On envoie
mavariable.send("pseudo="+pseudo+"&message="+message);
}
//Fonction permettant de rafraichir le div "mondiv"
function refresh()
{
var xhr = objet_XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById("mondiv").innerHTML = xhr.responseText;
}
};
xhr.open("POST","tchat.txt", true);
xhr.send(null);
}
//On lance la fonction toute les secondes
setInterval("refresh()", 1000);
traitement.php
<?php
//Vérification des données
$pseudo = (isset($_POST["pseudo"])) ? $_POST["pseudo"] : NULL;
$message = (isset($_POST["message"])) ? $_POST["message"] : NULL;
//On créé une variable pour donner un nom au fichier
$fichier = "tchat.txt";
//On ouvre le fichier. Si il n'existe pas il sera créé automatiquement
$fichier_a_ouvrir = fopen ($fichier, "a+");
//On écrit dans le fichier
fwrite($fichier_a_ouvrir, '<div class="bordure">'.$pseudo.' : '.$message.'</div>');
//On ferme la connexion
fclose ($fichier_a_ouvrir);
//On ouvre le fichier en lecture
$fichier_a_ouvrir = fopen ($fichier, "r");
//On lit son contenu
$contenu_du_fichier = fgets($fichier_a_ouvrir, 1024);
//On affiche son contenu
echo $contenu_du_fichier;
//On ferme la connexion
fclose ($fichier_a_ouvrir);
?>
Tu dois aller dans le Control Panel de ton serveur et te rendre dans la gestion des bases de données, tu pourras créer un compte utilisateur et créer des bases de données.
Mais si tu veux pas te prendre la tête, tu peux stocker tes messages dans un fichier texte sans utiliser MySQL.
Créer un Mini Chat