upload de arquivos:
Fala pessoal,[/size]
Tenho 14 anos e estou tentando criar um serviço de hospedagem de arquivos(assim como mediafire e 4shared), mas o sistema esta permitindo uploads maiores do que os valores que defini e não consigo encontrar o erro.[/size]
O seguinte arquivo include pega as informações sobre quanto espaço o usuário tem disponível:[/size]
<?php
include "connect.inc";
$un = $_COOKIE["un"];
$pw = $_COOKIE["pw"];
$upid = $_COOKIE["upid"];
$sql = "SELECT SUM(size) AS size FROM files WHERE ownerid='$upid'";
$action = mysqli_query($con,$sql);
$files = "SELECT * FROM files WHERE ownerid='$upid'";
$action2 = mysqli_query($con,$files);
$all = mysqli_num_rows($action2);
$accspace = "SELECT * FROM users WHERE id='$upid'";
$nquery = mysqli_query($con,$accspace);
$result2 = mysqli_fetch_assoc($nquery);
$accsize = $result2["fspace"];
while ($result = mysqli_fetch_assoc($action)) {
$used = $result["size"] / 1048576;
$space = $accsize - $used;
}
?>
E o arquivo que realmente faz o upload é o seguinte:[/size]
<?php
include "cookies.inc";
include "connect.inc";
include "space.inc";
$status = $_GET['s'];
$file_name = $_FILES['arq']['name'];
$file_size = $_FILES['arq']['size'];
$file_type = $_FILES['arq']['type'];
$real_fsize = $file_size;
if($status != "ly"){
header('Location: upload.php');
}
if (isset($_POST['stat'])) {
$privacy = "private";
} else {
$privacy = "public";
}
$destiny = 'users/files/';
$future_file = $destiny.$file_name;
if($space < $real_fsize) {
echo 'O tamanho do arquivo excede o limite para sua conta.<br>';
echo '<a href="upload.php">Voltar</a>';
}
if(file_exists($future_file)){
echo 'Arquivo '. $file_name .' ja existe.<br>';
echo '<a href="upload.php">Voltar</a>';
}
if(move_uploaded_file($_FILES['arq']['tmp_name'], $future_file)){
$sql = "INSERT INTO files (name,size,state,ownerid,url) VALUES ('$file_name','$real_fsize','$privacy','$upid','$future_file')";
$query = mysqli_query($con,$sql);
header('Location: $future_file');
} else {
echo 'Algum erro ocorreu durante o upload.<br>';
echo '<a href="upload.php">Voltar</a>';
}
?>
Alguém pode me dizer o que há de errado?suspeito que isto se deva ao fato das informações relativas a espaço(bytes,mb) estarem como decimal no BD mas não sei se isto esta causando o problema ..[/size] [/size]
Discussão (6)
Carregando comentários...