<?php session_start();?>
<?php
include("session/DBConnection.php");
include("session/session.php");
$error = "";
?>
<?php
$user = $_SESSION['log']['username'];
$query = mysql_query("SELECT * FROM members WHERE username = '$user'") or die (mysql_error());
$display = mysql_fetch_array($query);
if(isset($_POST['upload'])){
$mem_id = $display['member_id'];
$stat = "just uploaded a video.";
$date = date("m/d/Y");
$qry = "INSERT INTO updates SET member_id='$mem_id', status='$stat', date='$date'";
$result = mysql_query($qry);
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=video.php\">";
}
}
?>
<?php
if(isset($_POST['video']) && $_FILES['userfile']['size'] > 0)
{
$tmpName = $_FILES['userfile']['tmp_name'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
else{
move_uploaded_file($_FILES["userfile"]["tmp_name"],"video_uplaod/" . $_FILES["userfile"]["name"]);
$user = $_SESSION['log']['username'];
$today = strtotime(date("Y-m-d H:i:s"));
$location="video_upload/" . $_FILES["userfile"]["name"];
$video_name=$_POST['video_name'];
$sql = "INSERT INTO tbl_video SET username='$user', video='$location', video_name='$image_name', date_created='$today'";
echo "File $fileName uploaded";
}
header("video.php");
?>
答案 0 :(得分:1)
您的INSERT语句错误,
INSERT INTO updates (member_id, status, date) VALUES('$mem_id','$stat','$date')
应该是正确的陈述。
但是,您的代码中存在3个大问题:
1)您正在使用已弃用的功能。
说真的,停止使用mysql_函数,它们已被弃用,PHP不再支持它们,它们可能随时消失,当发生这种情况时,你的代码就会破坏,你会陷入困境麻烦。请改用mysqli或PDO。
2)您的代码容易受到SQL注入攻击。
您没有清理用户输入,addslashes
不足以阻止SQL注入您的查询,如果您使用mysqli或PDO,您将能够使用预准备语句,这样您的代码就不会更容易受到SQL注入的攻击(这并不意味着你不应该不管理用户输入)。
3)您的代码可能容易受到文件上传攻击。
你真的相信你的用户,对吗?
uploads/
video_uploads/
文件夹中。修改强>
INSERT INTO updates SET member_id = ".$mem_id
是正确的语法,这里是那些不相信的人的证明: