[AJAX] problème d'etat...

problème d'etat... [AJAX] - HTML/CSS - Programmation

Marsh Posté le 15-04-2013 à 17:12:16    

Bonjour,
 
J'ai un soucis avec un bout de code AJAX :
j'ai besoin à chaque click d'un utilisateur de le tracer, donc j'ai fait une petite fonction ajax qui appelle un php qui se charge d'inserer en bdd les stats
 
Le js :
 

Code :
  1. function add_stat(borne, table, ID, nom, id_parent) {
  2.     var xhr = XMLHttpRequest();
  3.     xhr.onreadystatechange = function() {
  4.         if ((xhr.readyState == 4 )&& (xhr.status == 200 || xhr.status == 0)) {
  5.             alert(xhr.responseText);
  6.         };
  7.     };
  8.      
  9. xhr.open("GET", "include/addstats.php?borne="+borne+"&table="+table+"&ID="+ID+"&nom="+nom+"&ID_parent="+id_parent, true);
  10. xhr.send(null);
  11. }


 
le php (je pense pas que se soit utile)

Code :
  1. <?php
  2. header("Content-Type: text/plain" );
  3. require_once ('../lib/BDD_fonctions.php') ;
  4. $bdd = BDD_connect() ;
  5. // Test de la validité des informations
  6. if (isset($_GET['table']) and ($_GET['table'] == "details" or $_GET['table'] == "pages" ) and isset($_GET['ID']) and $_GET['ID'] != "" ) {
  7. if ($_GET['table'] == "details" ) {
  8.  $bdd->query('INSERT INTO  `stat_details` (`ID_details`, `borne`) VALUES ( \''.$_GET['ID'].'\',  \''.$_GET['borne'].'\')') ;
  9.  echo 'details : INSERT INTO  `stat_details` (`ID_details`, `borne`) VALUES ( \''.$_GET['ID'].'\',  \''.$_GET['borne'].'\')';
  10. } else if ($_GET['table'] == "pages" ) {
  11.  $bdd->query('INSERT INTO  `stat_pages` (`ID_element`, `nom_element`, `ID_parent`,`borne`) VALUES ( \''.$_GET['ID'].'\', \''.$_GET['nom'].'\', \''.$_GET['ID_parent'].'\', \''.$_GET['borne'].'\' )') ;
  12.  echo 'pages :INSERT INTO  `stat_pages` (`ID_element`, `nom_element`, `ID_parent`,`borne`) VALUES ( \''.$_GET['ID'].'\', \''.$_GET['nom'].'\', \''.$_GET['ID_parent'].'\', \''.$_GET['borne'].'\' )';
  13. }
  14. }
  15. ?>


 
le code ci dessous ne fonctionne pas : il n'y a pas d'insertion en bdd
 
par contre si j'affiche le resultat du onreadystatechange avec un else alert(xhr.readyState) en ligne 7 du js, je visualise bien tous les états y compris les echos du php, et, dans ce cas l'insertion en bdd est effective.
Je ne comprends pas pourquoi si je ne mets pas cette ligne il ne lis jamais l'état 4 de la réponse?!
 
help!
 
merci!


Message édité par golumest le 15-04-2013 à 17:14:39
Reply

Marsh Posté le 15-04-2013 à 17:12:16   

Reply

Marsh Posté le 19-04-2013 à 11:21:37    

Ton code est remplis de faille, tu risque des injections SQL...
Nettoie tes variables $_GET et utilise mysql_real_escape_string.
 
Pour ton erreur javascript, peut être le ; après l'accolade ligne 7, utilise un debugger javascript comme firebug pour firefox ou l'inspecteur de chrome ou de safari...


---------------
D3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed