2010-11-19 10 views
0

I développé sur localhost un système utilisant Mootools et JSON je me suis déplacé sur le serveur de production et il ne fonctionne pas j'ai développé un modèle très simple et il produit null aussi: JSON Mootools problème Array

<script type="text/javascript" src="bookingSystem/mootools/mootoolsCore.js"> 
    </script> 
    <script type="text/javascript" src="bookingSystem/mootools/mootoolsMore.js"> 
    </script> 
    <script> 
      function json(){ 
       var weekDays = JSON.encode({ 
        apple: 'red', 
        lemon: 'yellow' 
       }); 
       ; 
       alert(weekDays); 
       var request = new Request.JSON({ 
        method: 'post', 
        url: 'jsonTest.php', 
        data: { 
        weeks: weekDays 
        }, 
        onComplete: function(jsonObj){ 
         alert("back"); 
        } 
       }).send(); 
      } 

</script> 


</head> 
<body> 
    <span onmousedown="json()">JSONTEST</span> 
</body> 
</html> 

et php est

<?php 
    var_dump(json_decode($_POST['weeks'])); 
?> 

Il décode comme NULL.

Cela a fonctionné parfaitement avec les tableaux sur localhost mais je n'arrive pas à faire fonctionner le tableau sur mon serveur live. Si je n'utilise pas de tableau, cela fonctionne très bien. Toutes les idées où je peux commencer à regarder.

grâce

Répondre

1

Je pense que serait sur vos citations magiques serveur sont actifs sur votre tout machine de développement non. Si la variable POST que vous utilisez contient des guillemets json_decode échoue silencieusement et renvoie NULL. Les citations magiques échappent automatiquement à certains caractères (', " et le zéro binaire) dans toutes les variables POST, GET et COOKIE avec une barre oblique inverse. Une simple variable codée en JSON ne peut pas contenir l'un de ces caractères, donc cela fonctionne aussi sur le serveur, mais cela peut ne pas être le cas si vous codez un tableau.

http://de.php.net/manual/en/security.magicquotes.disabling.php explique comment désactiver les guillemets magiques, même si vous n'avez pas accès au fichier de configuration PHP.

+0

Y a-t-il un moyen de contourner le problème? – AAA

+0

Merci cela a beaucoup aidé. Je pensais que c'était éteint. Je l'ai fait: – AAA

+0

if (is_array ($ _ POST ['semaines'])) { \t $ mike = stripslashes ($ _ POST ['semaines']); } else { \t $ mike = ($ _POST ['semaines']); } – AAA