[AJAX] Mon script php ne s'execute pas tout le temps
Bonjour
Je commence tout juste l'AJAX et je rencontre un problème pour mon tout premier essaie.
Je dispose de 4 fichiers:
- test.php qui appel ma fonction javascript me permettant d'accéder à mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<!--du html-->
<body>
<script language="javascript">
callScript("page.php","mot=blbla");
alert ("1"); // juste pour vérifier quand j'ai fini
</script>
<?php
// juste pour faire jolie ou en cas de besoin, il y a rien de php dans cette page mis à part des commentaires
?>
<!--encore du html--> |
Dans un autre fichier, il y a ma fonction callScript() que j'ai récupérer dans un tuto sur le net :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function callScript ( scriptName, args ){
var xhr_object = null;
// Construction de lobjet XMLHttpRequest selon le type de navigateur
if(window.XMLHttpRequest)
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject)
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else {
// XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", scriptName, true);
// Définition du comportement à adopter sur le changement détat de lobjet XMLHttpRequest
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
//alert(xhr_object.responseText); // DEBUG MODE
//document.write(xhr_object.responseText);
eval(xhr_object.responseText);
}
return xhr_object.readyState;
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
alert("2");// encore pour vérifier ou je suis
// Envoi de la requête
xhr_object.send(args);
} |
Ensuite il y a page.php qui devrait normalement être exécuté. Ce script est la pour s'assurer que le mot entrer en paramètre existe bien pour cela il utilise une fonction présent sur le 4ème fichier. Cette fonction renvoie true si le mot existe et false s'il n'existe pas.
Mon problème vient du fait que mon script page.php ne s'exécute que quand le mot entré en paramètre est correcte dans le cas contraire il ne se passe presque rien : j'ai les 2 alert de test.php et de ma fonction qui s'exécute et c'est tout.
Voici ce que contient ma page.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php
echo "alert('3');"; // Encore une vérification qui ne s'affiche pas quand mon mot est incorrecte
// include
include "fonction.php"; // contient ma fonction qui renvoie true ou false
include "fonction2.php"; // fonction vérifiant plusieurs élément de sécurité
// Récupération du mot
$mot=injection($_POST['mot']); //injection est une fonction présente dans fonction2.php
// Vérification que le mot est correcte
if(verifmotexiste($mot)){
echo "alert('Le mot que vous avez choisi existe');";
}
else{
echo "alert('Le mot que vous avez choisi n'existe pas');";
}
?> |
Pour tester, j'ai appeler directement ce script dans mon navigateur en changeant quelques éléments :
- ma variable $mot prend comme valeur un texte taper directement dans le script
- en mettant dans mes echo uniquement le contenu de mes alert.
Avec cet essai, j'ai bien un de mes deux messages qui s'affiche selon si mon mot existe ou pas.
Du coup, je ne sais pas d'où peut venir mon erreur. Es-ce que vous avez une idée ?
Merci d'avance pour l'aide que vous pourrez m'apporter.