Я использую локальное хранилище html5, и я пытаюсь прочитать его и передать его переменной php:
Это код:
$myphpvar = "<script>document.write(localStorage.getItem('myjsvar'));</script>"; Когда я это делаю:
 echo $myphpvar; 
Значение выглядит правильно (визуально)
Upto там все выглядит хорошо НО, когда я добавляю этот код:
 $sql="INSERT INTO `pending` (`id`, `myfield`) VALUES ('', '$myphpvar')"; 
Затем я получаю эту ошибку:
Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, который будет использоваться рядом.
Ошибка здесь:
 $myphpvar = "<script>document.write(localStorage.getItem('myjsvar'));</script>"; 
Любые идеи почему?
Обновлено:
Это не работает, потому что:
 $myphpvar = "<script>document.write(localStorage.getItem('myjsvar'));</script>"; 
  Теперь ваша переменная PHP $myphpvar содержит: 
  <script>document.write(localStorage.getItem('myjsvar'));</script> 
  когда вы echo это выглядит так: 
 echo "<script>document.write(localStorage.getItem('myjsvar'));</script>" 
так что это покажет вашу переменную Js, потому что она работает в вашем браузере.
но когда вы делаете это в SQL: это выглядит примерно так:
 $sql="INSERT INTO `pending` (`id`, `myfield`) VALUES ('', '<script>document.write(localStorage.getItem('myjsvar'));</script>')"; 
  Для достижения этого вам нужно передать значение localStorage в URL и получить его на PHP или использовать AJAX для публикации! 
 window.location.href = window.location.href+"?local="+localStorage.getItem('myjsvar')); 
Вы не должны этого делать, потому что Php работает на стороне сервера, где html5 работает на стороне клиента. Вы наверняка должны использовать js с ajax.
php – это базовый язык программирования. он связывается с вашим сервером и компилирует код. localstorage – это объект переднего конца, который работает в браузере пользователей. Вы не можете получить это значение как переменную php.
но ключ, вы можете поместить его в форму как скрытый ввод и смоделировать сообщение формы. при отправке сообщения вы можете отправить это значение в виде данных формы или строки запроса. так что вы можете получить его оттуда.
для вашего пути это невозможно.
Я думаю, что что-то может быть неправильным в вашем SQL-запросе.
Попробуйте изменить его на:
 $sql="INSERT INTO `pending` (`id`, `myfield`) VALUES ('', '{$myphpvar}')";