/ آموزش php - کوکی در php
وندا هاست
طراحی و راه اندازی وبسایت و انجمن توسط ویکی وی بی ویکی وی بی در قبال معاملات صورت گرفته با هر یک از اعضا و سفارشات طراحی خارج از این اطلاعیه هیچگونه مسئولیتی نمی پذیرد
بک لینک ها
تبلیغات شما وندا هاست
نمایش نتایج: از 1 به 1 از 1

موضوع: آموزش php - کوکی در php

  1. #1
    M3hRd4D آنلاین نیست.
    M3hRd4D
    کاربر سايت
    584نوشته776مورد پسند

    تاریخ عضویت
    Nov 2012
    شماره عضویت
    26
    پسندیده است
    563 پست
    بلاگ
    0 پست
    میزان امتیاز
    788
    www.esmalagha.ir

    آموزش php - کوکی در php

    یکی از کارهای پر کاربرد در بحث طراحی وب مبحث آپلود فایل (File Uploading) یا بارگذاری فایل می باشد . بنابراین در این قسمت از آموزش PHP به این مبحث می پردازیم .

    آپلود فایل در PHP کار بسیار ساده و راحتی است . برای انجام این کار می بایست ابتدا فرم شما قابلیت ارسال فایل بر روی سرور را داشته باشد . پس اولین مرحله از آپلود فایل در PHP آماده سازی این فرم می باشد . برای آماده سازی این فرم دو نکته حائز اهمیت است یکی خصوصیت method از تگ فرم است که برای آپلود فایل حتما باید از متد post استفاده کرد . دومین مسئله یک خصیصه جدید بنام خصوصیت enctype است که برای فرم هایی که قرار است در آنها عمل آپلود فایل انجام شود باید این خصوصیت را قرار داده و با مقدار multipart/form-data مقداردهی کرد . این attribute به مرورگر می گوید اطلاعات ارسالی به سرور شامل اطلاعات متنی (input های معمول صفحه) و اطلاعاتی مانند فایل یا عکس است . بنابراین فرمی برای آپلود فایل به شکل زیر خواهد بود :
    <form action="upload.php" method="post" enctype="multipart/form-data" >
    <!-- FORM ELEMENTS -->
    </form>

    بعد از ایجاد فرم باید امکانی را در اختیار کاربر بگذاریم که بتواند بوسیله آن فایل های موجود بر روی سیستم خود (client) را مرور کرده و یک فایل را برای ارسال انتخاب کند . این امکان بوسیله یکی نوع از input های html بنام file در اختیار کاربر گذاشته می شود . با این کنترل یک کادر شبیه کنترل text و یک دکمه با عنوان browse نمایش داده می شود که این عنوان قابل تغییر نیست مگر اینکه با css آنرا شبیه سازی کنید. برای این کنترل حتما باید خصوصیت name را مقداردهی کنید چرا که پس از بارگذاری و آپلود فایل از طریق این نام می توانید به این فایل دسترسی داشته باشید . سپس کاربر می تواند با کلیک بر روی دکمه ای از نوع submit اطلاعات این صفحه را سرور ارسال کند . اگر در مورد فرم های html و ارتباط آنها با php و طرز کار دکمه submit اطلاعات زیادی ندارید بهتر است مقاله مربوط به فرم های html و ارتباط بین آنها از طریق php از همین سایت را مطالعه فرمائید .
    بنا براین صفحه نمونه ای که بتواند فایلی را آپلود کند به شکل زیر خواهد بود :
    <form action="upload.php" method="post" enctype="multipart/form-data" >
    <input type="file" name="personalPhoto" />
    <input type="submit" name="btnUpload" />
    </form>
    در اینجا کار ما در سمت کلاینت تمام شده . حال ببینیم در سرور برای گرفتن این فایل باید چه کاری انجام دهیم . در سمت سرور (php) تمامی فایل های آپلود شده در یک آرایه پیش ساخته در PHP به صورت خودکار جمع می شوند . نام این آرایه $_FILES است . این آرایه مانند آرایه های GET و POST یک آرایه انجمنی (Associative) است و به ازاء هر کنترل file در سمت کلاینت یک entry در این آرایه ایجاد می شود . مثلا با توجه به مثال فوق چون نام کنترل فایل personalPhoto است می توانیم در php از عبارت $_FILES['personalPhoto'] برای دستیابی به entry مربوط به فایل ارسالی توسط این کنترل استفاده کنیم . می گویم برای دستیابی به entry مربوط به فایل و نه خود فایل ارسالی ! چرا ؟ برای اینکه هر خانه این آرایه خود آرایه ایست از خصوصیات فایل ارسالی . به ازاء هر فایل 5 خصوصیت error ، size ، type , name و tmp_name در یک آرایه نگهداری می شود . حال نام این آرایه چیست ؟ همین نامی که با هم آنرا دیدیم یعنی $_FILES['personalPhoto'] . بنابراین اگر بخواهیم ببینیم نوع فایل ارسالی که توسط کنترل فایل با نام personalPhoto ارسال شده چیست باید از عبارت $_FILES['personalPhoto']['type'] استفاده کرد . بنابراین این آرایه یک آرایه دو بعدی است که در هر دو بعد انجمنی است .
    حال به بررسی هر یک از این خصوصیات می پردازیم :
    error : در صورتیکه آپلود فایل با خطا مواجه شود این مقدار برابر شماره خطای صورت گرفته است . در صورتیکه بارگذاری با موفقیت انجام شود این مقدار برابر صفر خواهد بود . بنابراین همیشه قبل از کار با سایر خصوصیات و در ابتدای کار با فایل و به منظور جلوگیری از وقوع استثناء (exception) این مقدار را بررسی کنید .
    type : این خصوصیت برابر نوع فایل ارسال شده از سمت کلاینت است . مثلا اگر یک عکس با فرمت jpg ارسال شود این خصوصیت برابر مقدار image/pjpeg (اگر ارسال توسط مرورگر IE انجام شود) یا image/jpeg (اگر ارسال توسط مرورگر FireFox انجام شود) است .
    size : این خصوصیت سایز فایل ارسالی بر حسب بایت است .
    name : این خصوصیت همان نامی است که این فایل در ماشین کلاینت دارد .
    tmp_name : این خصوصیت مربوط به آدرس و نام موقتی این فایل در مسیر قرنطینه شده در سرور است . فایل به محض آپلود به مسیر مورد نظر شما نمی رود بلکه یک آدرس موقتی میگیرد تا چک های لازم بر روی آن انجام شود . پس از تائید فایل باید با دستورات php این فایل را از آن مسیر خارج کرده و به مسیر مورد نظر خود در سایت ببرید . در ادامه با این کار بیشتر آشنا خواهیم شد .
    حال به بررسی یک نمونه عملی می اندازیم :
    در کد بالا دیدید که خصوصیت action فرم برابر upload.php است . یعنی اطلاعات فرم به صفحه ای با نام upload.php ارسال می شود حال ببینیم در این صفحه چه کدی باید بنویسیم . نخست گفتیم که باید خصیصه error را بررسی کنیم :
    <?php
    if(isset($_POST['btnUpload']))
    {
    if($_FILES['personalPhoto']['error']>0)
    {
    echo "Error No ".$_FILES['personalPhoto']['error']." Occured ! <br />";
    }
    else
    {
    // Some Code to move file
    }
    }
    ?>
    هر کد دیگری که به منظور بررسی نوع فایل و سایز فایل و ... و همچنین انتقال فایل بخواهیم بنویسیم باید در بخش else بالا بنویسیم . اگر در مورد تابع isset ابهامی دارید می توانید به مقاله مربوط به فرم ها در PHP از همین سایت مراجعه کنید. حال فرض کنید بخواهیم آپلود فایل را به عکسهای با فرمت jpg و کمتر از 50 کیلوبایت محدود کنیم کد بالا باید به شکل زیر تغییر پیدا کند :

    <?php
    if(isset($_POST['btnUpload']))
    {
    if($_FILES['personalPhoto']['error']>0)
    {
    echo "Error No ".$_FILES['personalPhoto']['error']." Occured ! <br />";
    }
    else
    {
    if(($_FILES['personalPhoto']['tpye']=="image/jpeg" || $_FILES['personalPhoto']['tpye']=="image/pjpeg") && $_FILES['personalPhoto']['size']<=51200)
    {
    //some code to move file
    }
    }
    }
    ?>
    توجه داشته باشید که 50 کیلوبایت 51200 بایت است . حال اگر فایلی حائز این شرایط باشد باید آنرا از مسیر موقت به شاخه مربوط به فایل های آپلودی در مسیر برنامه خود منتقل کنیم .فرض کنید در مسیری که این فایل php وجود دارد شاخه ای بنام image ساخته ایم حال باید دستورات زیر را بنویسیم تا فایل به درستی آپلود شود .

    <?php
    if(isset($_POST['btnUpload']))
    {
    if($_FILES['personalPhoto']['error']>0)
    {
    echo "Error No ".$_FILES['personalPhoto']['error']." Occured ! <br />";
    }
    else
    {
    if(($_FILES['personalPhoto']['tpye']=="image/jpeg" || $_FILES['personalPhoto']['tpye']=="image/pjpeg") && $_FILES['personalPhoto']['size']<=51200)
    {
    if(file_exists('image/'.$_FILES['personalPhoto']['name']))
    echo "This file already exists";
    else
    {
    move_uploaded_file($FILES['personalPhoto']['tmp_name'] , "image/".$_FILES['personalPhoto']['name']);
    echo "This file is stored in images/".$_FILES['personalPhoto']['name']."<br />";
    }
    }
    }
    }
    ?>
    تابع file_exists که در بالا استفاده شده یک پارامتر می گیرد که از جنس آدرس یا نام فایل است و بررسی می کند که آیا این فایل یا آدرس (می تواند فقط نام شاخه باشد) از قبل وجود داشته یا خیر ؟ پس از اینکه مطمئن شدیم وجود ندارد با تابع move_uploaded_file فایل آپلود شده را به داخل شاخه image می فرستیم . حال این فایل در شاخه image با چه نامی ذخیره می شود ؟ با دستوراتی که ما در مثال فوق نوشتیم کاری کردیم که فایل با همان نامی که در ماشین کلاینت داشته در سرور ذخیره شود ولی می توانستیم از یک رشته ثابت و یا یک نام Auto Generate استفاده کنیم . تابع move_uploaded_file به طور کلی دو پارامتر قبول می کند اولی مسیر مبدأ و دومی مسیر مقصد برای انتقال فایل است .

  2. نوين وردپرس تبلیغات شما

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

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

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
خرید بک لینک
مرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بی