PDA

View Full Version : سوال: اپلود فایل



yasin5
دوشنبه 03 تیر 1392, 18:07 عصر
با سلام من سایت طراحی کردم که کاربر میتونه فایلی را اپلود کنه میخوام فقط تا 20 مگا بتونه ودر ضمن مشخص بشه کدام کاربر فرستاده این کدی که قرار میدهم فقط فایل اپلود میشه ولی چه کاربری فرستاده مشخص نیست





<?php
session_start();
require('config/config.php');
mysql_query("set names 'UTF8'");
$query="select * from ketab2 where name='".$_POST['name']."'";
$result=mysql_query($query);
if ((mysql_num_rows($result))>0)
{
header('location:upload.php?msg=1');
} @$file = $_FILE['FileName'];
$isEx = new SplFileInfo($file);
$ext = array('pdf' => 'pdf');
$rEx = $isEx->getExtension();
@$fSize = $_FILE['FileName']['size'];

if( isset( $ext[$rEx] ) == $rEx && $fSize < 20768 )
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]);
echo 'کتاب شما پس از بررسی توسط مدیر سایت، به نمایش خواهد آمد';
}
else {
header('location:upload.php?msg2=1');
}


if (( strlen($_POST['name'])==0) || (strlen($_POST['subject'])==0) ||(strlen($_POST['author'])==0)||(strlen($_POST['publisher'])==0))



{
header('location:upload.php?msg0=1');
}

if(($_POST['name'] == '')|| ($_POST['subject'] == '')||($_POST['author'] == '')||($_POST['publisher'] == '')||($_POST['detail'] == ''))


{
header('location:upload.php?msg1=1');
}


else {


$query="insert into ketab2 (name,subject ,author, publisher,detail)values('".$_POST['name']."','".$_POST['subject']."','".$_POST['author']."','".$_POST['publisher']."','".$_POST['detail']."')";
mysql_query($query) or die(mysql_error());
mysql_close($connect);

$_SESSION['name']=$_POST['name'];
$_SESSION['subject']=$_POST['subject'];
$_SESSION['author']=$_POST['author'];
$_SESSION[' publisher']=$_POST[' publisher'];

$_SESSION['detail']=$_POST['detail'];







header('location:complete1.php');

}



?>

dousti_design
دوشنبه 03 تیر 1392, 18:46 عصر
برای اینکه کاربری که آپلود میکنه رو مشخص کنید باید از طریق سشن کاربر رو شناسایی و شناسه (معمولا id) کاربر رو بزنید توی دیتابیس. کدش هم بستگی به این داره که موقع لاگین چهجوری اطلاعات کاربر رو میذارید توی سشن(و یا کوکی)

yasin5
دوشنبه 03 تیر 1392, 18:56 عصر
کاربر از طریق سشن چک میشود چون فقط کاربران عضو به این صفحه دسترسی دارند کد لاگین قرار میدم لطفا راهنمایی کنید


<?php
session_start();
require('config/config.php');
mysql_query("set names 'UTF8'");



$query="select * from member where username='".$_POST['username']."'and pass='".md5($_POST['pass'])."'";

$result=mysql_query($query);
if (mysql_num_rows($result)==1)
{
$row=mysql_fetch_assoc($result);
if($row['user_access_level']=='admin')
{
$_SESSION['un']=$row['username'];
$_SESSION['user_access']=$row['user_access_level'];
$_SESSION['f_name']=$row['fname'];
$_SESSION['l_name']=$row['lname'];
$_SESSION['mail']=$row['email'];



header('location:admin.php?msg3=1');
}
else
{
$_SESSION['un']=$row['username'];
$_SESSION['user_access']=$row['user_access_level'];
$_SESSION['f_name']=$row['fname'];
$_SESSION['l_name']=$row['lname'];
$_SESSION['mail']=$row['email'];


header('location:index.php');


}

}




else
{
header('location:login.php?msg=1');
}


?>

dousti_design
دوشنبه 03 تیر 1392, 21:38 عصر
خب توی این صفحه یک مقدار یکتا از کاربر توی سشن ذخیره کنید(id رو توصیه میکنم) اما نام کاربری هم میشه:


$_SESSION['userid']=$row['id'];

یعدش وقتی آپلود میکنید این مقدار رو:


$_SESSION['userid']

توی دیتابیس و در فیلد مربوطه که براش در نظر گرفتید ذخیره میکنید.