Передайте None Latin1 Char через AJax в PHP, затем в SQLlite3, затем обратно через AJax - PullRequest
0 голосов
/ 14 марта 2020

Я поставлен в тупик, так как не передаю ни один код латинского символа с кодировкой ajax, а затем расшифровываю с помощью php, помещаю его в sqlite и затем возвращаю эти данные через ajax, и они отображаются

Вход не соответствует выходу

Используемые мной данные

https://en.wikipedia.org/wiki/List_of_Unicode_characters

https://en.wikipedia.org/wiki/Emoji

Мне нужно иметь возможность преобразовывать данные, передавать их через ajax, а затем в php, затем вставлять в sqlite и извлекать эти данные, кодировать, а затем передавать обратно через ajax и unencode и для вход и выход совпадают одинаково, как это сделать? действительно нужна помощь с этим

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {

  //echo 'Posted Data: '.$_POST['input1']."<br /><br />";
  $db_location = 'db.db';
  $db = new sqlite3($db_location);
  $data = htmlspecialchars(SQLite3::escapeString(base64_decode($_POST['input2'])));
  //$data = $_POST['input1'];
  $query = "UPDATE item SET data='$data' WHERE id='2602'";
  //echo $query."<br /><br />";
  //$query = $db->exec('UPDATE item SET data="" WHERE id="2542"');
  $r = $db->query($query);
  $db->close();

  $db = new sqlite3($db_location);

  $r = $db->query("select * from item where id='2602'");
  $d = $r->fetchArray();
  //$output = urldecode($d['data']);
  $output = (htmlspecialchars(base64_encode($d['data'])));

  $db->close();


  //$_POST['input2'] = htmlspecialchars($_POST['input1']);
}

?>
<form class="" action="" method="post" onsubmit="">
Normal: <textarea class="input1" name="input1" rows="4" style="width:300px"><?php echo $_POST['input1'];?></textarea><br />
JS BTOA: <textarea onclick="btoaBase64Test()" class="input2" name="input2" rows="4" style="width:300px"><?php echo $_POST['input2'];?></textarea><br />
PHP Data: <textarea class="input3" name="input3" rows="4" style="width:300px"><?php echo $output;?></textarea><br />
JS Data: <textarea class="input4" name="input4" rows="4" style="width:300px"><?php echo $output;?></textarea><br />
<input type="submit" /> <span class="show"><?php echo $result;?></span>
</form>
<button onClick="btoaBase64Test()">btoa</button>
<button onClick="bee()">decode</button>
<script>
//return UpdateForm(this);
function btoaBase64Test() {
    //executeWithTryCatch(function () {
        var inputText = document.querySelector('.input1');
        encoded = btoa(unescape(encodeURIComponent(inputText.value)));
        document.querySelector('.input2').value = encoded
    //});
}

function bee() {
    //executeWithTryCatch(function () {
        var inputText = document.querySelector('.input3');
        decoded = decodeURIComponent(escape(atob(inputText.value)));
        document.querySelector('.input4').value = decoded
    //});
    console.log('ooo');
}


//var elem = document.querySelectorAll("textarea");
//elem[2].value = btoa(unescape(encodeURIComponent(<?php echo $output;?>)));

function UpdateForm(t) {

  var elem = document.querySelectorAll("textarea");

  console.log(elem);
  var input = elem[0].value;
  var encode = btoa(input);
  //var decode = atob(encode);
  elem[1].value = btoa(unescape(encodeURIComponent("ജോയ് മോൻ")));//btoa(unescape(encodeURIComponent(input)));

  //return false;
  t.submit();
}

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...