Ir para conteúdo
Fórum Script Brasil

fchaves

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre fchaves

fchaves's Achievements

0

Reputação

  1. Boa noite, amigos. Tenho dois códigos iguais que produzem resultados diferentes, e já tentei encontrar a lógica de como isso pode acontecer e estou com sérias dificuldades de encontrar o problema. Um é basicamente ctrl+c ctrl+v do outro. Código 1: <?php function existe_user($nickname) { if (shell_exec("find ./users/ -name $nickname") == "") { echo 0; } else { echo 1; } } function criar_user($nickname) { shell_exec("touch ./users/$nickname"); echo existe_user($nickname); } function atualizar_json($nickname,$json) { $file = fopen("./users/$nickname","w"); fwrite($file,$json); fclose($file); shell_exec("echo $json > ./users/$nickname"); } function pegar_json($nickname) { echo shell_exec("cat ./users/$nickname"); } $body = json_decode(file_get_contents('php://input')); $function = $body->{'function'}; $nickname = $body->{'nickname'}; $json = json_encode($body->{'json'}); switch ($function) { case "existe_user": existe_user($nickname); break; case "criar_user": criar_user($nickname); break; case "atualizar_json": atualizar_json($nickname,$json); break; case "pegar_json": pegar_json($nickname); break; } ?> Código 2: <?php function testando($nome,$json) { shell_exec("touch ./users/$nome"); $file = fopen("./users/$nome","w"); fwrite($file,$json); fclose($file); } $body = json_decode(file_get_contents('php://input')); $function = $body->{'function'}; $nome = $body->{'nome'}; $json = json_encode($body->{'json'}); if ($function == 'testando') { testando($nome,$json); } ?> O problema em questão é com a função "atualizar_json". O código 1 produz um resultado inesperado (mostrarei logo mais), e criei o segundo código copiando o primeiro e ele apresenta o resultado esperado. Estou testando os dois códigos usando o método POST, e a origem da requisição é a mesma. No primeiro código, ao salvar o JSON no arquivo, ele elimina as aspas ficando assim: {local:{latitude:-13.7198731,longitude:-38.9974784},amigos:[]} No segundo, o resultado aparece assim: {"local":{"latitude":-13.7198731,"longitude":-38.9974784},"amigos":[]} Estou usando o PHP 7.3.27-1 com Apache2 rodando localmente. Sou iniciante e meu conhecimento é muito limitado nesse assunto, estou apenas me aventurando como hobby.
×
×
  • Criar Novo...