这对你们来说可能很容易,但我无法理解。 我想将图像的文件名保存到 SQL 库中它自己的行中。
基本上,我登录到有我自己的用户 ID 的网站。 每个用户都有自己的背景图像栏。用户可以根据需要选择自己的图像。所以基本上,当用户单击他想要的图像时,会发生 jquery click 事件,并对 php 文件进行 ajax 调用,该文件应该负责实际更新。每个用户的行始终存在,因此只需要更新数据。
首先,我收集 css 属性“background-image”的文件名并将其拆分,以便仅获得文件名。然后,我将该文件名存储在一个名为“filename”的变量中,然后将其传递给此 jQuery 代码片段:
$.ajax({
url: 'save_to_db.php',
data: filename,
dataType:'Text',
type: 'POST',
success: function(data) {
// Just for testing purposes.
alert('Background changed to: ' + data);
}
});
这是保存数据的 php:
<?php
require("dbconnect.php");
$uploadstring = $_POST['filename'];
mysql_query("UPDATE brukere SET brukerBakgrunn = '$uploadstring' WHERE brukerID=" .$_SESSION['id']);
mysql_close();
?>
基本上,每个用户都有自己的 ID,这称为“brukerID” 包含所有内容的表称为“brukere”,我要更新的列是“brukerBakgrunn”列
当我运行 javascript 代码片段时,我收到此消息框作为返回,其中显示:
Background changed to:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/clients/client2/web8/web/save_to_db.php:1) in /var/www/clients/client2/web8/web/access.php on line 3
这是 dbconnect.php
<?php
$con = mysql_connect("*****","******","******");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("****", $con);
require("access.php");
?>
这是 access.php:
<?php
// Don't mess with ;)
session_start();
if($_REQUEST['inside']) session_destroy();
session_register("inside");
session_register("navn");
if($_SESSION['inside'] == ""){
if($_POST['brukernavn'] and $_POST['passord']){
$query = "select * from brukere where brukerNavn='" . $_POST['brukernavn'] . "' and brukerPassord = md5('" . $_POST['passord'] ."')";
$result = mysql_query($query);
if(!$result) mysql_error();
$rows = @mysql_num_rows($result);
if($rows > 0){
$_SESSION['inside'] = 1;
$_SESSION['navn'] = mysql_result($result,"navn");
$_SESSION['id'] = mysql_result($result,"id");
Header("Location: /");
} else {
$_SESSION['inside'] = 0;
$denycontent = 1;
}
} else {
$denycontent = 1;
}
}
if($denycontent == 1){
include ("head.php");
print('
<body class="bodylogin">
content content content
</body>
');
include ("foot.php");
exit;
}
?>
最佳答案
严重的安全问题!
您没有引用并转义 MySQL 查询的输入。我可以轻松破解末尾,堆叠另一个查询,然后删除整个数据库!
此外,您还缺少 mysql_query()
末尾的结束括号。
关于php - jQuery - 通过 PHP 保存到 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2780706/