coringan

Inscris le 21/09/2009 à 17:17
  • Signature
    Je fais ce qui me plaît, et ce que je fais me plaît !
  • Nombre de sujets
    27
  • Nombre de messages
    72
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

coringan
le 27/07/2013 à 14:37
Affichage dans une boucle while
var sendReq = getXmlHttpRequestObject();


Merci pour tous ces détails techniques, mais le problème d'affiche n'a pas été résolu.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 27/07/2013 à 14:33
Affichage dans une boucle while
C'est vrai pour le sendReq.
Il était là au début du JavaScript mais j'ai oublié de le copier.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 27/07/2013 à 04:36
Affichage dans une boucle while
Merci pour la réaction rapide LupusMic.

- Ce que je voudrais faire.
Afficher ma conversation du chat avec un contact vis-à-vis du numéro de ce dernier.

- Voici ce que je fais pour l'enregistrement du message d'une conversation.

Étape No 1
2 petites tables
Une première pour les contacts
CREATE TABLE contact (id_contact INT(5) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id_contact));

Une seconde pour les messages de la conversation
CREATE TABLE message (id_message INT(5) NOT NULL AUTO_INCREMENT,
expediteur INT(5),
destinataire INT(5),
message TEXT,
date_post DATETIME DEFAULT NULL,
PRIMARY KEY (id_message));


Étape No 2
Mon fichier central index.php (avec Ajax). À cette étape, tout se passe encore bien jusqu'à l'insertion du message dans la table.
<?php
// Connexion à la base de données
$connexion = mysql_connect ("localhost", "root", "") or die (mysql_error ());
$base = mysql_select_db ("chat") or die (mysql_error ());

// Récupérer mes contacts pour le listage
$req_mes_fav = mysql_query('SELECT * FROM contact ORDER BY id_contact DESC');
$num_fav = mysql_num_rows($req_mes_fav);

?>

<!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>TITRE</title>
<script language="JavaScript" type="text/javascript">

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.';
}
}

//Add a message to the chat server.
function sendChatText(id) {
if(document.getElementById('txt_message'+id).value == '') {
alert("You have not entered a message"+id);
return;
}
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'Contact.php?destinataire='+id, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var param = 'message=' + document.getElementById('txt_message'+id).value;
sendReq.send(param);
document.getElementById('txt_message'+id).value = '';
}
}

//Send a new message to the server and return false.
function blockSubmit(id) {
sendChatText(id);
return false;
}
</script>

</head>
<body>

<?php
// M'afficher une zone de saisie et d'affichage (DIV) par contact afin de communiquer avec ce dernier
while ($data_fav = mysql_fetch_array($req_mes_fav))
{
// Je voudrais afficher la page Contact.php dans ce div avec rafraichissement toutes les 2 secondes
echo '<div id="div_chat'.$data_fav['id_contact'].'" style="height: 300px; width: 500px; overflow: auto; background-color: #EEEEEE; border: 1px solid #DDDDDD;"> </div>
<form id="frm" name="frm" onsubmit="return blockSubmit('.$data_fav['id_contact'].');"><br />
<input type="text" id="txt_message'.$data_fav['id_contact'].'" style="width: 147px;" />
<input type="button" name="btn_chat" id="btn_chat" value="Envoyer" onclick="javascript:sendChatText('.$data_fav['id_contact'].');" />
</form>';
}

?>
</body>
</html>


