繁体   English   中英

将 javascript 变量张贴/插入到 mySQL 数据库表中 - 大概使用 ajax 和/或 ZD223E1439188E406C234?

[英]Post/Insert javascript variables to mySQL database table - presumably with ajax &/or jquery - How?

我在下面张贴我的表格。 下面表格中的变量“e”应该是同一页面上表格单元格的内容。 下面的部分位于名为 insert.php 的文件中。 如何将 var e 放入 mysql 中?

在谷歌(和这个网站)上已经有很多关于这个问题的答案,其中的代码没有指定要替换什么,用什么,在代码中的哪些位置,以及代码 go 的文件。帮助我们新手具体来说,下面的代码似乎是一个标准? 我和其他人将如何修改此代码以使用变量。 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>

更改此行

$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;

首先,您的 Javascript 有一个无与伦比的右括号,我不得不假设这是偶然的。 修正版:

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

要将此变量的内容设置为隐藏文本字段的值,您应该(在页面加载时)执行以下操作:

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

然后将表单的隐藏元素更改为:

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

至于您的 mySQL 查询,您现在拥有的是非常危险的。 您正在执行一个未转义的查询,其中包含来自客户端的文本。

请阅读称为SQL 注入的漏洞

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM