نمایش نتایج 1 تا 31 از 31

نام تاپیک: اعتبارسنجی نوع عکس

  1. #1
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question اعتبارسنجی نوع عکس

    سلام
    من یه سری کد نوشتم که می خوام برای نوع عکس اعتبارسنجی انجام بده ولی نمی دونم چرا فقط برای اندازه ی عکس اعتبارسنجی می کنه ولی برای نوع عکس اعتبارسنجی نمی کنه با اینکه کدهاش رو گذاشتم ولی کدهاش کار نمی کنه.
    ممنون میشم راهنماییم کنید.
     if((!$_FILES["file"]["size"] < 1000)
    &&(!$_FILES["uploadedfile"]["type"] == "image/gif")
    ||(!$_FILES["uploadedfile"]["type"] == "image/png")
    ||(!$_FILES["uploadedfile"]["type"] == "image/jpeg") // "jpeg" for Firefox
    ||(!$_FILES["uploadedfile"]["type"] == "image/pjpeg")) // "jpeg" for IE
    {
    echo " حجم عکس زیاد است";

    }else{


  2. #2
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    به این شکل اصلاح کنید

    <?php
    if($_FILES["file"]["size"] < 1000){
    $format=array("image/gif","image/png","image/jpeg","image/pjpeg");
    if(in_array($_FILES['file']['type'],$format)){
    move_uploaded_file($_FILES['file']['tmp_name'],$_FILES['file']['name']);

    }else
    echo "نوع عکس مورد قبول نیست";



    }else
    echo "حجم فایل زیاد است";

    ?>


  3. 3 کاربر از funpatogh به خاطر این مطلب مفید تشکر کرده اند:


  4. #3
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1387
    پست
    32
    تشکر کردن
    10
    6 بار تشکر شده در 6 پست

    نقل قول: اعتبارسنجی نوع عکس

    حالا سوای مشکل ات هیچ وقت عکس رو اینطوری اعتبار سنجی نکن. چون من اولین نفری خواهم بود که سایتت را (البته بعنوان هکر کلاه سفید) هک خواهم کرد.
    به کمک کتابخانه gd2 عکس را باز کن و از اونجا بررسی کن.
    function handleUpload($option, $type = 'image', $fieldName, $uploadPath, $oldfile = '')
    {
    echo "<pre>" . $option . $type . $fieldName . $uploadPath;
    print_r($_FILES);
    echo "</pre>";
    //any errors the server registered on uploading
    $fileError = $_FILES[$fieldName]['error'];
    if ($fileError > 0)
    {
    echo "form error!";
    switch ($fileError)
    {
    case 1:
    echo JText::_( 'FILE TO LARGE THAN PHP INI ALLOWS' );
    return;

    case 2:
    echo JText::_( 'FILE TO LARGE THAN HTML FORM ALLOWS' );
    return;

    case 3:
    echo JText::_( 'ERROR PARTIAL UPLOAD' );
    return;

    case 4:
    echo JText::_( 'ERROR NO FILE' );
    return;
    }
    }
    //import joomlas filesystem functions, we will do all the filewriting with joomlas functions,
    //so if the ftp layer is on, joomla will write with that, not the apache user, which might
    //not have the correct permissions
    jimport('joomla.filesystem.file');
    jimport('joomla.filesystem.folder');

    //check the file extension is ok
    $fileName = $_FILES[$fieldName]['name'];
    $uploadedFileNameParts = explode('.',$fileName);
    $uploadedFileExtension = array_pop($uploadedFileNameParts);
    if($type == 'image') $ext = 'jpeg,jpg,png,gif';
    elseif($type == 'pdf') $ext = 'pdf';
    $validFileExts = explode(',', $ext);

    //assume the extension is false until we know its ok
    $extOk = false;

    //go through every ok extension, if the ok extension matches the file extension (case insensitive)
    //then the file extension is ok
    foreach($validFileExts as $key => $value)
    {
    if( preg_match("/$value/i", $uploadedFileExtension ) )
    {
    $extOk = true;
    }
    }
    if ($extOk == false)
    {
    echo JText::_( 'INVALID EXTENSION' );
    return;
    }

    //the name of the file in PHP's temp directory that we are going to move to our folder
    $fileTemp = $_FILES[$fieldName]['tmp_name'];

    if($type == 'image'){
    //for security purposes, we will also do a getimagesize on the temp file (before we have moved it
    //to the folder) to check the MIME type of the file, and whether it has a width and height
    $imageinfo = getimagesize($fileTemp);

    //we are going to define what file extensions/MIMEs are ok, and only let these ones in (whitelisting), rather than try to scan for bad
    //types, where we might miss one (whitelisting is always better than blacklisting)
    $okMIMETypes = 'image/jpeg,image/pjpeg,image/png,image/x-png,image/gif';
    $validFileTypes = explode(",", $okMIMETypes);

    //if the temp file does not have a width or a height, or it has a non ok MIME, return
    if( !is_int($imageinfo[0]) || !is_int($imageinfo[1]) || !in_array($imageinfo['mime'], $validFileTypes) )
    {
    if($imageinfo[0] > 400 || $imageinfo[1] > 400){
    echo JText::_( 'INVALID FILETYPE' );
    return false;
    }
    }
    }
    //lose any special characters in the filename
    $fileName = date('Y-z-His') . '-' . ereg_replace("[^A-Za-z0-9.]", "", $fileName);

    //always use constants when making file paths, to avoid the possibilty of remote file inclusion
    $uploadPath .= $fileName;
    if(!JFile::upload($fileTemp, $uploadPath))
    {
    exit;
    echo JText::_( 'ERROR MOVING FILE' );
    return false;
    }
    else
    {
    // success, exit with code 0 for Mac users, otherwise they receive an IO Error
    if($oldfile != '')
    {
    if($type == 'image' && $oldfile != '')
    {
    deleteCoverpic($oldfile);
    }
    else
    {
    deletePDF($oldfile);
    }
    }
    return $fileName;
    }
    exit;
    }
    ببخشید طولانیه. ماله یکی از پروژه های جوملاام هست.

  5. #4
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    کدی که آقای funpatogh گذاشته همه اش پیام میده که حجم فایل زیاد است حتی اگه حجم فایلم کم باشه و نوع عکس رو که اصلا اعتبارسنجی نمی کنه.
    آقای hamid_rezas اگه یه کم در مورد کدی که نوشتید و اینکه چرا کد من هک میشه توضیح می دادید خیلی خوب بود. کدهای شما خیلی طولانی هست به نظرتون نمیشد یه کنم خلاصه تر بشه؟

  6. #5
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,756
    تشکر کردن
    171
    830 بار تشکر شده در 550 پست

    نقل قول: اعتبارسنجی نوع عکس

    برای بدست اورد فرمت فایل ، از کد زیر استفاده کنید

    $format=end(explode(".",$_FILES[name]['tmp_name']));

  7. #6
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    داداش اگه این کدها رو کامل ترش می کردی خیلی خوب بود . مثلا مشخص می کردی که چه فرمت هایی رو اعتبارسنجی کنه. الان من به عنوان یه مبتدی چیزی از اینا که جزئیات رو هم نگفته نمی فهمم.
    ممنون میشم کد ها رو کاملترش کنی.

  8. #7
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    دوست عزیز میشه فرم خودتان را هم اینجا بگزارید
    چون نه کد بنده مشکل داره نه کد دوست عزیزی که گزاشتن اگر کدم مشکلی داشت که آقای کرامتی مدیر بخش تشکر نمیکردند
    کد صفحتون را کامل بگزارید یا شما غلط راهنمایی کردید که چی میخواهید یا چیزی دیگر انتظار دارید که ما نفهمیدیم

  9. کاربرانی که به خاطر مطلب مفید funpatogh از وی تشکر کرده‌اند:


  10. #8
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    حق با شماست داداش
    من معذرت می خوام .
    من باید زودتر کل کدهام رو میذاشتم . کل کدهای من اینه:
    <?php
    @session_start();
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target_path = "";
    $dbresult = mysql_query("SELECT * FROM 'uploads'");
    $text = $_REQUEST['text'];
    if($text=="")
    die('نام را وارد نکردید');
    if(!empty($_FILES)){
    // Add the original filename to our target path.
    // Result is "uploads/filename.extension"
    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
    $hast=true;
    while($hast)
    {
    if(file_exists($uploadedfile))
    $uploadedfile="1".$uploadedfile;
    else
    $hast=false;
    }
    if((!$_FILES["file"]["size"] < 1000)
    &&(!$_FILES["uploadedfile"]["type"] == "image/gif")
    ||(!$_FILES["uploadedfile"]["type"] == "image/png")
    ||(!$_FILES["uploadedfile"]["type"] == "image/jpeg") // "jpeg" for Firefox
    ||(!$_FILES["uploadedfile"]["type"] == "image/pjpeg")) // "jpeg" for IE
    {
    echo " حجم عکس زیاد است";

    }else{
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    mysql_query("INSERT INTO uploads(text,ID, URL) VALUES ('$text' , '$client_ID', '$target_path')");
    echo "عکس با موفقت ارسال شد";
    } else{
    echo "مشکلی در هنگام ثبت نام روی داده است";
    }
    }
    }
    ?>
    از اینکه به سوالات من جواب میدید متشکرم انشاالله بتونم جبران کنم.
    راستی این کدها مشکل امنیتی هم داره؟

  11. #9
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    اینم کدهای html که می خواستید.

    <form id="form1" name="form1" enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20"><br>
    <input type="submit" name="submit" VALUE="SIZE" />
    </form>


  12. #10
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    اینجا رو برای چی نوشتید؟

    $dbresult = mysql_query("SELECT * FROM 'uploads'");
    ایراد دوم همیشه پست شدن یک دکمه مثل submit رو چک کنید بعد اگر پست شده بود یعنی فرم ارسال شده و بقیه برنامه اجرا شود

  13. #11
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    این قسمت رو برای انتخاب جدول نوشتم. الان این کد یه عکس و یه متن رو ارسال می کنه . عکس رو برای پوشه ارسال می کنه و یه آدرس ازش می سازه اون آدرس رو میده به جدول و متن رو هم میده به جدول .

  14. #12
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس


    <?php
    @session_start();
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target="uploads";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    if($_FILES['uploadedfile']['size']>100000){
    echo "حجم فایل زیاد است";
    } elseif(!in_array($_FILES['uploadedfile']['type'],$format)){
    echo "این نوع فایل مورد قبول نیست";
    }else{
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];


    }
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],"$target/".$_FILES['uploadedfile']['name']))
    mysql_query("INSERT INTO uploads VALUES ('".$_POST['text']."' , '$client_ID', '$des')")or die(mysql_error());


    }


    }else
    echo "لطفا یک فایل انتخاب کنید";
    }else
    echo "لطفا نام را وارد کنید";
    }


    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>

    آخرین ویرایش به وسیله funpatogh : یکشنبه 23 آبان 1389 در 20:04 بعد از ظهر

  15. #13
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    کد رو من امتحان کردم این اخطار رو میده:
    Warning: move_uploaded_file(uploads/40.jpg) [function.move-uploaded-file]: failed to  open stream: No such file or directory in  F:\xampp\xampp\htdocs\load\up.php on line  24

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'F:\xampp\xampp\tmp\php5D.tmp' to 'uploads/40.jpg' in F:\xampp\xampp\htdocs\load\up.php on line 24

    میشه فیلد هاش رو بگی؟
    بهتر بود اون کدهای قبلی رو تغییر ندی و فقط اعتبارسنجیش رو درست کنی .

  16. #14
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    من که فیلد های شما رو دست نزدم
    وقتی الگوریتم که استفاده میکنید اشتباه است مجبورم که کدتان را تغییر بدهم
    خطای شما مربوط به وجود نداشتن دایرکتوری uploads میشود !!!!!!!!!!!

  17. #15
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    نام uploads نام جدول من در بانک اطلاعاتی بود ولی با این حال من یه پوشه توی پوشه ی htdocs لوکال هاستم با عنوان uploads ساختم و همین فایلی هایی که دادید رو توش گذاشتم ولی بازم همین اخطار رو میده :
    Warning: move_uploaded_file(uploads/fekr.gif) [function.move-uploaded-file]: failed to  open stream: No such file or directory in  F:\xampp\xampp\htdocs\uploads\up.php on line  24

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'F:\xampp\xampp\tmp\php22.tmp' to 'uploads/fekr.gif' in F:\xampp\xampp\htdocs\uploads\up.php on line 24
    به خط 24 گیر میده یعنی این خط :
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],"$target/".$_FILES['uploadedfile']['name']))
    وقتی من در کلمه ی $target/ میام و / رو بر میدارم دیگه هیچ پیام و اخطاری نمیده و در mysql و در فیلد text آدرس فایل یعنی مثلا : uploads/fekr.gif ذخیره میشه و در قسمت فیلد URL هم هیچی ذخیره نمیشه در صورتی که آدرس عکس باید در فیلد URL ذخیره بشه.
    در صورتی که / رو برندارم هیچی ذخیره نمیشه.
    بازم ممنون.

  18. #16
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,756
    تشکر کردن
    171
    830 بار تشکر شده در 550 پست

    نقل قول: اعتبارسنجی نوع عکس

    رفیق از این استفاده کن ، اعتبار سنجی رو انجام میده

    <?php
    $file_format=end(explode(".",$_FILES[name]['tmp_name']));
    $formats=array('gif','png','jpg');
    if(in_array($file_format,$formats)){
    echo 'Code Baraye Upload!';
    }
    ?>

    کد کامل تری هم خواستی بنده در خدمتم

  19. #17
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    اگه میشد کدهای اعتبارسنجی رو کامل ترش می کردی بهتر بود نمی دونم چرا وقتی میذارمشون به نوع عکس دیگه ای غیر از فرمت های انتخاب شده گیر نمیده ، اگه میشد اعتبارسنجی اندازه ی عکس رو هم براش میذاشتی خوب بود. کدهای من در صفحه ی 8 هست می خوام با اونا مطابقت کنه. فکر کنم من کد ها رو صحیح نمیذارم برای همین گفتم با کدهای صفحه ی 8 مطابقت کنه .ممنون.

  20. #18
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,756
    تشکر کردن
    171
    830 بار تشکر شده در 550 پست

    نقل قول: اعتبارسنجی نوع عکس


    <?php
    @session_start();
    $formats=array('jpg','gif','bmp','png');
    $file_format=end(explode('.',$_FILES['uploadedfile']['name']));
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target_path = "";
    $dbresult = mysql_query("SELECT * FROM 'uploads'");
    $text = $_REQUEST['text'];
    if($text=="")
    die('نام را وارد نکرديد');
    if(!empty($_FILES)){
    // Add the original filename to our target path.
    // Result is "uploads/filename.extension"
    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
    $hast=true;
    while($hast)
    {
    if(file_exists($uploadedfile))
    $uploadedfile="1".$uploadedfile;
    else
    $hast=false;
    }
    if(in_array($file_format,$formats)){
    if($_FILES["uploadedfile"]["size"]/1000>100) // 100 KB
    {
    echo 'Image Size IS Large!';

    }
    else
    {
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    mysql_query("INSERT INTO uploads(text,ID, URL) VALUES ('$text' , '$client_ID', '$target_path')");
    echo "عکس با موفقت ارسال شد";
    } else{
    echo "مشکلي در هنگام ثبت نام روي داده است";
    }
    }
    }
    else
    {
    echo $file_format;
    echo 'File Format Is Not Gif,Png,Jpg,Bmp !';


    }
    }
    ?>

  21. کاربرانی که به خاطر مطلب مفید binyaft از وی تشکر کرده‌اند:


  22. #19
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    عزیز این کد رو توی یک فایل ذخیره کن

    <?php
    @session_start();
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target="uploads";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    if($_FILES['uploadedfile']['size']>100000){
    echo "حجم فایل زیاد است";
    } elseif(!in_array($_FILES['uploadedfile']['type'],$format)){
    echo "این نوع فایل مورد قبول نیست";
    }else{
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];


    }
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد";
    mysql_query("INSERT INTO uploads VALUES ('".$_POST['text']."' , '$client_ID', '$des')")or die(mysql_error());
    }
    }


    }else
    echo "لطفا یک فایل انتخاب کنید";
    }else
    echo "لطفا نام را وارد کنید";
    }



    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>

    بعد کنار همین فایل یک فولدر به نام uploads بساز و تست کن

  23. کاربرانی که به خاطر مطلب مفید funpatogh از وی تشکر کرده‌اند:


  24. #20
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Question نقل قول: اعتبارسنجی نوع عکس

    کدت عالیه ، هم اعتبارسنجی نوع عکس و هم اندازه ی عکس کار می کنه من دو تا متغییر $des و ".$_POST['text']." رو جاشون رو عوض کردم بعد متن در بانک اطلاعاتی ثبت شد ولی آدرس عکس ثبت نشد.
    من برای آدرس عکس از $target_path استفاده کرده بودم و شما از $des استفاده کردید . توی جدول mysql هم برای آدرس عکس ، URL وارد کردم.
    $target_path رو جایگزین $des کردم ولی کار نکرد.
    اینو بگید دیگه کار تموم.
    اینم بگم که قبل از اینکه این دو تا متغییر رو جاشون رو با هم عوض کنم . وقتی فایل آپلود می کردم آدرس عکس به جای متن توی فیلد text می رفت و متن هم توی هیچ کدوم از این دو تا فیلد نمیرفت. در صورتی که باید توی فیلد text می رفت.
    بازم از لطفتون ممنونم.
    راستی این کدی که شما گذاشتید امنیتش خوبه؟ چون بچه ها در مورد کدی قبلی من بهم گفتن امنیت لازم رو نداره.
    یک نکته ای که فراموش کردم بگم این بود بعضی وقت ها هم به جای اخطار اندازه ی عکس اخطار echo "لطفا یک فایل انتخاب کنید"; را می دهد.
    آخرین ویرایش به وسیله ravand : یکشنبه 23 آبان 1389 در 21:56 بعد از ظهر

  25. #21
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    من یک سوال واسم پیش امد مگه فیلد text که گزاشتی قرار هست که برای نام عکست انتخاب شود؟

  26. #22
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    من دقیق هنوز نفهمیدم که چه طوری میخوای؟
    راستی این کدی که شما گذاشتید امنیتش خوبه؟ چون بچه ها در مورد کدی قبلی من بهم گفتن امنیت لازم رو نداره.
    یک نکته ای که فراموش کردم بگم این بود بعضی وقت ها هم به جای اخطار اندازه ی عکس اخطار echo "لطفا یک فایل انتخاب کنید"; را می دهد.
    امنیتش هم مشکل نداره اگه دیگه میخوای عکس هات اسم های خیلی اتفاقی باشه یک تابع time هم باید توی اسم عکسهات ترکیب کنی
    برای اون مشکل بعضی وقت ها هم من اول سایز رو چک میکردم بعد نوع رو اما الان بر عکس کردم که اول نوع فایل رو چک کنه بعد سایز رو
    کدت رو بدون ارتباط با دیتابیس اول اجرا کن ببین پیام های که میدهد همش درسته؟
    و اسم عکسی که قرار هست اپلود شود درسته یا نه؟

    <?php
    $target="uploads";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    if(!in_array($_FILES['uploadedfile']['type'],$format)){

    echo "این نوع فایل مورد قبول نیست";
    }elseif($_FILES['uploadedfile']['size']>100000){
    echo "حجم فایل زیاد است";

    }else{




    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];


    }
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد<br>";
    echo $des;

    }
    }


    }else
    echo "لطفا یک فایل انتخاب کنید";
    }else
    echo "لطفا نام را وارد کنید";
    }



    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>
    الان فایل اپلود می شود و یک پیام هم میدهد که با موفقیت کار انجام شده و اسم عکس همرا با مسیر کاملش هم که قرار هست توی دیتابیس بریزد چاپ میشود

  27. #23
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Exclamation نقل قول: اعتبارسنجی نوع عکس

    اینم امتحان کردم . این کد منو کاملا گیج کرده . هر باری یه جوری پیام میده بعضی وقت ها قاطی می کنه و اونطوری که تعریفش کردید کار نمی کنه. اولش امتحانش کردم عکس با سایز بزرگ رو می نوشت که لطفا یه فایل انتخاب کنید بعدا که دوباره امتحان کردم نوشت فایل اپلود شد
    uploads/40_1.jpg و این آدرسم کنار پیام موفقیت داد.
    هر باری که امتحان می کنی این اتفاقا می افته. اعتبارسنجی برای نوع عکس خوب کار می کنه و مشکلی نداره.

  28. #24
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    عزیز من تمام کد هارو توی لوکال تست میکنم اشکالاتی که میگید برای من نیامد اما خوب تغییرات میدهم تست کنید خبر بدهید


    <?php
    $target="uploads";
    $size=100000;
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    $name=($_POST['text'])?$_POST['text']:"";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){

    if(in_array($_FILES['uploadedfile']['type'],$format)){
    if($_FILES['uploadedfile']['size']<$size){
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];
    }

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد<br>";
    echo $des;

    }



    }else
    echo "حجم فایل زیاد است";




    }else
    echo "نوع فایل مورد قبول نمی باشد";



    }else
    echo "لطفا فایل خودتان را انتخاب کنید";


    }else
    echo "لطفا نام را وارد کنید";
    }


    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20" value="<?php echo $name;?>"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>

    نام فایل هاتون نباید فارسی باشه و گرنه ایراد میگیره و همیشه پیغام نوع فایل مورد قبول نیست میدهد

  29. #25
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Exclamation نقل قول: اعتبارسنجی نوع عکس

    فکر کنم این صدمین باری باشه که این اسکریپت رو امتحان می کنم. بازم این کد ها رو امتحان کردم مثل قبل بود . اگه فایل رو با حجم زیاد آپلود کنم میگه " لطفا فایل خودتان را انتخاب کنید " امروز یه مشکل دیگه هم پیدا کرد اینکه وقتی فایل آپلود میشه در قسمت name می نویسه Array . راستی من هنوز فایلی رو با نام فارسی آپلود نکردم و همه ی این اسکریپت هایی که دادی و من امتحان کردم عکسی با نام فارسی آپلود نکردم و نامشون انگلیسی بود.

  30. #26
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    آقا اینم امتحان کن
    فکر کنم فهمیدم مشکلتون چی بود


    <?php
    $target="uploads";
    $size=100000;
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    $text=($_POST['text'])?$_POST['text']:"";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){

    if(in_array($_FILES['uploadedfile']['type'],$format)){
    if($_FILES['uploadedfile']['size']<=$size){
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];
    }

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد<br>";
    echo $des;

    }



    }else
    echo "حجم فایل زیاد است";




    }else
    echo "نوع فایل مورد قبول نمی باشد";



    }else
    echo "لطفا فایل خودتان را انتخاب کنید";


    }else
    echo "لطفا نام را وارد کنید";
    }


    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">

    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20" value="<?php echo $text;?>"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>

  31. 2 کاربر از funpatogh به خاطر این مطلب مفید تشکر کرده اند:


  32. #27
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Talking نقل قول: اعتبارسنجی نوع عکس

    داداش یه دنیا ممنون کدهات کار می کنه . من کدها رو مثل کدهای قبلی کردم و دیتابیس رو هم بهش دادم . کاری کردم که اطلاعات به mysql ارسال بشه الان فقط متن به جدول در mysql ارسال شد و لینک عکس ارسال نشد . شما برای این کدها از لینک زیر استفاده کردی:
    mysql_query("INSERT INTO uploads VALUES ('$des' , '$client_ID', '".$_POST['text']."')")or die(mysql_error());

    و من در کد خودم از این لینک :
                            mysql_query("INSERT INTO uploads(text,ID, URL) VALUES ('$text' , '$client_ID', '$target_path')");


    یعنی شما از $des برای لینک استفاده کردی و من از $target_path حالا باید یه کاری بکنیم که لینک عکس به جدول در mysql ارسال شود.

  33. #28
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,756
    تشکر کردن
    171
    830 بار تشکر شده در 550 پست

    نقل قول: اعتبارسنجی نوع عکس

    <?php
    @session_start();
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target="uploads";
    $size=100000;
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");
    $text=($_POST['text'])?$_POST['text']:"";
    if(isset($_POST['submit'])){
    if(isset($_POST['text']) && strlen(trim($_POST['text']))!=0){
    if($_FILES['uploadedfile']['error']==0){

    if(in_array($_FILES['uploadedfile']['type'],$format)){
    if($_FILES['uploadedfile']['size']<=$size){
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];
    }

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد<br>";
    mysql_query("INSERT INTO uploads (`url`,`text`) VALUES ('$des' ,'".$_POST['text']."')")or die(mysql_error());

    }



    }else
    echo "حجم فایل زیاد است";




    }else
    echo "نوع فایل مورد قبول نمی باشد";



    }else
    echo "لطفا فایل خودتان را انتخاب کنید";


    }else
    echo "لطفا نام را وارد کنید";
    }


    ?>

    <form id="form1" name="form1" enctype="multipart/form-data" action="" method="POST">

    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20" value="<?php echo $text;?>"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>

    نام فیلد ها رو برای insert ننوشته بودید ( در صورتی میتونید تعیین نکنید که ترتیب فیلد های یک جدول رو بدونید )

  34. کاربرانی که به خاطر مطلب مفید binyaft از وی تشکر کرده‌اند:


  35. #29
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Lightbulb نقل قول: اعتبارسنجی نوع عکس

    الان من یه جدول دارم با نام uploads و دو تا فیلد به نام های text و URL که text برای متن نام هست و URL برای آدرس عکس . حالا من از کدهای زیر برای چاپ کردن متن و آدرس عکس استفاده کردم .
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8"/>
    <title></title>
    </head>
    <body>
    <?php
    $Host="localhost";
    $User = "root";
    $Password = "";
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");

    $target_path = "";

    $dbresult = mysql_query("SELECT * FROM 'uploads'");
    $Link= mysql_connect($Host,$User,$Password);
    // Displays all current files
    $getDocuments = mysql_query("SELECT * FROM uploads");

    while($row = mysql_fetch_array($getDocuments,$dbresult))
    {
    echo ($row["text"]."<br>"."Download: <a href='" . $row['URL'] . "'>" . $row['URL'] . "</a><br><br><br>");
    }
    ?>
    </body>
    </html>

    از داش مهدی (binyaft ) و آقای funpatogh هم ممنون که تا اینجا کمک کردن خدا خیرتون بده

  36. کاربرانی که به خاطر مطلب مفید ravand از وی تشکر کرده‌اند:


  37. #30
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,370
    تشکر کردن
    2,014
    1,244 بار تشکر شده در 866 پست

    Talking نقل قول: اعتبارسنجی نوع عکس

    امدم کد ها رو یه کم تغییرش دادم گفتم اینطوری بهتره کدهای سمت کلاینت رو جدا کردم و در کدهای سمت سرور یعنی کدهای قسمت php کدهای text رو عوض کردم .
    دو تا صفحه ساختم یکی کدهای html رو گذاشتم مثلا با نام send.htm و کدهای سمت سرور که php بود رو با نام upload.php . کدهای value="<?php echo $text;?>" که در قسمت کدهای html بود رو حذف کردم.
    کدهای قسمت html یعنی send.htm :
    <form id="form1" name="form1" enctype="multipart/form-data" action="upload.php" method="POST">

    Choose a file to upload: <input name="uploadedfile" type="file" id="uploadedfile" /><br />

    name: <input type="text" name="text" id="text" size="20"><br>
    <input type="submit" name="submit" VALUE="send" />
    </form>
    و کدهای upload.php :
    <?php
    session_start();
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("tesavir");
    $target="uploads";
    $size=100000;
    $format=array("image/gif","image/jpeg","image/pjpeg","image/png");

    $text = $_REQUEST['text'];
    if($text=="")
    die('نامتان را وارد نکردید');

    if($_FILES['uploadedfile']['error']==0){

    if(in_array($_FILES['uploadedfile']['type'],$format)){
    if($_FILES['uploadedfile']['size']<=$size){
    $des="$target/".$_FILES['uploadedfile']['name'];
    if(file_exists($des)){
    $i=0;
    $name=pathinfo($des);
    while(file_exists($des))
    $des="$target/".$name['filename']."_".(++$i).".".$name['extension'];
    }

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
    echo "فایل اپلود شد<br>";
    mysql_query("INSERT INTO uploads (`url`,`text`) VALUES ('$des' ,'".$_POST['text']."')")or die(mysql_error());

    }



    }else
    echo "حجم فایل زیاد است";




    }else
    echo "نوع فایل مورد قبول نمی باشد";



    }else
    echo "لطفا فایل خودتان را انتخاب کنید";




    ?>

    گفتم اینطوری باشه بهتره

  38. 2 کاربر از ravand به خاطر این مطلب مفید تشکر کرده اند:


  39. #31
    کاربر دائمی آواتار funpatogh
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    925
    تشکر کردن
    90
    735 بار تشکر شده در 426 پست

    نقل قول: اعتبارسنجی نوع عکس

    اما ایراد اصلیتون رو نپرسیدید ها
    شما توی کدهاتون قسمت html اینو داشتید

    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    این کد شبه دستور upload_max_filesize رو توی تنظیمات php.ini که برابر با 2 Mb هست (حداکثر اندازه مجاز برای آپلود) رو تغییر میدهد و میکند 100 Kb
    یعنی دیگه حتی مقدار سایز که توی برنامه تعریف کردی هم بی اثر میشود و نگاه به اون شبه دستور می کنه که اگر بالای 100 کیلو بایت باشه فایلی اپلود نمیشود
    و چون توی برنامه خط

    if($_FILES['uploadedfile']['error']==0){
    گفتیم که اگر فایل با موفقیت آپلود شد و error=0 بود بره مراحل داخل if اما وقتی فایل بالای 100 کیلوبایت باشه این شرط داخل if بر قرار نمیشه و پیغام میدهد که

    echo "لطفا فایل خودتان را انتخاب کنید";

  40. 2 کاربر از funpatogh به خاطر این مطلب مفید تشکر کرده اند:


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •