کد انتهایی یه مشکل کوچک داشت که اصلاح شد :)‌
ایندفعه،‌میخوام یه چیزی بنویسم درباره دانلود (آخرش هم نفهمیدم که این کلمه رو به فارسی چی بگیم!! بارگزاری،‌بارگیری، گرفتن ..)‌ خیلی وقتها میخوایم که یه فایل رو محافظت کنیم که همینجوری دانلود نشه، یعنی حتما اسم کاربری بخواد، یا اینکه مطمئن شیم که فایل حتما از تو صفحه خودمون دانلود میشه که آمار درست باشه.
یه راه ساده وجود داره، که بیشتر از اون استفاده میشه،‌اونهم به سادگی گذاشتن فایل در یک پوشه خارج از دسترسی مستقیم (مثلا خارج از ریشه وب سرور، یا محافظت شده توسط وب سرور،‌مثلا آپاچی با کمک فایل .htaccess ) و بعد به پس دادن فایل از طریق کد به کاربر. مثلا برای PHP میتونید همچین کدی بنویسید :

//Before this point you should check everything
//include user authenticate and any thing else
$result=@readfile('/path/to/file');
if ($result===false)
   //Error :(
else {
   // $result contain byte count
}

این روش بد نیست، کاربر نمیتونه لینک مستقیم بگیره، که خوب این معمولا برای خیلی ها مهمه، خصوصا با این وضع وبلاگها و سایتهای ایرانی که متخصص کپی/پیست و گرفتن لینک و گذاشتن به اسم خودشون حتی بدون زحمت آپلود مجدد هستن.
اما یه عیب بزرگ داره،‌این دانلود دیگه قابلیت resume نداره. منم که دقیقا میتونم کاربر دیال آپی رو درک کنم،‌مخصوصا اینکه تو ایران بزرگ شدم!! خوب این شد که نشستم و بررسی کردم که چطوری این مشکل رو هم حل کنم. البته این کارو خیلی وقت پیش انجام دادم، و چون امروز خواهر زاده ام گیر داده بود، ‌پیداش کردم و یادم افتاد که میشه اینجا بنویسمش،‌و خصوصا اینکه این روزا همش تو فکر اینم که چی بنویسم که ارزش نوشتن داشته باشه .
خواندن ادامه این مطلب »

خیلی پیش می آید که ما نیاز به چند آدرس مختلف در یک کامپیوتر داشته باشیم، مثلا نیاز مند این باشیم که کاربران شبکه داخلی، با زدن آی پی کامپیوتر در بروزر خودشان، یک صفحه ببینند و مثلا کاربرانی که از یک شبکه دیگر (مثلا اینترنت) به کامپیوتر شما رجوع میکنند چیز دیگری ببینند و اصلا گاهی لازم میشود که شما چندین هاست مجازی مختلف به صورت محلی (Local) بر روی کامپیوتر خود داشته باشید تا بتوانید به صورت کاملا مستقل از هم بر روی هر کدام کار کنید.

برای اینکار آپاچی قابلیت Virtual Host را پیشنهاد میکند.

برای اینکار ابتدا باید آی پی های مختلف مد نظرتان را مشخص کنید. مثلا من به این آی پی ها نیاز دارم و میخواهم همه آنها به صورت جدا از هم باشند.

  1. 127.0.0.1 برای استفاده شخصی خودم
  2. 192.168.0.1 آدرسی که کاربران شبکه میبینند
  3. 78.53.33.13 آی پی من در اینترنت (این آی پی همین طوری و خیلی اتفاقی انتخاب شده :) باور کنید من برلین نیستم و این آی پی من نیست! )
  4. و در نهایت یک سایت محلی دیگر، مجزا از 127.0.0.1

برای اینکار، نیازمند ویرایش فایل httpd.conf هستیم .این فایل برای ویندوز در آدرسی هست که آپاچی نصب شده، ولی در لینوکس در /etc/apache2 هست.

127.0.0.1

معمولا آدرس 127.0.0.1 را میتوانید هنگام نصب به عنوان آدرس اصلی انتخاب کنید، اگر بنا به هر دلیلی این آدرس در کامپیوتر شما مشکل داشت، دقیقا مثل آدرس چهارم عمل کنید

192.168.0.1

برای افزودن این آدرس، کافی است کد زیر را به انتها فایل httpd.conf اضافه کنید :

<VirtualHost 192.168.0.1:80>
    ServerAdmin yourmail@yourhost.ext
    DocumentRoot "c:/path/to/the/root/folder/for/this/host"
    ServerName localnetwork.loc
</VirtualHost>

خواندن ادامه این مطلب »