sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010
-
11 juil. 2007 à 17:04
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
12 juil. 2007 à 14:49
salut,
J'ai un gros problème. Je viens de développer un version de chat adapté à une aide en ligne. en local, tout marche bien.
Mon problème est dès que j'ai mis ce module sur le serveur, le module ne marche plus. J'ai fais des test et j'ai remarqué que ça stoppe lors de l'envoi. Donc pour résumer, il n'y a pas d'envoi de requettes vers le fichier .php.
Si qlq un peut m'aider.
merci
sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010 12 juil. 2007 à 14:43
salut,
j'ai trouvé le solution à mon pb. Je vous explique. C en fait un problème de cast. Dans la base, j'ai nommé ma table Room et dans la requette, je sais pas pouquoi, je l'ai nommé ROOM.
La page php me renvoi un listing de message en xml mais il y a une balise vide ce qui a bloqué l'ajax lors de la lecture.
Maintenant que je l'ai changé, ça marche.
merci pour tout.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 juil. 2007 à 17:29
Bonjour,
sans billes ( sources, messages d'erreurs.. ) pas évident !
c'est souvent du _ à des noms de fichiers où les Majuscules/minuscules
ne sont pas resptectées ( alors qu'en local, sous Windows, pas d'importance )
_ un paramétrage différent de php.ini
_ d'une fonctionnalité autorisée en local, pas sur le site
...
sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010 12 juil. 2007 à 08:46
je vous explique:
- tout d'abord, moi même j'ai pas eu d'erreur affiché ni dans le code javascript ni dans celui de php.
- j'ai passé les paramètres ma page .php et ça marche correctement puisqu'elle afiche un listing XML comme je le souhaite.
- Cmme je l'ai di précédamment, j'ai fais des "alert" pour savoir ou ça bloque et j'ai conclu que c juste après la requette d'envoi. Donc normalment la création avec "XMLHttpRequest" ou "ActiveXObject" marche puiqu'il ne sort pas de pb.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 juil. 2007 à 08:52
>>"ActiveXObject" marche puiqu'il ne sort pas de pb.
et bien voilà....
tu as les droits pour utiliser cet ActiveX en local, pas sur le site.
( c'est d'ailleurs très très rare qu'un ActiveX soit autorisé sur un site,
sauf si on est son propre hébergeur )
et ça doit donner une erreur.
o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o
| Avec | et mieux : <label style="color: rgb(0, 128, 0);">Télécharger</label> |
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~|
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug |
| | Outils / Console d'erreurs | |
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~|
|<label style="color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options Ile Debogger IE |
| | dans la liste, sous "Navigation" : décocher | |
| | ° Afficher une notification de chaque erreur de script | |
| | ° Désactiver le débogage de Scripts (autres applications)| |
| | ° Désactiver le débogage de Scripts (Internet Explorer) | |
o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o
sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010 12 juil. 2007 à 09:13
je vous met mon code de connexion:
function createXmlHttpRequestObject()
{
// will store the reference to the XMLHttpRequest object
var xmlHttp;
// this should work for all browsers except IE6 and older
try
{
// try to create XMLHttpRequest object
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
// assume IE6 or older
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
// try every prog id until one works
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
// try to create XMLHttpRequest object
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e)
{}
}
}
// return the created object or display an error message
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
Je l'ai trouvé sur un site et ça m'a plus car il se cnnecte en testant sur la version du navigateur. si maintenant vous me dites que ActiveXObject ne fonctionne pas sur un serveur, alors y'a-t-il une alternative à l'instruction suivante:
sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010 12 juil. 2007 à 10:39
je l'ai testé en local et ça marche. Sur le serveur ça ne marche pas.
Je suis sûr que c un pb lié à ajax. Je vous explique. Mon module est composé en plusieurs fichier.
- le fichier html qui contient la présentation.
- un fichier script qui contient toute les fct javascript et les appels d'ajax.
- un fichier php qui execute les requete provenant des appels ajax et retourne une liste xml.
- un fichier style
bon toute cette intro, c pour vous dire que j'ai testé ma page php (contenant les fct). je lui ai passé les paramètres et ça marche sur le serveur.
Le problème est donc que le l'appel ajax n'abouti pas. voici un bout de code:
// retrieve the username and color from the page
var currentUser = document.getElementById("userid").value;
var currentRoom = document.getElementById("roomid").value;
//var currentColor = document.getElementById("color").value;
// only continue if xmlHttpGetMessages isn't void
if(xmlHttpGetMessages)
{
try
{
// don't start another server operation if such an operation
// is already in progress if (xmlHttpGetMessages.readyState 4 || xmlHttpGetMessages.readyState 0)
{
// we will store the parameters used to make the server request
var params = "";
// if there are requests stored in queue, take the oldest one
if (cache.length>0)
params = cache.shift();
// if the cache is empty, just retrieve new messages
else
params = "mode=RetrieveNew&date="+ CurrentDate +"&clientid=" + currentUser + "&operatorid=" + currentRoom;
// call the server page to execute the server-side operation
xmlHttpGetMessages.open("GET", "LiveHelpFunctions.php?"+params, true);
xmlHttpGetMessages.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpGetMessages.onreadystatechange = handleReceivingMessages;
xmlHttpGetMessages.send(null);
}
else
{
// we will check again for new messages
setTimeout("requestNewMessages();", updateInterval);
}
}
catch(e)
{
displayError(e.toString());
}
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 juil. 2007 à 11:02
des pistes / remarques ... ?
1° ...
if (cache.length>0) sûr
params = cache.shift(); de
else ça ?
...
2°
if(xmlHttpGetMessages)
{ xmlHttpGetMessages.onreadystatechange = function() ne faire le boulot
{ try que si l'état
{ // don't start another server change
3°
xmlHttpGetMessages.open("GET", "LiveHelpFunctions.php?"+params, false);
synchrone ou asynchrone.
sidommou
Messages postés27Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention29 novembre 2010 12 juil. 2007 à 11:21
désolé pour ma maladresse.
Je vous explique
cacheest un tableau qui contient les requettes. En effet, chaque seconde, on va voir s'il y a des requettes en file d'attente
s'il y a un post d'un message par exemple. d'où le cache.shift();
sinon on prend la requette actuelle.
pour les autres, oui j'en suis sur. icomme c chaque seconde qu'il execute la fct, alors il n'exute la requette que si l'état change et que c libre.