Размещать / вставлять переменные javascript в таблицу базы данных mySQL - предположительно с помощью ajax и / или jquery - Как? - PullRequest
0 голосов
/ 11 августа 2011

Я публикую свою форму ниже. Переменная «е» в приведенной ниже форме должна быть содержимым ячейка таблицы на той же странице. Часть ниже, которая находится в файле с именем insert.php. Как я могу положить переменную в MySQL?

Уже есть много ответов на этот вопрос в Google (и на этом сайте) с кодом, в котором не указано, что заменить, на что, в каких местах кода и в каких файлах какие коды входят. нас новичков со спецификой! Код ниже, кажется, является стандартом, как бы я и другие изменили этот код для работы с переменной? Var e является содержимым ячейка таблицы на той же странице.

Спасибо!


var e = document.getElementById("ItemName1").innerHTML);


<form action="insert.php" method="post">
<input type="hidden" name="save_name" value=e>
<input type=image
onmouseover='this.src="http://www.mysite.com/images/MouseOver.png"'
onmouseout='this.src="http://www.mysite.com/images/MouseOut.png"'
src="http://www.mysite.com/images/MouseOut.png">
</form>

<html>
<head>
</head>
<body>

<?php
$con = mysql_connect("localhost","removed for now","removed for now");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("removed for now", $con);

$sql="INSERT INTO Temp_Name (item_name) VALUES ('$_POST[save_name]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
echo $sql;

mysql_close($con)
?> 
</body>
</html>

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Измените эту строку

$sql="INSERT INTO Temp_Name (item_name) VALUES ('$_POST[save_name]')";

на

$name = mysql_real_escape_string($_POST['save_name']);
$sql="INSERT INTO Temp_Name (item_name) VALUES ('$name')";

И узнайте больше о SQL-инъекции

и в реальном сценарии, пожалуйста,'повторить строку запроса

Чтобы получить значение ввода с использованием JavaScript, вот что вы делаете

<input type="hidden" name="save_name" id="input1" value="e">

javascript:

var value = document.getElementById("input1").value;
0 голосов
/ 11 августа 2011

Во-первых, у вашего Javascript есть непревзойденная закрывающая скобка, которая, я должен предположить, случайна. Исправленная версия:

var e = document.getElementById("ItemName1").innerHTML;

Чтобы установить содержимое этой переменной в качестве значения скрытого текстового поля, вы должны (при загрузке страницы) сделать что-то вроде:

document.getElementById("hiddenelement").value=e;

и затем измените скрытый элемент вашей формы на:

<input type="hidden" name="save_name" id="hiddenelement">

Что касается вашего запроса MySQL, то, что у вас есть сейчас, чрезвычайно опасно. Вы выполняете неэкранированный запрос, содержащий текст, полученный со стороны клиента.

Пожалуйста, прочитайте об уязвимости, известной как SQL-инъекция

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