Я знаю, что этот вопрос задают много, но я задавал здесь все похожие вопросы и до сих пор не могу исправить свой скрипт. Запрос Insert работает, но «Имя» отображается как 0 в базе данных. Мой JavaScript:
<html>
<head>
<script>
function SendData()
{
var Name = "Ballsack"; //The name I am trying to get into database.
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","getuser.php?q = "+Name,true);
xmlhttp.send();
alert("The query was send");
}
</script>
</head>
<body>
<form>
<input type = "button" value = "Send" onClick = "SendData();"><br>
</form>
</body>
</html>
Мой PHP (getuser.php):
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('localhost','jack','*****','VLA');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
$query = "INSERT INTO TrafficRegisterDetails
(Name,Surname,Age,Address,TrafficRegNumb,NumberPlate)
VALUES('$q','Sak','12','Kernma','1212','blahblah')";
$result = $con->query($query);
if (!$result) die ("Database access failed: ".$con->error);
mysqli_close($con);
?>
</body>
</html>
Я знаю, знаю :) Это было просто для того, чтобы понять, где я ошибся, но я нашел это, спасибо!
Возможный дубликат Доступ к значению переменных JavaScript в php для хранения в mysql



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это из-за $q = intval($_GET['q']);.
Он изменит вашу строку на 0.
См. PHP intval
Удачи
Спасибо за ответ, сэр. Не могли бы вы подсказать, на что тогда нужно установить $ q?
@JaunSamtin Вы можете использовать Функции фильтра PHP для решения проблем внедрения sql.
@JaunSamtin Пожалуйста, укажите правильный ответ как принятый ответ, чтобы другие могли использовать ваш вопрос.
Вы делаете intval:
$q = intval($_GET['q']);
Вот почему "Ballsack" превращается в 0.
Понятно, спасибо. Я не знал значения слова intval .. Я понял
Сначала исправьте проблему безопасности для внедрения sql. Тогда вам не нужен html-код в вашем файле getuser.php. Эти файлы находятся на одном сервере? возможно, вам стоит взглянуть на CORS и заголовки, чтобы создать API. Тогда зачем разбирать имя, которое вы отправляете как int? Прочтите руководство по php, чтобы получить некоторую информацию о том, какие функции вы используете.