<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammad</title>
        <link>https://virgool.io/feed/@mohammadi</link>
        <description>توقف فعالیت در ویرگول - وب سایت ~&gt;  mohammaditor.ir</description>
        <language>fa</language>
        <pubDate>2026-06-29 03:57:12</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/8150/avatar/rsvk4Q.png?height=120&amp;width=120</url>
            <title>Mohammad</title>
            <link>https://virgool.io/@mohammadi</link>
        </image>

                    <item>
                <title>اتصال دامنه به ip لوکال</title>
                <link>https://virgool.io/@mohammadi/%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%AF%D8%A7%D9%85%D9%86%D9%87-%D8%A8%D9%87-ip-%D9%84%D9%88%DA%A9%D8%A7%D9%84-dvqcqoj2xxvj</link>
                <description> سلاماگه طراح وب باشین، حتما با این موضوع مواجه شدین که گاهی نیاز دارین خروجی کار خودتون رو تو گوشی ببینید،راه های مختلفی برای اینکار وجود داره، ولی خب هر کدوم چالش های خاص خودشون رو دارن، از مشکلات فایروال گرفته تا …«اتصال دامنه به آی پی لوکال» هم یکی از همین راه هاست که طی این پست نحوه استفاده ازش رو توضیح میدم.به عنوان مثال اگه در حال طراحی یه PWA یا وب اپ برای یه پروژه با یکی از فریم ورک های PHP باشید، شاید به این چالش بر بخورید.تو حالت عادی وقتی نیاز دارین تا سایت رو روی دامنه تست کنید، خب قطعا از لوکال دامین استفاده می کنید،به این ترتیب که اول فایل hosts سیستم عامل رو تغییر میدین و بعد با کانفیگ httpd-vhosts یه دامنه لوکال ایجاد می کنید که وقتی تو مرورگر خودتون، آدرس سایت رو میزنین، پروژه تون به صورت لوکال میاد بالا و در واقع پروژه رو روی سیستم خودتون ولی با دامنه ای که برای تنظیم کردین میبینید.ولی ولی وقتی نیاز دارین که سایت رو روی گوشیتون هم ببینیند، اگه آدرس همون دامنه رو بزنین، چون gateway متفاوتی دارن، چیزی به شما نمایش داده نمیشه.این پست برای حل همین چالش هست.چه اتفاقی قراره بیافته ؟قراره وقتی آدرس دامین یا ساب دامنه مورد نظر خودتون رو تو گوشی میزنین، سایتی که در حال طراحی اون هستید رو روی گوشی ببینید.البته که این فقط محدود به گوشی نیست و تمام سیستم های موجود تو شبکه داخلی شما میتونن با زدن اون آدرس خروجی کار شما رو ببینین.شبکه داخلی چیه ؟چیز خاصی نیست، همین که گوشی رو هات اسپات می کنین و با لپ تاپ بهش متصل میشید تا از اینترنت اون استفاده کنید، در واقع یه شبکه تشکیل دادید که کامیوتر و گوشی شما از نود های اون شبکه محسوب میشن.نکته:این مطلب رو با این تصور مینویسم که مخاطب های اون با مفاهیم دامنه، سرور، کلاد فلیر، شبکه و دامنه لوکال آشنایی دارن.موارد مورد نیاز:دامنه، یه اکانت کلاد فلیر (یا یه سرویس مشابه که بتونین راحت dns دامنه رو مدیریت کنید) و یک شبکه داخلی (همون هات اسپات گوشی هم اوکیه)خب شروع کنیمقدم اول:دامنه مورد نظر خودتون رو روی xampp/wampp یا هرچیز دیگه ای که دارید استفاده می کنید معرفی کنید،برای xampp به این صورت معرفی میشه:فایل httpd-vhosts.conf رو باز کنید، تو این مسیر قرار داره:xampp\apache\conf\extraیه دامنه با نام دلخواه به اون اضافه کنید، نحوه اضافه کردن دامنه به این شکله، کافیه کد زیر رو به دلخواه خودتون تغییر بدین و به فایل بالا اضافه کنید:&lt;VirtualHost test.copypastekon.ir&gt; // آدرس دامنه یا ساب دامنه مورد نظر خودتون رو اینجا وارد کنید
