rahahost
پنج شنبه 04 مهر 1392, 09:22 صبح
با سلام خدمت همه ی دوستان و اساتید محترم .
جستوجوهای زیادی در گوگل و همچنین در همین وب سایت کردم و به نتیجه هایی رسیدم اما کافی نبود و در بعضی موارد گنگ بود و تصمیم گرفتم اینجا مطرح کنم سوالم رو .
من یه فرم دارم که یه تعداد مشخصی آپلودر ( 6 ) عکس داره .
میخوام این آپلودرها چندتا کار انجام بده :
1 - اعتبار سنجی کنه که فایل آپلود شده واقعا عکس هست و حجم عکس کمتر از 3 مگابایت باشه .
2 - بعد از آپلود هر 6 عکس مقدارشو درون یک متغییر ریخته بشه و با , از هم جدا شده باشن و نهایتا اینسرت بشه درون دیتابیس .
در صورتی که همه عکسا آپلود نشد ، یه خطا بده و مثلا اگر عکس شماره 3 آپلود نشد و دوتای قبلی آپلود شد ، اون دوتا پاک بشه و درون هاست ذخیره نشه !
کدی که من برای یک عکس نوشتم اینه :
<?php
$uploadpath = '../uploads/';
$max_size = 2000;
$alwidth = 900;
$alheight = 800;
$allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png');
if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {
$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);
$sepext = explode('.', strtolower($_FILES['fileup']['name']));
$type = end($sepext);
list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);
$err = '';
if(!in_array($type, $allowtype)) $err .= 'The file: <b>'. $_FILES['fileup']['name']. '</b> فرمت فایل شما غیر مجاز است . تنها فرمت تصاویر قابل قبول است .';
if($_FILES['fileup']['size'] > $max_size*1000) $err .= '<br/>حجم فایل بیش از حد مجاز است : '. $max_size. ' KB.';
if(isset($width) && isset($height) && ($width >= $alwidth || $height >= $alheight)) $err .= '<br/>ابعاد تصویر بیش از حد مجاز است: '. $alwidth. ' x '. $alheight;
if($err == '') {
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) {
include_once("../includes/config.php");
$cmelli = $_POST["cmelli"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$pname = $_POST["pname"];
$nshenasname = $_POST["nshenasname"];
$bdateroz = $_POST["roz"];
$bdatemah = $_POST["mah"];
$bdatesal = $_POST["sal"];
$bdate = "$bdatesal"."$bdatemah"."$bdateroz";
$taahol = $_POST["taahol"];
$children = $_POST["children"];
$nvazife = $_POST["nvazife"];
$state = $_POST["state"];
$city = $_POST["city"];
$mtahsil = $_POST["mtahsil"];
$address = $_POST["address"];
$postalcode = $_POST["postalcode"];
$tellephone = $_POST["tellphone"];
$mobile = $_POST["mobile"];
$shoghl = $_POST["shoghl"];
$semat = $_POST["semat"];
$tellkar = $_POST["tellkar"];
$addresskar = $_POST["addresskar"];
$pic = $_FILES['fileup']['name'];
$email = $_POST["email"];
$email = $_POST["email"];
$password = MD5($_POST["userPass"]);
$loginip = $_SERVER['REMOTE_ADDR'];
$details = $_POST["details"];
$query ="INSERT INTO tbl_user ( cmelli,fname,lname,pname,nshenasname,bdate,taahol, children,nvazife,state,city,mtahsil,address,postal code,tellphone,mobile,shoghl,semat,tellkar,address kar,pic,email,password,loginip,details )
VALUES ('{$cmelli}','{$fname}','{$lname}' , '{$pname}' ,'{$nshenasname}' ,'{$bdate}' ,'{$taahol}' ,'{$children}' ,'{$nvazife}' ,'{$state}' ,'{$city}' ,'{$mtahsil}' ,'{$address}' ,'{$postalcode}' ,'{$tellephone}' ,'{$mobile}' ,'{$shoghl}' ,'{$semat}' ,'{$tellkar}' ,'{$addresskar}' ,'{$pic}' ,'{$email}' ,'{$password}' ,'{$loginip}' ,'{$details}' )";
if(mysql_query($query))
{
echo '<div class="add-user-ok"><i class="icon-ok-sign"></i> کاربر با موفقیت اضافه شد .</div>';
}
else
{
echo '<div class="add-user-error"><i class="icon-remove-sign"></i> در اضافه کردن کاربر خطایی رخ داده است !</div>';
}
}
else echo '<b>خطا در آپلود تصویر.</b>';
}
else echo $err;
}
?>
در موردی که گفتم از آرایه بعنوان اسم استفاده کردم و آپلود با موفقیت انجام مشد اما تمام شرطها اعمال نمیشد .
دوستان ، لطف میکنید کدم رو تکمیل کنید تا مشکلم رفع بشه؟
متشکرم .
جستوجوهای زیادی در گوگل و همچنین در همین وب سایت کردم و به نتیجه هایی رسیدم اما کافی نبود و در بعضی موارد گنگ بود و تصمیم گرفتم اینجا مطرح کنم سوالم رو .
من یه فرم دارم که یه تعداد مشخصی آپلودر ( 6 ) عکس داره .
میخوام این آپلودرها چندتا کار انجام بده :
1 - اعتبار سنجی کنه که فایل آپلود شده واقعا عکس هست و حجم عکس کمتر از 3 مگابایت باشه .
2 - بعد از آپلود هر 6 عکس مقدارشو درون یک متغییر ریخته بشه و با , از هم جدا شده باشن و نهایتا اینسرت بشه درون دیتابیس .
در صورتی که همه عکسا آپلود نشد ، یه خطا بده و مثلا اگر عکس شماره 3 آپلود نشد و دوتای قبلی آپلود شد ، اون دوتا پاک بشه و درون هاست ذخیره نشه !
کدی که من برای یک عکس نوشتم اینه :
<?php
$uploadpath = '../uploads/';
$max_size = 2000;
$alwidth = 900;
$alheight = 800;
$allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png');
if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {
$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);
$sepext = explode('.', strtolower($_FILES['fileup']['name']));
$type = end($sepext);
list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);
$err = '';
if(!in_array($type, $allowtype)) $err .= 'The file: <b>'. $_FILES['fileup']['name']. '</b> فرمت فایل شما غیر مجاز است . تنها فرمت تصاویر قابل قبول است .';
if($_FILES['fileup']['size'] > $max_size*1000) $err .= '<br/>حجم فایل بیش از حد مجاز است : '. $max_size. ' KB.';
if(isset($width) && isset($height) && ($width >= $alwidth || $height >= $alheight)) $err .= '<br/>ابعاد تصویر بیش از حد مجاز است: '. $alwidth. ' x '. $alheight;
if($err == '') {
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) {
include_once("../includes/config.php");
$cmelli = $_POST["cmelli"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$pname = $_POST["pname"];
$nshenasname = $_POST["nshenasname"];
$bdateroz = $_POST["roz"];
$bdatemah = $_POST["mah"];
$bdatesal = $_POST["sal"];
$bdate = "$bdatesal"."$bdatemah"."$bdateroz";
$taahol = $_POST["taahol"];
$children = $_POST["children"];
$nvazife = $_POST["nvazife"];
$state = $_POST["state"];
$city = $_POST["city"];
$mtahsil = $_POST["mtahsil"];
$address = $_POST["address"];
$postalcode = $_POST["postalcode"];
$tellephone = $_POST["tellphone"];
$mobile = $_POST["mobile"];
$shoghl = $_POST["shoghl"];
$semat = $_POST["semat"];
$tellkar = $_POST["tellkar"];
$addresskar = $_POST["addresskar"];
$pic = $_FILES['fileup']['name'];
$email = $_POST["email"];
$email = $_POST["email"];
$password = MD5($_POST["userPass"]);
$loginip = $_SERVER['REMOTE_ADDR'];
$details = $_POST["details"];
$query ="INSERT INTO tbl_user ( cmelli,fname,lname,pname,nshenasname,bdate,taahol, children,nvazife,state,city,mtahsil,address,postal code,tellphone,mobile,shoghl,semat,tellkar,address kar,pic,email,password,loginip,details )
VALUES ('{$cmelli}','{$fname}','{$lname}' , '{$pname}' ,'{$nshenasname}' ,'{$bdate}' ,'{$taahol}' ,'{$children}' ,'{$nvazife}' ,'{$state}' ,'{$city}' ,'{$mtahsil}' ,'{$address}' ,'{$postalcode}' ,'{$tellephone}' ,'{$mobile}' ,'{$shoghl}' ,'{$semat}' ,'{$tellkar}' ,'{$addresskar}' ,'{$pic}' ,'{$email}' ,'{$password}' ,'{$loginip}' ,'{$details}' )";
if(mysql_query($query))
{
echo '<div class="add-user-ok"><i class="icon-ok-sign"></i> کاربر با موفقیت اضافه شد .</div>';
}
else
{
echo '<div class="add-user-error"><i class="icon-remove-sign"></i> در اضافه کردن کاربر خطایی رخ داده است !</div>';
}
}
else echo '<b>خطا در آپلود تصویر.</b>';
}
else echo $err;
}
?>
در موردی که گفتم از آرایه بعنوان اسم استفاده کردم و آپلود با موفقیت انجام مشد اما تمام شرطها اعمال نمیشد .
دوستان ، لطف میکنید کدم رو تکمیل کنید تا مشکلم رفع بشه؟
متشکرم .