Как сделать Ajax-запросы на мобильных устройствах с использованием mySQL - PullRequest
0 голосов
/ 10 мая 2011

Я новичок в ajax и хочу, чтобы все мои текстовые поля отправлялись в мою базу данных MySQL без страницы обновления.

Это прекрасно работает, если я фиксирую значение текстового поля с js в качествепараметр "str" ​​("тип" - это просто еще один параметр, который я использую)

function sendAjax(type, str)
{
var xmlhttp;
if (str=="")
  {
  document.getElementById("txtResp").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtResp").innerHTML=xmlhttp.responseText;
    }
  }


switch(type)
{
case 'search':
    xmlhttp.open("GET","mysql_process_search.php?q="+str,true);
  break;
case 'add':
    xmlhttp.open("GET","mysql_process_event.php?q="+str,true); 
  break;
}

xmlhttp.send();
}

И на странице mysql_process_event.php я получаю правильные результаты в Браузере рабочего стола с использованием:

echo $_GET['q'];
$q = $_GET['q'];

$con = mysql_connect('xxx', 'xxx', 'xxx');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("xxx", $con);


$result = mysql_query("SELECT * FROM Events");

mysql_query("INSERT INTO Events (Title)
VALUES ('".$q."')");

mysql_close($con);

Но это не работает на Mobile Safari или Mobile Android.Он будет захватывать отраженный ответ в точном объекте xml.responseText и отображать его на странице, но не будет связываться с базой данных.

Любые идеи?

1 Ответ

0 голосов
/ 10 мая 2011

Какое сообщение об ошибке вы получаете? Если вы откроете страницу php напрямую, вы сможете увидеть конечный результат даже на мобильном устройстве.

Во-вторых, ваш код, как написано, по своей природе опасен и широко открыт для SQL-инъекций, а это значит, что было бы просто взломать вашу базу данных и делать плохие вещи (например, выбирать из нее все, отбрасывать таблицы и т. Д.). Вы хотите использовать переменные связывания, желательно, и по крайней мере экранировать вашу строку.

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