Aller au contenu

Sujets conseillés

Posté

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

Posté

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

Posté

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

Posté

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

Posté
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).

Posté

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à :wacko:

Posté

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 ?

Posté

un dossier "fonction" où je pensais mettre mes pages php externe

j'ai créé les dossiers avec dreamweaver ça peut venir de là ?

Posté

Je ne vois pas en quoi dreamweaver change quelque chose. Peut-être que le dossier "fonction" est utilisé par OVH... bizarre bizarre...

Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...