DocumentRoot &quot;M:\xampp\htdocs\copypastekon&quot; // مسیری که پروژه اونجا قرار داره
ServerName test.copypastekon.ir // تکرار مجدد نام دامنه یا ساب دامنه
&lt;Directory &quot;M:\xampp\htdocs\copypastekon&quot;&gt; // مسیر پروژه
Order allow,deny
Allow from all
&lt;/Directory&gt;
&lt;/VirtualHost&gt; حالا تغییری که تو httpd-vhosts.conf دادین رو ذخیره و xampp رو ری استارت کنید.حالا سیستم شما آمادگی این رو داره که اگه کسی با درخواست دامنه مثلا test.copypastekon.ir به اون مراجعه کرد، درخواست رو طبق کانفیگی که انجام دادین جواب بده.لازم به ذکر است: در صورتی که xampp / wampp و … فعال باشن.حالا cmd رو باز کنید، عبارت: ipconfig رو تایپ کنید،اگه کامپیوتر شما به hotspot گوشی وصل باشه، تو خروجی دستور بالا یه سری اطلاعات نمایش داده میشه، دنبال آی پی لوکال خودتون بگردین همونطور که تو تصویر میبینید، اینجا آی پی لوکال من 192.168.43.171 هست.خب حالا به اکانت کلاد فلیر خودتون مراجعه کنید و وارد تنظیمات Dns دامنه ای که قصد تست پروژه اون رو دارید بشین.یه A رکورد با نام دامنه ای که اون بالا تو فایل httpd-vhosts.conf وارد کرده بودین، ایجاد کنید و برای آی پی اون، آی پی لوکال سیستم خودتون رو وارد کنید و اون رو ذخیره کنید.مثلا من به تنظیمات dns دامنه copypastekon.ir میرم و یه A record ایجاد می کنم با نام test.copypastekon.ir و آی پی اون رو 192.168.43.171 قرار میدم.و تمـــامحالا توی گوشی یا سیستم یا هر کدوم از نود های شبکه، ادرس دامین خودتون رو بزنین پروژه تون (به شرط فعال بودن وب سرور) میاد بالا.پ.ن:میدونم خیلی For beginner توضیح ندادم، ولی خب برای جونیور ها هم یکم چالش و جستجو واسه پیدا کردن و فهمیدن کامل داستان بد نیست.اگه به مباحث امنیت و نفوز علاقه دارید، روی این پست با یه نگاه دیگه هم یکم تامل کنید :)امیدوارم به کارتون بیاد#یا_علی محمدیطور (mohammaditor.ir) </description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Thu, 06 Jun 2019 23:01:40 +0430</pubDate>
            </item>
                    <item>
                <title>یه ابزار برای سازماندهی فکر و افزایش تمرکز</title>
                <link>https://virgool.io/@mohammadi/%DB%8C%D9%87-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%D9%81%DA%A9%D8%B1-%D9%88-%D8%A7%D9%81%D8%B2%D8%A7%DB%8C%D8%B4-%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-tpbmfkwyis6d</link>
                <description>Mindly  بسم الله هرکسی ممکنه تو طول زندگی به بن‌بست های ذهنی برخورد کنه، میگم بن‌بست چون کلمه ی دیگه ای برای وصف این حالت پیدا نکردم.حالتی که از تعدد افکار مختلف، مغزت متوقف میشه و دیگه نمی تونی کاری رو پیش ببری یا به چیزی فکر کنی. چون افکار یا ایده های مختلفی به ذهنت هجوم آوردن که به ظاهر هیچ کدوم از اون یکی کم ارزش‌تر نیست و تو مجبوری موازی به اونها فکر کنی،در ادامه این فرایند (یعنی موازی فکر کردن) مغز بازدهی خودش رو از دست میده.فکر می‌کنم ترسِ از دست دادن یکی از اون افکار یا ایده ها باعث میشه که دونه دونه اونها رو تحلیل و حل نکنی، چون ممکنه این وسط یکی از اونها رو از دست بدی.« شاید این جملات فقط برای خودم مفهوم داره و قابل درکه به جهت قرارداشتن تو موقعیت های مختلف اینشکلی »بلاخره زمانی میرسه که مجبور میشی یه راهی برای خارج شدن از این بن‌بست، هنگ یا توقف مغزی پیدا کنی.نوشتن،نوشتن تک تک موضوعات مطرح تو مغز می‌تونست تا حدودی گره از این ماجرا باز کنه،«فقط موضوع»نوشتن سریع فقط موضوعات شناور تو ذهن باعت میشد ترس از دست دادن اطلاعات تو مغزم از بین بره و بتونم مجزا روی هر کدوم از موضوع هایی که یادداشت کردم فکر کنم و به نتیجه برسم.مدتی تو note گوشی مینوشتم و بعد به فکر نوشتن یه برنامه برای این قصه افتادم، اما بعید میدونستم کسی قبل از من به این چالش بر نخورده باشه.تو گوگل پلی شروع به جستجو کردم و بعد از بررسی و تست کلی برنامه رسیدم به «Mindly»اپلیکیشنی که از چند سال پیش به رفیق دوران بن‌بست من تبدیل شد. رفیقی که بعد از رسیدن به پیک فکری، ذهنمو روش خالی کردم و فکرآی بی‌نتیجه رو لا به لای دایره هاش دفن می کردم.احساس سبکیِ بعد از هربار باز و بسته کردن اون، باعث شد که تا امروز همراه من باشه.علاوه بر این میتونید از این ابزار برای یادداشت کردن ایده هاتون بهره ببرید یا فکر های مرتبط به همِ تو ذهنتون رو به اون منتقل کنید و خیال خودتون رو از بابت فراموش نشدن اونها راحت کنید.امیدوارم به کارِتون بیاد.#یا_علیمحمدیطور (mohammaditor.ir)</description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Thu, 25 Apr 2019 19:43:45 +0430</pubDate>
            </item>
                    <item>
                <title>استارت آپ به جای اینستاگرام</title>
                <link>https://virgool.io/@mohammadi/%D8%A7%D8%B3%D8%AA%D8%A7%D8%B1%D8%AA-%D8%A2%D9%BE-%D8%A8%D9%87-%D8%AC%D8%A7%DB%8C-%D8%A7%DB%8C%D9%86%D8%B3%D8%AA%D8%A7%DA%AF%D8%B1%D8%A7%D9%85-ah1kx4abonqm</link>
                <description>گسترش روز افزون شبکه های اجتماعی در جوامع، باعث ایجاد ایده های جدیدی در راستای مدیریت بهتر زمان بر مبنای مقدار استفاده از اپلیکیشن‌های روی گوشی شده که با ارائه گزارش از تعداد دفعات استفاده از برنامه‌ها به تفکیک روز، ماه یا یک بازه مشخص، افراد را از مقدار استفاده از اپ های مختلف آگاه می کنند.برای درک مقدار زمان تلف شده‌ام طی روز در اینستاگرام، لازم نبود به ریاضی یا علوم آماری مسلط باشم،یک نگاه به گزارش های نموداری استفاده‌ام از اینستاگرام همانا و فکر تغییر این روند همان.حساب کردم اگه مقدار زمانی که هرروز به چک کردن اینستاگرام اختصاص میدم رو به فکر کردن، ایده پردازی و نهایتا تهیه پروپوزال برای راه اندازی یه استارت آپ اختصاص بدم، میتونم بعد از یه زمان حدودا دو ماهه یک پروپوزال و یک پلن تجاری برای راه اندازی یه استارت آپ داشته باشم.خوشبختانه این ایده در حد فکر باقی نموند و به مرحله اجرا رسید،یعنی تو این حدود دو ماهی که از پاک کردن اپلیکیشن اینستاگرام از روی گوشیم میگذره، علاوه بر اینکه تو طول روز تمرکز بیشتری روی کارهام دارم، تونستم یه ایده رو پرورش بدم، پلنش رو بچینم، تیم سازی کنم و اون رو به مرحله اجرای تست فاز یک برسونم،الان که دارم این مطلب رو مینویسم، فاز یک در حال پیاده سازی هست.در واقع از وقتی اپ اینستاگرام رو پاک کردم، اندازه پیاده سازی یه استارت آپ کوچیک وقتم آزاد شد.پ.ن:داشتم این مطلبی که نوشتم رو از بالا ری‌ویو میکردم، یاد تبلیغات تنتاک افتادم :|یاد اون جمله معروف ترک سیگار هم افتادم که میگه : «میدونستی اگه پولی که تا الان دادی به سیگار رو نگه میداشتی الان یه بنز داشتی؟»ولی جدا قصدم انتقال تجربه شخصیم بود و اینکه اندازه خودم توجه شما رو هم به#عمرتون که داره تلف میشه جلب کنم+ و اینکه قطعا خیلی ها حواسشون به زمانشون هست، این مطلب برای مثل «من» هاست یا علیمحمدیطور «www.mohammaditor.ir»</description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Mon, 07 Jan 2019 23:28:31 +0330</pubDate>
            </item>
                    <item>
                <title>دسترسی به اطلاعات شخصی افراد، به سادگی</title>
                <link>https://virgool.io/@mohammadi/%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%B4%D8%AE%D8%B5%DB%8C-%D9%85%D8%B1%D8%AF%D9%85-%D8%A8%D9%87-%D8%B3%D8%A7%D8%AF%DA%AF%DB%8C-vf6ccezclzet</link>
                <description>نمونه اطلاعات قابل استخراجتصویری که مشاهده می کنید، نمونه ای از اطلاعات هویتی افرادی ست که از مشتریان محصولات سایپا از اول تاسیس تاکنون بوده‌اند.همانطور که مشاهده می کنید، به راحتی اطلاعات افراد با یک شماره موبایل قابل استخراج است، بدون دانش فنی خاصیپارادوکسمردم ایران در حالی نگران امنیت اطلاعات خود در پیامرسان های داخلی هستند که مدام از مسئولین امر درباره امنیت اطلاعات میشنویم،حالادر جای دیگر مردم اطلاعات هویتی خود را با خیال راحت در اختیار سازمانها و شرکت های مختلف قرار میدهند، ولی اطلاعات آنها گاهی به راحتی در اختیار عموم قرار میگیرد، نه حتی سرویس اطلاعاتی کشور !چه کسی باید پاسخگو باشد ؟ و به کجا ؟شاید کلید گمشده عدم اعتماد مردم در دستان متولی رسیدگی به امنیت اطلاعات باشد (که ظاهرا وجود ندارد)چه چیزی مهم تر از اطلاعات هویتی در فضای مجازی ؟پ.ن:داشتم به این فکر می کردم که آیا سازمان یا نهادی جهت رسیدگی به تخلف یا نقایص امنیتی شرکت‌هایی که تحت عناوین مختلف اطلاعات مردم رو جمع آوری می کنن وجود داره یا خیر ؟اتفاقا این سوال رو در توییتر از وزیر محترم ارتباطات که مرکز ماهر و ... از زیر مجموعه های ایشون حساب میشن هم پرسیدم اما ...شاید تعداد لایک ها در پاسخگویی وزیر محترم تاثیر داره که اگه اینطور باشه نباید منتظر جواب موند.برای مشاهده توییت این سوال از وزیر اینجا کنیدپ.ن دوم:اگر مسئولین ذیربط علاقه ای به برطرف کردن این مشکل دارند، با بنده تماس بگیرن تا نحوه واکشی این اطلاعات در اختیارشون قرار بگیره.یا علی#محمدیطورwww.mohammaditor.ir</description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Mon, 17 Dec 2018 22:03:55 +0330</pubDate>
            </item>
                    <item>
                <title>شعبده بازی با جاوااسکریپت !</title>
                <link>https://virgool.io/JavaScript8/%D8%B4%D8%B9%D8%A8%D8%AF%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D8%A7-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-xiysmxu3m5b4</link>
                <description>جاوا اسکریپت عملا امروز داره بر دنیای وبِ مدرن سلطنت می کنه و این امر به دلیل ماهیت پویا، همچنین یادگیری راحت اون هست !گفتم راحتی در یادگیری اما در عین این راحتی جاوا اسکریپت پر از سردرگمی هایی هست که جواب اونها رو حتی در Stackoverflow هم نمی تونید پیدا کنید :دیدر واقع موضوع پست ما همینه، می خوام شما رو با چند خط کد ساده به چالش بکشم تا خودتون رو یکم محک بزنید.مفهومی وجود داره به نام Closure اگه اشتباه نکنم (ما تجربیآ تو قید و بند اصلاحا نیستیم D: )خب شما حتما می دونید متغیر محلی چیه، گلوبال چی هست !می خوام با دونسته هاتون جواب این سوال رو بدید،خروجیه کد زیر چیه ؟function outside() {
var text = &quot;I love JavaScript.&quot;
	function inside() {
		console.log(text);
	}
	inside();
};
outside();                  اگه با جاوا اسکریپت آشنایی داشته باشین، حتما جواب رو درست گفتینخروجی کد بالا هست: // &quot;I love JavaScript&quot;حالا یک کد ساده ی دیگه : function outside() {
        var text = &quot;I love JavaScript.&quot;
        return function() {
                console.log(text);
        };
 };
 outside()(); درسته!کد بالا هم مثل مثال قبل :  // &quot;I love JavaScript.&quot; رو چاپ می کنه :)پس ما اگه تابع بالا رو مثل مثال پایین در یک متغیر بریزیم، باز هم خروجی مثل دفعات قبل خواهد بود، مثال:function outside() {
    var text = &quot;I love JavaScript.&quot;
    return function() {
        console.log(text);
    };
};
var trueOutside = outside();
trueOutside(); // &quot;I love JavaScript.&quot;کد بالا تابع outside رو داخل متغیر trueOutside میریزه و چون تابع outside یک تابع رو بازگشت میده، در صورتی که شما trueOutside رو با () درج کنید، تابع بازگشت داده شده صدا زده میشه !و اما چالشدر کد زیر، در هر بار صدا زدن تابع trueOutside چه چیزی در خروجی چاپ خواهد شد ؟function outside() {
    var text = 1;
    return function() {
        text++;
        console.log(text);
    };
};
var trueOutside = outside();
trueOutside(); // ؟
trueOutside(); // ؟
trueOutside(); // ؟ جواب رو خودم میگم اما قبل از خوندن جواب، خودتون به جواب فکر کنید بعد پاسخش رو در خط بعد بخونید:..کد بالا اول تابع رو در متغیر میریزه، پس تمامی متغیر های داخل تابع هم در متغیر ذخیره میشن،با هربار صدا زدن تابع بازگشت داده شده توسط تابع پدر، متغیر ذخیره شده از تابع پدر فراخوانی میشه و در عملیات تابع بازگشت داده شده شرکت داده میشهپس خروجی از کد بالا میشه : var trueOutside = outside();
trueOutside(); // 2
trueOutside(); // 3
trueOutside(); // 4 حالا یک تست هوش:در مثال بالا trueOutside رو سه بار صدا زدیم و هربار یک رقم به text اضافه شدحالا اگر ۳ بار تابع outside رو به صورت زیر صدا بزنیم چه اتفاقی رخ خواهد داد ؟ outside()(); // ؟
outside()(); // ؟
outside()(); // ؟قبل از خوندن جواب خودتون روش فکر کنیدجواب:...در هر سه بار عدد ۲ چاپ میشه، خودتون به علتش فکر کنیدتا اینجا با ی سری از قواعد جاوا اسکریپت آشنا شدیدپس با دونسته هاتون بریم سراغ یه شعبده بازیه جالبخروجی در کد زیر چیست ؟اخطار:عجولانه پاسخ ندهیــــد !var funcs = [];
for (var i = 0; i &lt; 3; i++) { // سه تا تابع میسازه
    funcs[i] = function() { // هر سه تا رو ذیره می کنه در آرایه
        console.log(&quot;My value: &quot; + i); // هر سه تابع باید این خروجی رو چاپ کنن
    };
}
for (var j = 0; j &lt; 3; j++) {
    funcs[j](); // در اینجا توابع ساخته شده در بالا رو دونه دونه صدا میزنیم
} آفریــــــــــــــنحتما شما هم به جواب رسیدین: My value: 0
My value: 1
My value: 2 ضمن تبریک به مناسبت پاسخ اشتباهتون (اگر جوابتون با این بالایی برابر بود) باید خدمتتون عرض کنم خروجی کد بالا هست: My value: 3
My value: 3
My value: 3 نتیجه مشاهدات خود را یادداشت کرده و با دوستان خود به اشتراک بگذارید ;)تا شعبده بازی دیگر، درود و صد بدرود.@mohammaditor#یا_علی</description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Thu, 18 Oct 2018 11:22:21 +0330</pubDate>
            </item>
                    <item>
                <title>پیدا کردن نوع فایل های بدون پسوند با php</title>
                <link>https://virgool.io/@mohammadi/%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%86%D9%88%D8%B9-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D8%A8%D8%AF%D9%88%D9%86-%D9%BE%D8%B3%D9%88%D9%86%D8%AF-%D8%A8%D8%A7-php-drrizo5yj9ef</link>
                <description> خیلی وقتـآ ممکنـه فایلـی روی سرور آپلود شـه که پسوند درستی ندآرهیعنی ممکنـه فایـلی بـآ پسونـد jpg روی سرور شما آپلود شه اما فایـل واقـعا یه تصویر نبـاشهایـن فقط یه مثـال بـود ! حالآ اسـاتید نـَگـَن عکسـو کـه فلآن مُدل هم میشه وَلیدِیت کـرد انـجام ایـن کـار خیلـی سـاده ـست : &lt;?php
 $finfo = new finfo(FILEINFO_MIME);
 $type = $finfo-&gt;file(&#039;watermark.png&#039;);
 echo $type;  // خـروجی ~&gt; image/png; charset=binary
 ?&gt;#یا_علی</description>
                <category>Mohammad</category>
                <author>Mohammad</author>
                <pubDate>Thu, 18 Oct 2018 10:45:59 +0330</pubDate>
            </item>
            </channel>
</rss>