AJAX POST МЕТОД

#javascript #ajax

#javascript #ajax

Вопрос:

Привет, я использую ajax для размещения данных в базе данных, я использую php в качестве фона сервера для размещения данных в базе данных mysql, для

  Ex: $name = $_POST['name'];
 $query = "INSERT INTO table('name') VALUES ('".$name."');
 $result = mysql_query($query)
  

когда пользователь нажимает на кнопку отправки, я только что создал функцию onlick из ajax post_data(),
итак, что мне нужно, я хочу значение в текстовом поле, чтобы я мог передать его в ajax, как получить значение текстового поля

 var url = "get_data.php";
var params = "name=?"; (how to get the name enter in the text box)
http.open("POST", url, true);


http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 amp;amp; http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);
  

Комментарии:

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

2. Да, уязвимость при внедрении bigtime.

3. Тогда как я могу предотвратить внедрение SQL, пожалуйста, дайте мне знать, что мне нужно сделать

4. bobby-tables.com

5. Ваши кавычки в примере PHP не совпадают.

Ответ №1:

Вы можете указать текстовое поле и идентификатор.

А затем с помощью этого кода

 var textValue = document.getElementById("textboxid").value;
  

вы можете получить, а также установить значение в текстовом поле.

Комментарии:

1. Требуется кодирование .

Ответ №2:

Вы не должны отправлять переменные $ POST напрямую в базу данных. Посмотрите на санитарную обработку.

 var url = "get_data.php";
var validValue=validate(document.getElementById('textboxid').value) ;
var params = "name=?" validValue;


http.open("POST", url, true);


<!-- assuming your text box is-->
<input type =textbox id="textboxid">
  

И не забудьте также выполнить очистку на стороне сервера.

Комментарии:

1. Также требуется кодирование для HTTP-транспорта, и validate() оно не определено.

2. Если данные важно кодировать в http-транспорте, я бы сказал, что последовательность такова: clientValidate-> clientEncode-> serverDecode-> serverReValidate .. Возможно, даже использовать контрольную сумму. Почему? Даже enocoded потоки могут быть подделаны сетью. Я бы предпочел использовать SSL для такой конфиденциальной информации.

3. Кодирование != Шифрование. Если допустимое текстовое поле включает, например, символ amp; , то при обработке данных оно (и все, что за ним следует) будет отключено.

4. Сначала я думал, что вы просто констатируете очевидное, пытаясь перехитрить всех, оскорбляя их. Я думал, вы имели в виду шифрование, когда называли это кодированием. Вы правы.

Ответ №3:

var params = "name=?"; (how to get the name enter in the text box)

вы можете попробовать:

var params = "name=" document.getElementById('theTextBoxId').value;

Комментарии:

1. Требуется кодирование .

2. Я думал, что post метод отправляется как часть тела запроса и не использует строку запроса?

3. Он отправляется как тело запроса, но, если вы не начнете играть с типом содержимого, по-прежнему использует ту же кодировку.

4. не могли бы вы, пожалуйста, привести мне реальный пример или ссылку о том, как GET и POST используют один и тот же метод кодирования?

5.Вы предполагаете, что encodeURIComponent функция не подготавливает данные для MIME-типа application / x-www-form-urlencoded-urlencoded ?