Étape No3
Le fichier Contact.php
<?php // Si un message est envoyé, l'enregistrer
if(isset($_POST['message']) && $_POST['message'] != '')
{
$moi = 'expediteur';
$message = mysql_real_escape_string(utf8_decode($_POST['message']));

mysql_query("INSERT INTO message(expediteur, destinataire, message, date_post)
VALUES('$moi', '".$_GET['destinataire']."', '$message', NOW())");
}

// Sélectionner les messages du chat
$req_cht = mysql_query("SELECT * FROM message WHERE
(((expediteur = '".$moi."') AND (destinataire = '".$_GET["destinataire"]."')) OR
((expediteur = '".$_GET["destinataire"]."') AND (destinataire = '".$moi."'))) ORDER BY id_message DESC");

// Listage de la conversation (table message)
while($data = mysql_fetch_array($req_cht))
{
// Affichage formaté de expediteur, destinataire, message et date_post
}
php ?>


- Le résultat est que je ne parviens pas à faire un affichage instantanné avec rafraichissement.

Merci une fois de plus.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 26/07/2013 à 23:00
Affichage dans une boucle while
Bonjour à tous,

je voudrais developer un chat avec une fenêtre de conversation unique pour chaque contact (dans un while en PHP). La gestion des input et out put se faisant en AJAX à l'instar de celui-ci, je l'ai trouvé sur le net.

*** INPUT ***
function sendChatText() {
if(document.getElementById('txt_message').value == '') {
alert("You have not entered a message");
return;
}
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sendReq.onreadystatechange = handleSendChat;
var param = 'message=' + document.getElementById('txt_message').value;
param += '&name=Ryan Smith';
param += '&chat=1';
sendReq.send(param);
document.getElementById('txt_message').value = '';
}
}

*** OUT PUT ***
function handleReceiveChat() {
if (receiveReq.readyState == 4) {
var chat_div = document.getElementById('div_chat');
var xmldoc = receiveReq.responseXML;
var message_nodes = xmldoc.getElementsByTagName("message");
var n_messages = message_nodes.length
for (i = 0; i < n_messages; i++) {
var user_node = message_nodes[i].getElementsByTagName("user");
var text_node = message_nodes[i].getElementsByTagName("text");
var time_node = message_nodes[i].getElementsByTagName("time");
chat_div.innerHTML += user_node[0].firstChild.nodeValue + '&nbsp;';
chat_div.innerHTML += '<font class="chat_time">' + time_node[0].firstChild.nodeValue + '</font><br />';
chat_div.innerHTML += text_node[0].firstChild.nodeValue + '<br />';
chat_div.scrollTop = chat_div.scrollHeight;
lastMessage = (message_nodes[i].getAttribute('id'));
}
mTimer = setTimeout('getChatText();',2000); //Refresh our chat in 2 seconds
}
}


AFFICHAGE DANS LE &lt;DIV&gt; SUIVANT
<div id="div_chat"></div>


Je réussi à récupérer et à insérer les données de la manière suivante :
function sendChatText(id) {
if(document.getElementById('txt_message'+id).value == '') {
alert("You have not entered a message"+id);
return;
}
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sendReq.onreadystatechange = handleSendChat;
var param = 'message=' + document.getElementById('txt_message'+id).value;
param += '&name='+id;
param += '&chat=1';
sendReq.send(param);
document.getElementById('txt_message'+id).value = '';
}
}

<div id="div_chat+id"></div>

J'aurais pu les afficher autrement, mais le refresh ne fonctionne pas.

Comment afficher les données correspondant à chaque contact ?
Si quelqu'un voit ce que je voudrais dire, votre aide me sera vraiment salvatrice.

Merci.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 03/06/2011 à 04:41
Réduction de l'image avant enregistrement
Enregistrer les données dans une base de données et les images déjà réduites dans un dossier comme ce qui suit.

<?php 
$Nom_image = $_FILES['photo']['name'];
$Taille_image = $_FILES["photo"]["size";
$Type_image = $_FILES['photo']['type'];
$Taille_fichier = filesize($_FILES['photo']['tmp_name']);
$Dossier = "Photos/".$Nom_image;
$Fichier = basename($Nom_image);
$Photo = addslashes($Fichier);

copy($_FILES['photo']['tmp_name'], $Dossier);

$sql = 'INSERT INTO Matable VALUES("'.$Nom_image.'", "'.$Taille_image.'", "'.$Type_image.'", "'.$Photo.'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 02/06/2011 à 06:21
Réduction de l'image avant enregistrement
Bonjour,

J’aimerais réduire la taille d’une image avant de l’enregistrer.
PHP et MySql.
Si quelqu’un peut me venir en aide avec plaisir, merci.
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 22/12/2010 à 00:37
Comment tronquer un mot du TextField en PHP ?
Bonjour à tous,

J’ai un TextField de plusieurs lignes et je voudrais empêcher la saisie des mots de plus de 15 caractères dans ce TextField.
Exemple, l’utilisateur s’amuse à saisir ceci :
Qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
Comment éviter ça ?
Merci
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 07/11/2010 à 16:01
Pré visualiser une image avant le upload
Merci Moogli mais je ne comprends rien du tout.
Est ce que je peux avoir une idée de ce qui se passe pratiquement avec ce mécanisme.
Quel est le code ?
Je suppose qu'il s'agit de un peu de Js et de PHP.
Je fais ce qui me plaît, et ce que je fais me plaît !
LoadingChargement en cours