Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Recebendo JSON em PHP


Kleber Carvalho

Pergunta

Pessoal,

Tenho uma aplicação em HTML5/ JavaScript que envia um JSON para uma aplicação PHP.

Tenho um ambiente de teste que é uma copia do ambiente de produção.

Basicamente a aplicação recebe um JSON, coloca os dodos em um array, e faz um insert no banco de dados.

A aplicação está funcionando corretamente no ambiente de teste, mas no ambiente de produção, a mesma aplicação não recebe o JSON corretamente:

Log do JSON Recebido no ambiente de teste:

{"id":"2","v1":"A1","v2":"A2","v3":"A3","v4":"A3","v5":"A4","v6":"A1","v7":"A2","v8":"A1","v9":"10:32-chrome"}

Log do JSON Recebido no ambiente de produção:

{\"id\":\"1\",\"v1\":\"A1\",\"v2\":\"A1\",\"v3\":\"A2\",\"v4\":\"A3\",\"v5\":\"A4\",\"v6\":\"A2\",\"v7\":\"A3\",\"v8\":\"A1\",\"v9\":\"10:46-chrome\"}

<?php

header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");

$json = $_GET['json'];

$jsonarray = json_decode($json);

$message = "Mensal inicial 2";
$success = FALSE;


    //include database configuration
    include 'config.php';

    //var_dump($jsonarray);
    $v1 = $jsonarray -> v1;
    $v2 = $jsonarray -> v2;
    $v3 = $jsonarray -> v3;
    $v4 = $jsonarray -> v4;
    $v5 = $jsonarray -> v5;
    $v6 = $jsonarray -> v6;
    $v7 = $jsonarray -> v7;
    $v8 = $jsonarray -> v8;
    $v9 = $jsonarray -> v9;

$query = "insert into lime_survey_764323 SET submitdate='1980-01-01 00:00:00', lastpage='1', startlanguage='pt-BR', 764323X2X17='$v1', 764323X2X18='$v2', 764323X2X19='$v3', 764323X2X20='$v4', 764323X2X21='$v5', 764323X2X22='$v6', 764323X2X23='$v7', 764323X2X24='$v8', 764323X2X24comment='$v9'";
    $result = mysql_query($query);
    
    

    //insert query to the database

    if ($result) {
        $message = "if" + $query;
        $success = TRUE;

    }

    if (!$result) {
        $message = "else" + $query;
        $success = false;
        die('Could not query:' . mysql_error());

    }


//insert($jsonarray);

    $message = $query;
    $success = TRUE;

if ($success == true) {

    $data = array('success' => true, 'message' => $message, 'value' => $json);
    echo isset($_GET['callback']) ? $_GET['callback'] . '(' . json_encode($data) . ')' : json_encode($data);

} else {

    $data = array('success' => false, 'message' => $message, 'value' => $json);
    echo isset($_GET['callback']) ? $_GET['callback'] . '(' . json_encode($data) . ')' : json_encode($data);


}
?>

Minha dúvida é, como pode um código funcionar de um jeito em um servidor e funcionar de outra maneira em outro servidor?

Qualquer ajuda é bem vinda.

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

ESerra,

Muito Obrigado pela ajuda.

Observe que no ambiente de testes é adicionado \ na frente das aspas, provavelmente magic_quotes_gpc está ativa no servidor de produção.

Fiz uma pesquisa sobre o magic_quotes_gpc e a maneira mais fácil de resolver isso é alterar o php.ini

Como não queremos alterar nenhuma configuração do servidor, encontrei uma função nesse link:

http://www.webdeveloper.com/forum/showthre..._quotes_gpc-0-)

function unescape($text) 
{ 
  if(get_magic_quotes_gpc()) 
  { 
    $text = stripslashes($text); 
  } 
  return($text); 
}

Vou testar essa função, e vou postar o resultado aqui.

Obrigado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...