cijez Posté 2 Mai 2007 Partager Posté 2 Mai 2007 Bonjour, Je débute en ajax mais avant je n'avais pas ce problème Le but de mon code : lors d'une inscription vérifier automatiquement si le pseudo choisi est disponible (comme lorsque l'on s'inscrit sur ce forum d'ailleurs) J'ai essayé de plusieurs manières notamment avec "prototype.js" que vous connaissez surement function dispo_user(pseudo){ send = "pseudo="+pseudo; var ajax = new Ajax.Updater ("message","dispo_user.php", { evalScripts:true, parameters: send, method:'POST', onComplete: onFinish() } ); function onFinish(){ }} j'ai essayé également de cette façon // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ reponse = xhr.responseText; document.getElementById('message').innerHTML = reponse; }else{ alert(xhr.responseText); } } // Appel de la page en méthode POST xhr.open("POST","dispo_user.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // envoi des arguments xhr.send("pseudo="+pseudo); (en définissant au préalable xhr) Les faits : en local sur mon PC cela fonctionne en local sur un MAC cela fonctionne aussi en ligne sur un serveur de celeonet.fr cela fonctionne aussi mais quand je mets en ligne sur le 60GP de ovh le serveur de destination cela me retourne une erreur 500 Après de multiple test j'ai découvert que c'est le xhr.status qui n'est pas égal à 200 mais à 500 d'où l'erreur ce qui m'étonne c'est que l'ajax est un code qui s'éxécute côté client même si je fais appelle à du php pour avoir ma réponse le serveur ne devrait pas poser de problème Si quelqu'un pouvait m'aider pour résoudre ce problème je l'en remerci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 2 Mai 2007 Partager Posté 2 Mai 2007 est ce que la page dispo_user.php est bien publiée? Lien vers le commentaire Partager sur d’autres sites More sharing options...
cijez Posté 2 Mai 2007 Auteur Partager Posté 2 Mai 2007 oui j'ai testé les pages indépendamment j'ai testé également en mettant exprès une mauvaise url du php et il me retourne bien que le fichier n'est pas trouvé j'ai fait des echo et des alert un peu partout et il s'avère qu'en fait xhr.status = 500 et que donc le script php ne s'exécute pas si je ne me trompe pas j'ai cherché sur google et les forums mais je n'ai pas trouvé de personne ayant le même problème que moi avec ovh est-ce que cela peut venir de la version de php ou celle de mysql qui est sur mon serveur ? même si c'est une petite fonctionnalitée j'essai de la résoudre ou dans trouver la cause car je compte mettre de l'ajax un peu partout sur le site pour notamment m'entrainer à l'utiliser Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fuleran Posté 2 Mai 2007 Partager Posté 2 Mai 2007 A mon avis ton problème vient du script PHP. Est ce que tu l'a testé directement (appel dans le navigateur) ? Et à quoi ressemble-t-il ? Benoit Lien vers le commentaire Partager sur d’autres sites More sharing options...
cijez Posté 2 Mai 2007 Auteur Partager Posté 2 Mai 2007 oui je l'ai testé directement je rappel que mon code fonctionne en local et sur un autre hébergeur en ligne if(isset($_POST["val"])){ $pseudo = trim($_POST["val"]); $select = mysql_query("SELECT id_user FROM user WHERE pseudo='$pseudo'"); $rows = mysql_num_rows($select); if($rows != 0){ echo "Ce pseudo n'est pas disponible."; }else{ echo "Ce pseudo est disponible."; } } à un moment j'ai même fait seulement un echo sans rien d'autres dans la page php pour voir si cela ne venait pas de mon php je crois avoir fait tous les tests possibles mis à part vérifier la version exacte de php je sais juste que mon serveur ovh supporte php 4 et 5 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fuleran Posté 2 Mai 2007 Partager Posté 2 Mai 2007 oui je l'ai testé directement Donc on élimine les problèmes de connections à la base de donnée. si tu fais un phpinfo sur ta page, tu obtiens quoi ? Normalement tu es en PHP4 (extension php). Lien vers le commentaire Partager sur d’autres sites More sharing options...
cijez Posté 2 Mai 2007 Auteur Partager Posté 2 Mai 2007 j'ai la version 4.4.4 mais après ton 1er message j'ai fait d'autres tests en plaçant mon php dans d'autres endroits comme à la racine ou un autre dossier et cela fonctionne Donc au final cela ne semble pas venir de ajax ni de php mais un problème de dossier sur mon serveur --> le php ne s'éxécute pas dans tel ou tel dossier j'ai vérifié les droits des dossiers ils semblent bon, je suis perdu là Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fuleran Posté 2 Mai 2007 Partager Posté 2 Mai 2007 Si je me souviens bien il y a une limitation en javascript pour appeler des pages sur le serveur. Il faut que ces dernières soient dans le même domaine. Par contre il ne devrait pas y avoir de problème dans les dossiers. Que ton PHP ne s'exécute pas dans tel ou tel dossier c'est "space"... c'était quoi ton dossier ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
cijez Posté 2 Mai 2007 Auteur Partager Posté 2 Mai 2007 un dossier "fonction" où je pensais mettre mes pages php externe j'ai créé les dossiers avec dreamweaver ça peut venir de là ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fuleran Posté 2 Mai 2007 Partager Posté 2 Mai 2007 Je ne vois pas en quoi dreamweaver change quelque chose. Peut-être que le dossier "fonction" est utilisé par OVH... bizarre bizarre... Lien vers le commentaire Partager sur d’autres sites More sharing options...
cijez Posté 2 Mai 2007 Auteur Partager Posté 2 Mai 2007 quoi qu'il en soit, au final cela ne semble pas venir d'un problème de dev donc je vous laisse tranquille Merci de votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant