Problème lors de la mise sur serveur

[Résolu]
Signaler
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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

12 réponses

Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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
             ...

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Si c'est en AJAX, fait attention à la publicité forcé, elle se rajoute parfois à chaque requête ...
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>"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









<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

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:

xmlHttp = new ActiveXObject(XmlHttpVersions[i]);

merci pour tout.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
celui la n'est pas en cause....
il est utilisé coté client.

mais le script me semble curieux....

essayer celui ci-dessous, si ça ne fonctionne toujours pas : l'erreur est ailleurs !

function createXmlHttpRequestObject()
{   var x;
    try           {    x = new ActiveXObject("Microsoft.XMLHTTP");    }
    catch (e)     {    try           {    x = new ActiveXObject("Msxml2.XMLHTTP");    }
                       catch (e)     {    try          {    x = new XMLHttpRequest();    }
                                          catch (e)    {    x=false;    }
                                     }
                  }
    return x;
}

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

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());
  }
 }
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
des pistes / remarques ... ?

1°    ...
    if (cache.length>0)                        sûr
     params = cache.shift();                de
    else                                                ça ?
    ...


 if(xmlHttpGetMessages)
 {    xmlHttpGetMessages.onreadystatechange = function()         ne faire le boulot
           {       try                                                                                  que si l'état
                    {     // don't start another server                                   change









    xmlHttpGetMessages.open("GET", "LiveHelpFunctions.php?"+params, false);
    synchrone ou asynchrone.








<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
à propos de mes pistes...
1° si tu es sûr... nous comme on n'a pas tout. mais ça me semble... disons... curieux.
2° je te proposais d'ajouter



xmlHttpGetMessages
.onreadystatechange = function() 
3° à voir, à tester quand même



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
   parce que nous, on n'avait plus d'idées... ( et on ne pouvait pas résoudre )
            nickel si ça baigne et merci de l'avoir dit.
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />