توانایی خود را افزایش دهیم

فرهنگ و هنر
توانایی خود را افزایش دهیم

بسم الله الرحمن الرحیم

با سلام

• لطفا مطالب سایت را به صورت منظم پیگیری کنید
• ارائه پیشنهادات و نظرات شما باعث بهبود کیفیت ارائه مطالب خواهد شد

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

طبقه بندی موضوعی
آخرین نظرات
شنبه, ۱۴ فروردين ۱۴۰۰، ۱۰:۰۷ ق.ظ

سخنی با دانشجویان فرهنگ و هنر 41

سلام بر همه شما عزیزان
بعد از 8 سال :-) صندوق پیامهای خصوصی وبلاگ را چک کردم ، دیدم بعضی از عزیزان دانشجو پیامهای محبت آمیزی نوشته اند و بعضی از نمره خود ناراضی بودند.
در آن زمان به علت اینکه بنده دسترسی به سامانه دانشگاه نداشتم نمرات را به صورت کتبی به آموزش دانشگاه تحویل میدادم و بعد از تحویل آموزش تغییر در نمرات را قبول نمیکرد ؛ در هنگام تصحیح اوراق هم کلا به اسامی توجهی ندارم و طبق پاسخنامه صحیح میکنم ، تعداد دانشجویان زیاد بوده و ممکن است به اشتباه نمره کلاسی یا عملی فردی درج نشده باشد ؛
به هر حال اگر ناخواسته باعث شدم که حقی از کسی ضایع شود و از نمره اش راضی نیست ، عذرخواهم ، حلال بفرمایید
چون راه تماسی با شما عزیزان نداشتم اینجا مطرح کردم
اگر عزیزی مطلبی دارد در تلگرام به آیدی @seyed_mirhadi پیام بدهد.
موفق و خوشحال باشید

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ فروردين ۰۰ ، ۱۰:۰۷
شنبه, ۵ مهر ۱۳۹۳، ۱۲:۳۵ ب.ظ

درس سیزدهم- عبارات منظم Regular Expression

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

 

عبارات منظم
عبارات منظم یک تکنیک است که توسط آن می‌شود یک متن را بر اساس الگوی دلخواه بررسی کرد. شیوه کار آن این است که ما ابتدا یک الگو تعریف می‌کنیم و بعد داده‌ها را بر اساس آن الگو ارزیابی می‌کنیم. یعنی با توجه به الگوی تعریف شده٬ ماهیت داده‌ را جستجو کرده و اگر همخوانی داشت مهر تایید به آن می‌زنیم. به زبان ساده‌تر می‌شود٬ جستجوی یک متن برای اینکه ببینیم آیا با الگوی تعریف شده ما می‌خواند یا نه؟ اجازه بدهید با یک مثال این مقوله را بهتر بیان کنیم. فرض کنید که می‌خواهید ببینید که آیا درون کلمات ورودی حرف b وجود دارد یا نه. برای این کار یک الگو می‌سازیم که کلمه‌های ورودی را با الگوی ما مقایسه کند و در صورت برابری (وجود b در متن مورد نظر) خروجی «۱» به معنی مثبت بدهد.

ساخت یک عبارت منظم٬ ساختار منحصر به فرد خود را دارد٬ این یعنی باید از یک ‌سری قوانین مشخص پیروی کنیم. اما پیاده سازی عبارت منظم در پی‌اچ‌پی توسط توابعی صورت می‌گیرد. تابعی که ما از آ> بیشتر استفاده می‌کنیم تابعpreg_matvh()  است.

Preg_match ( الگو ,  داده  ) ;

Preg_match ( ‘/b/’ , ‘babak’ );

 همانطور که در مثال بالا گفته شد٬ یک عبارت منظم نوشته شده است تا وجود حرف b را در مقادیر وارد شده بررسی کند (که در اینجا  ‘babak’ است).

الگویی که برای بررسی می‌سازیم باید در بین علامت نقل قول قرار گیرد یا همان " " خودمان. ابتدایی‌ترین و آخرین حرف این الگو هم نشانه آغاز و پایان بارت هستند که به آنها نشانه می‌گوییم. این نشانه می‌تواند هر کاراکتری باشد٬ اما باید کاراکتری باشد که شما در داخل عبارت استفاده نمی‌کنید. یعنی اگر قرار است در داخل مقدار ورودی دنبال علامت سوال ؟ بگردید٬ نباید از این علامت برای آغاز و پایان الگو استفاده کنید. در مثال بالا ما از / استفاده کردیم٬ می‌توان از کاراکتر‌هایی مثل ! یا |  هم استفاده کرد. باز این بستگی به کاربرد الگو دارد.

 

قسمت‌های تشکیل دهنده الگو در عبارات منظم

- نشانه یا آغاز و پایان الگو  Delimiter
همانطور که قبلا هم گفتیم باید از یک کاراکتر یکسان (یکی در آغاز و یکی در پایان) برای مشخص کردن شروع و پایان الگو استفاده کنیم. کاراکترهایی مانند/, |, ?  یا #  بسته به اینکه اگر در داخل متن ورودی دنبال آنها نگردیم٬ انتخاب خوبی هستند.

- لفظ‌ها  Literal
لفظ‌ها در اصل همان حروف یا کاراکترهایی هستند که ما در داخل متن دنبال آنها هستیم٬ بطور مثال اگر می‌خواهید وجودasd  را داخل متنی جستجو کنید٬asd  همان لفظ شما است.

- کاراکترهای ویژه  Metacharacter
کاراکترهای ویژه٬ کاراکترهایی هستند که ما در داخل متن در جستجوی آنها نیستیم و آنها برای ما معنی ویژه‌ای دارند٬ بطور مثال علامت ^ یا. یا علامت‌های ( ) از این کاراکترهای ویژه هستند. مثلن علامت "." با هر کاراکتری برابری می‌کند. وقتی در الگو از "." استفاده می‌کنیم٬ این یعنی در جای "." هر کاراکتری می‌تواند باشد٬a  یا c  ـ  یا هر کاراکتر دیگر. علامت ^ هم یعنی آغاز الگوی متنی ما. بطور مثال^a  یعنی هر متنی که باa  آغاز شود. در زیر فهرستی از چند کاراکترهای ویژه با معنی آنها می‌آوریم:

^: آغاز رشته مورد نظر را بیان می‌کند که در الگو استفاده می‌شود.

$: پایان رشته مورد استفاده در الگو

. : هر کاراکتر تنهایی

| : انتخاب بین دو واژه٬ بطور مثال  a | S یعنی یا  a یا  s

[]: این دو کاراکتر آغاز و پایان یک مجموعه یا لیست از موارد مورد استفاده در الگو را بیان می‌کنند٬ که به آن کلاس می‌گوییم.

؟ : معنی صفر یا یک کاراکتر را می‌دهد.

* : معنی صفر کاراکتر یا بیشتر

+: یک کاراکتر یا بیشتر

{}: شروع و پایان یک محدوده برای جستجو را تعیین می‌کنند. مثلا{x,y}  یعنی که ازx  تا  y را جستجو کن. فرض کنید که می‌خواهیم از a   d را جستجو کنیم٬ پس می‌شود.  {a , d } .

 

۲ نظر موافقین ۰ مخالفین ۰ ۰۵ مهر ۹۳ ، ۱۲:۳۵
سه شنبه, ۱ مهر ۱۳۹۳، ۰۳:۰۶ ب.ظ

درس دوازدهم- موارد بیشتری از امنیت تارنما

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

 

ارزیابی فایل‌ها با توجه به نوع آنها
در درس ارسال فایل (عکس) یاد گرفتیم که چطور یک فایل را به سیستم ارسال کرده و از آن استفاده کنیم. نکته ای که در این بحث مورد توجه است٬ این است که این ارسال امکان نفوذ به سیستم را از طریق فایل فراهم می‌کند. البته برای ارسال فایل ما از فیلتری برای بررسی نوع فایل استفاده کردیم که آن به شکل گرفتن نوع فایل از متغیر: $_FILES['upload']['type'] نمایان شد.

این نوع بررسی نوع فایل توسط مرورگر فراهم می‌شود که به نوعMIME  فایل رجوع می‌کند. علی رغم اینکه این بررسی کار مناسبی است٬ اما هنوز راه های نفوذ وجود دارند٬ بر همین اساس به راه‌های دیگر که پی‌اچ‌پی فراهم کرده اشاره می‌کنیم.

شیوه‌ای که در پی‌اچ‌پی نسخه ۵.۳ به بعد اضافه شده است به این شکل است: یک ظرفی برای شناسایی نوع فایل وجود دارد که نوع فایل و کدگذاری آن را بر اساس جستجوی اعداد جادویی در داخل محتوای فایل نمایان می‌کند. به این معنی که اطلاعاتی که فایلی را تشکیل می‌دهند٬ بر اساس نوع فایل با اعداد یا کاراکتر‌های ویژه آن فایل آغاز می‌شوند. بطور مثال فایل‌هایGIF  (نوعی فایل برای عکس)٬ باید با کاراکتر و کد اسکی (ASCII) مشخصGIF89a  یا GIF87a  آغاز شوند٬ و یا فایل‌هایPDF  باید با کد %PDF آغاز شوند. این کدها همانطور که گفته شد باید در ابتدای داده‌های سازنده آن فایل آورده شوند.

برای بکارگیری این تکنیک باید ابتدا یک ارجاع دهنده برای فایل بسازیم:

$fileinfo = finfo_open(FILEINF_MIME_TYPE);

این ارجاع دهنده در اصل مرجعی برای دست‌یابی به اطلاعات فایل بر اساس نوع داده شده است (در داخل پرانتز).

۰ نظر موافقین ۱ مخالفین ۰ ۰۱ مهر ۹۳ ، ۱۵:۰۶
پنجشنبه, ۲۷ شهریور ۱۳۹۳، ۰۳:۴۶ ب.ظ

درس یازدهم- امنیت تارنما از نگاه پی‌اچ‌پی

مقدمه
تا به این درس تکنیک‌های زیادی از پی‌اچ‌پی یاد گرفتیم که براحتی توسط آنها می‌توانیم یک تارنما با قابلیت پذیرش کاربر بنا کنیم. یکی از نکات مهمی که بحثی از آن در طول دوره نشده است٬ امنیت سیستم ساخته شده است. در این درس به توانمندی سیستم از نظر امنیتی می‌پردازیم٬ چرا که هر چقدر سیستم شما خوب کار کند٬ اگر امنیت لازم را فراهم نکرده باشید٬ براحتی قابل شکستن خواهد بود.

نکته بسیار مهم: در این دوره آموزشی٬ ما بحث امنیت را به عنوان یک یا چند درس بطور مجزا شرح می‌دهیم و تا قبل از این درس‌ها برای ساده‌تر کردن آموزش، نکته‌های امنیتی را برای درس‌های آخر گذاشتیم. حال ما بر آنیم که بحث امنیت را آغاز کنیم و به سراغ کد‌هایمان می‌رویم تا از نظر امنیتی آنها را مسلح کنیم. برای شما در زمان ساخت یک تارنما٬ به این شکل عمل کردن یک اشتباه محض است٬ یعنی نباید ابتدا تارنما را ساخته و بعد به فکر امن کردن آن باشید. کار امنیت برای تارنما باید از همان ابتدا در ذهن و کدهای شما بیاید. یعنی با توسعه هر قسمت٬ هم زمان آن بخش را هم از نظر امنیتی تجهیز کنید.

 

امنیت تارنما
برای شرح هر چه بیشتر این درس ما بحث امنیت را به بخش‌های مجزا تقسیم می‌کنیم و بعد بر اساس هر بخش نکات امنیتی آن را بررسی می‌کنیم.

غیر فعال کردن  phpinfo()
همانطور که می‌دانید این تابع مشخصات کاملی از پی‌اچ‌پی نصب شده در سرور را به ما می‌دهد که در زمان توسعه بسیار مفید است٬ اما بعد از کامل کردن سیستم باید این تابع از کار بیافتد. البته اگر شما سرور خود را داشته باشید و یا در حالت «محلی» تارنمای خود را توسعه داده‌اید٬ شما توانایی از کار انداختن این تابع را دارید. در غیر اینصورت با مدیر سرور تماس بگیرید. به احتمال زیاد این تابع قبلا از کار افتاده اما کار از محکم کاری عیب نمی‌کند. این تابع در فایل php.ini  قرار دارد٬ پس در صورت دسترس به این فایل رفته و با جستجوی عبارت disable_functions  با کمکctrl + F  مقدار روبروی این عبارت را با نام تابع پر کنید.

disable_functions = phpinfo

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ شهریور ۹۳ ، ۱۵:۴۶
چهارشنبه, ۲۶ شهریور ۱۳۹۳، ۰۴:۱۹ ب.ظ

درس دهم- نمایش فایل و استفاده از جاوا اسکریپت

مقدمه
در درس قبلی یاد گرفتیم که چطور فایل (عکس) را به سیستم خود انتقال دهیم. در این درس می‌خواهیم از این عکس‌ها برای نمایش در تارنما استفاده کنیم و این نمایش را در قالب یک برگه جدید بنام نمایه (پروفایل) تجربه می‌کنیم. در ادامه به ساختن برگه‌ای دیگر می‌پردازیم که فهرستی از عکس‌های ارسال شده٬ بشکل آلبومی ساده ارائه می‌کند.

 

نمایه  profile.php
در پوشه خود فایلی با نام profile.php بسازید و کد‌های زیر را در آن قرار دهید:

<?php

session_start();

if(isset($_SESSION['first_name']))

{               $name = $_SESSION['first_name'];

                 $page_title = ' نمایه ' . $name;

}else{

$page_title = ' نمایه ' ;

}

include ('includes/header.html');

?>

<?php

if(isset($_POST['id']) && is_numeric($_POST['id'])){

                $id = $_POST['id'];

}

elseif(isset($_GET['id']) && is_numeric($_GET['id']))

{

                $id = $_GET['id'];

}else{

                echo 'دسترسی به این برگه برای شما مقدور نیست!';

                //header('LOCATION: index.php');

                header('REFRESH: 3; URL= index.php');

}

require_once('db_connection.php');

$query = "SELECT * FROM users WHERE id='$id'";

$result = mysqli_query($dbc, $query);

if(mysqli_num_rows($result) == 1)

{

$row = mysqli_fetch_array($result, MYSQLI_ASSOC) ;

?>

<div id="profile">

<div id="image">

<?php

if($row['image']){

                echo '<img src="uploads/'. $row['image'] . '" width="180" height="180"/>';

}?>

</div>

<div id="user-info">

<ul>

<li><span>نام  </span><h3><?php echo $row['first_name']; ?></h3></li>

<li><span>نام خانوادگی   </span><h3><?php echo $row['last_name']; ?></h3></li>

<li><span> شناسه کاربری   </span><h3><?php echo $row['username']; ?></h3></li>

<li><span> رایانامه  </span><h3><?php echo $row['email']; ?></h3></li>

</ul>

</div>

</div>

<?php}?>

<?php include ('includes/footer.html'); ?>

همانطور که مشاهده می‌کنید٬ این برگه را با تابعsession_start()  آغاز کردیم٬ چرا که می‌خواهیم از مقادیر داخل سشن استفاده کنیم. از آنجا که این برگه برای هر کاربر داده‌های مربوط به آن کاربر را نمایش می‌دهد٬ می‌خواهیم نام برگه را هم در صورت وجود به نام کاربر در کنار عبارت «نمایه» اضافه کنیم.

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ شهریور ۹۳ ، ۱۶:۱۹
شنبه, ۲۲ شهریور ۱۳۹۳، ۰۲:۴۲ ب.ظ

درس نهم- ارسال فایل (عکس)

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

 

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

کادر ارسال فایل

<input type="file"   name="upload” />

برای ساختن کادر فایل مانند دیگر کادرها عمل می‌کنیم٬ با این تفاوت که در داخل صفت در خواست کننه نوع فایل از کلمه "file"  استفاده می‌کنیم.

نکته: برای داشتن قابلیت ارسال فایل٬ باید یک تغییر کوچک هم در برچسب فورم بدهیم و آن اضافه کردن یک صفت تازه است. به برچسب فرم زیر دقت فرمایید:

<form  enctype="multipart/form-data"  action="upload_image.php"  method="post" >

همانطور که مشاهده می‌کنید٬ صفت enctype="multipart/form-data" به صفت‌های فرم اضافه شده است. این صفت به فرم قابلیت پذیرش فایل را اضافه می‌کند.

رفتار کادر ارسال فایل
در زمان ارسال فایل بر خلاف ارسال دیگر داده‌ها که مقدار داده را در متغییر آرایه‌ای $_POST قرار می‌دادند٬ کادر فایل مقدار را در متغییر آرایه‌ای $_FILES همراه صفت‌هایی پیش فرض قرار می‌دهد. "$_FILES[][]" یک آرایه دو بعدی است و در زمان ساخت آن ویژگی‌های متعددی از فایل مورد نظر را در خود حفظ می‌کند. بطور مثال ویژگی‌های: نوع فایل٬ نام موقتی فایل٬ اندازه فایل و نام اصلی فایل را در خورد نگهداری می‌کند که ما می‌توانیم با صفت‌هایی به همه آنها دسترسی داشته باشیم. نگهداری این مقادیر به شیوه زیر است:

$_FILES [‘نام کادر ارسال فایل’] [‘نام ویژگی’]

برای استفاده از قابلیت ارسال فایل پی‌اچ‌پی٬ باید یکسری مقدمات فراهم باشد:
۱. تنظیمات ابتدایی پی‌اچ‌پی (این تنظیمات توسط مدیر سرور انجام می‌شود٬ تنظیماتی مانند: فعال کردن ارسال فایل٬ محل موقتی نگهداری فایل‌ها٬ مشخص کردن میزان حجم فایل‌های ارسالی) در فایل php.ini. در صورت ساخت تارنما در حالت «محلی» شما به این فایل دسترسی دارید.

۲. وجود محل موقتی برای نگهداری فایل‌ها و تعیین سطح دسترسی به آن

۳. وجود محل پایانی و همیشگی برای نگهداری و تعیین سطح دسترسی به فایل‌ها

همانطور که قبلا هم گفته شده شما با استفاده از تابعphpinfo()  می‌توانید جزییات این تنظیمات را مشاهده کنید. بطور مثال تنظیمات باید چیزی مانند زیر باشند:

File_uplaods: on

upload_max_filesize: 2(پیش فرض)

post_max_size:

upload_tmp_dir:

البته در حالت نصب پی‌اچ‌پی با بستهWamp  یا  Xammpبه نظر این مقادیر به طور پیش فرض تنظیم هستند. در حالت روی خط هم می‌توانید در صورت عدم دسترسی به فایل php.ini از مدیر سرور٬ سرویس دهنده میزبانی کمک بخواهید.

حال برای آشنایی بیشتر با طرز کار این قسمت به ساخت برگه برای ارسال فایل اقدام می‌کنیم.

ابتدا قبل از هر کاری باید یک خانه به خانه‌های پایگاه داده‌ها و در داخل جدول کاربران اضافه کنیم. این خانه٬ نگهداری کننده نام فایل ارسالی هر کاربر برای او است.

۱ نظر موافقین ۰ مخالفین ۰ ۲۲ شهریور ۹۳ ، ۱۴:۴۲
چهارشنبه, ۱۹ شهریور ۱۳۹۳، ۰۶:۰۰ ب.ظ

درس هشتم- سشن (Session) و سرایند اچ‌تی‌تی‌پی HTTP Header

مقدمه
در درس قبل به فن استفاده از کوکی پرداختیم و یاد گرفتیم که چطور از کوکی‌ها برای ردیابی و شناسایی کاربران در تارنمایمان بهره بریم٬ اینکه چطور داده‌های مربوط به مشخصات کاربر را در همه برگه‌ها در دسترس داشته باشیم و با توجه به آن داده‌ها سرویس مشخصی را ارایه کنیم. در این درس در دنباله بحث ردیابی کاربران به معرفی تکنیک دیگری در این زمینه با نام «سشن» می پردازیم.

 

سشن
سشن نوع دیگری از ابزار در بکار گرفتن داده‌های کاربر در همه برگه‌ها (در کل تارنما) به منظور ردیابی آنها است. سشن‌ها داده‌ها را در سرور ذخیره می‌کنند و بعد یک شناساینده سشن٬ به شکل کوکی در رایانه کاربر ثبت می‌کنند. این کوکی که به نام شناساینده «سشن» مربوطه در رایانه کاربر ذخیره می‌شود٬ در اصل راهنمای یافتن محل سشن در سرور می‌شود. بعد از ثبت داده‌ها٬ می‌توان از آنها بصورت متغییر‌های سشن بهره برد٬ که این متغییر‌ها را تمام برگه‌ها قابل دسترسی هستند.

 

سشن یا کوکی
همانطور که در درس قبل گفتیم کوکی‌ها داده‌های مربوط به کاربر را در خود رایانه کاربر ثبت می‌کنند و در زمان نیاز به آنها مراجعه می‌کنند٬ در صورتی که سشن‌ها این داده‌ها را در سرور سرویس دهنده ثبت می‌کنند٬ و یک کوکی هم به عنوان مکان یاب در رایانه کاربر. اما دلایل استفاده از سشن‌ها را می‌توان در سه بخش به شرح زیر آورد:

۱. امنیت سشن‌ها به دلیل ثبت‌ آنها در سرور بالاتر است٬ زیرا سشن‌ها در مسیر کاربر و سرور در حال تردد نیستند و این احتمال دزدیده شدن آنها را کمتر می‌کند.

۲. سشن‌ها توانایی حمل داده‌های بیشتری را دارند.

۳. از آنجا که بعضی از کاربران ثبت کوکی‌ها در رایانه‌هایشان را مسدود می‌کنند٬ سشن‌ها بدون مشکل در این شرایط کار می‌کنند.

نکته: سشن‌ها بدون استفاده از کوکی راهنما هم قابل استفاده هستند.

 

استفاده از سشن با تابع session_start()
یک نکته ابتدایی و بسیار مهم در استفاده کردن از سشن‌ها٬ قرار دادن تابعsession_start()  در ابتدایی‌ترین (بالاترین) محل برگه‌ای است که می‌خواهد از سشن استفاده کنید. این تابع  پی‌اچ‌پی می‌گوید که از سشن از قبل درست شده استفاده کند و یا اینکه یک سشن تازه بسازد. فراموش نکنید که این تابع بخاطر خواندن کوکی راهنما باید قبل از هر چیز دیگر فراخوانی شود٬ یعنی قبل از این تابع هیچ داده‌ای به مرورگر فرستاده نشود. منظور از فرستاده نشدن داده به مرورگر در اصل داده‌ای است که برای مرورگر فرستاده‌ می‌شود تا چاپ و یا ... شود. پس محل این تابع باید قبل از سرایند فایل اچ‌تی‌‌ام‌ال شما باشد.

وقتی این تابع برای نخستین بار اجرا می‌شود٬ یک کوکی با نام پیش فرض PHPSESSID می‌فرستد. بعد از اینکه سشن آغاز شد می‌توان مقادیر را به متغییر‌های آنها سپرد البته به روش زیر:

$_SESSION ['key'] = value;

$_SESSION ['name'] = 'پیمان';

$_SESSION ['id'] = 3;

در اینجا برای بکاربردن و روشن‌تر کردن این بحث٬ به سراغ تارنمای از پیش ساخته خود رفته و به جای کوکی‌ها از سشن‌ها استفاده می‌کنیم٬ یعنی جای کوکی‌ها را با سشن‌ها تعویض می‌کنیم.

https://www.darsnameh.com/images/phpin/07/1.png

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ شهریور ۹۳ ، ۱۸:۰۰
سه شنبه, ۱۸ شهریور ۱۳۹۳، ۰۶:۳۲ ب.ظ

درس دهم- تغییر در عرضه و تقاضا

گفتیم که یک اتفاق می تواند باعث شود که شرایط تعادل تغییر کند. در ادامه و آخرین درس این دوره، سه وضعیت را بررسی می کنیم.

 

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

در گام اول باید ببینیم گرمای هوا چه تاثیری بر روی منحتی تقاضا یا عرضه می گذارد. گرم تر شدن هوا باعث می شود که منحنی تقاضا تغییر کند. منحنی عرضه اما تغییر نمی کند چرا که گرم شدن هوا مستقیما بر فروشندگان اثری نمی گذارد.

در گام دوم باید تنوع تغییر را بررسی کنیم. افزایش دما موجب افزایش تقاضا می شود، در نتیجه منحنی به سمت راست جابه جا می شود. منحنی تقاضا از D1 به D2  تغییر می کند. چنان که در شکل مشاهده می کنید جابه جایی به سمت راست به معنی آن است که در یک قیمت ثابت میزان تقاضا افزایش می یابد.

در گام سوم باید نمودارها را رسم کرده و اثر تغییرات حاصله را بر قیمت تعادل و کمیت تعادل بررسی کنیم. نمودار رسم شده نشان می دهد که افزایش تقاضا قیمت را از ۲ به ۲.۵ و کمیت تعادل را از ۷ به ۱۰ افزایش می دهد. بنابراین ما شاهد یک تعادل جدید در نقطه ای در سمت راست و بالاتر از تعادل قبلی هستیم.

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

حالا فرض کنید ما با تابستانی سرد مواجه می شدیم یا اینکه به خاطر ورود یک نوشابه جدید به بازار مردم ترجیح می دهند نوشابه بیشتر مصرف کنند. چه اتفاقی می افتد؟

در گام اول ما تشخیص می دهیم که این اتفاق بر تقاضا اثر می گذارد. تقاضا کاهش می یابد و منحنی تقاضا به سمت چپ جابه جا می شود. در نتیجه تعادل جدیدی در سمت چپ و پایین تعادل اولیه برقرار می شود.

 

۰ نظر موافقین ۱ مخالفین ۰ ۱۸ شهریور ۹۳ ، ۱۸:۳۲
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۸:۰۷ ب.ظ

درس نهم- مفاهیم اصلی و اصول ابتدایی حسابداری

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

 

مفروضات حسابداری
پایه اصول حسابداری مفروضات هستند و مبنای تهیه صورت‌های مالی را در موسسات اقتصادی تشکیل می‌دهند. حسابداری دارای ۵ فرض است که در اینجا به طور کوتاه همه آن‌ها را بررسی می‌کنیم.

۱. فرض تفکیک شخصیت
بر اساس این اصل هر موسسه دارای شخصیتی مستقل از مالک یا مالکان آن دارد و فعالیت‌های مالی آن به اعتبار شخصیت مستقل آن تجزیه و تحلیل می‌شود.

به طور مثال اگر شخصی دارای چند کسب و کار باشد، برای هر یک از این واحد‌ها سیستم حسابداری جدا و مستقل در نظر گرفته می‌شود. همچنین هیچ یک از اموال شخصی این فرد در هیچ کدام از موسسات ثبت نمی‌شوند.

۲. فرض تداوم فعالیت
بر اساس این فرض موسسه در آینده عملیات خود را ادامه خواهد داد انحلال یا توقف فعالیت ندارد. به همین خاطر است که بعضی از حساب‌ها در پایان یک دوره مالی به دوره بعدی انتقال می‌یابد. توجه داشته باشید که در صورت عدم وجود این فرض، تمایز بین اقلام جاری و غیر جاری اهمیت خود را از دست می‌دهد. در حالتی که موسسه در حال فروش یا تصفیه باشد، دیگر این اصل مصداق ندارد.

۳. فرض دوره مالی
به طور کلی نتایج واقعی کسب و کار یک شرکت را می‌توان در پایان آن و پس از وصول کلیه مطالبات، و فروش دارایی‌ها به طور دقیق بیان کرد. ولی معمولا عمر یک موسسه را به دوره‌های زمانی کوتاه‌تر تقسیم می‌کنند. به طور مثال سه ماه یا یک سال و برای هر دوره گزارش مجزا تهیه می‌کنند.

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

۴. فرض یا مبنای تعهدی
بر اساس این اصل درآمد‌ها به محض تحقق و هزینه‌ها به محض تحمیل بدون توجه به زمان دریافت یا پرداخت ثبت می‌شوند.

۵. فرض واحد پول
این اصل یکی از مهم‌ترین اصول پایه حسابداری است و بر اساس آن کلیه آثار و نتایج معاملات و عملیات بانکی موسسه باید بر حسب پول گزارش شود.

اموال مختلف را می‌توان با مقیاس‌های متفاوت اندازه گیری کرد. به عنوان مثال زمین را با متر مربع، بنزین و گازوییل را با لیتر. ولی اگر در ترازنامه هم اینگونه ارائه شوند دیگر قابل مقایسه با یکدیگر نیستند. به همین خاطر واحد پول مبنای حسابداری قرار می‌گیرد.

 

۲ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۲۰:۰۷
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۷:۰۶ ب.ظ

درس هشتم- پایان دوره مالی و چگونگی بستن حساب‌ها

کارآموز عزیز! به شما خسته نباشید می‌گوییم. شما تقریبا موارد اصلی دوره حسابداری درسنامه را تا اینجا فرا گرفته‌اید! با این حال اکنون نیاز دارید که دوره‌ی مالی شرکت و یا تجارت شخصی‌تان را جمع‌بندی کنید و اصطلاحا «حساب‌هایتان را ببندید.»

چرخه حسابداری به یک سری ازعملیاتی می‌گویند که هر سال و یا در هر دوره مالی تکرار می‌شود. این چرخه به ترتیب شامل عملیات‌های زیر است:

۱. جمع آوری کلیه اطلاعات مالی موسسه

۲. تجزیه و تحلیل کلیه معاملات و عملیات مالی موسسه

۳. ثبت کلیه معاملات و عملیات مالی موسسه در دفتر مالی

۴. انتقال کلیه عملیات‌ها از دفتر روزنامه به دفتر کل

۵. آماده کردن تراز آزمایشی (اصلاح نشده)

۶. اصلاح و تعدیل حسابهای دفتر کل

۷. آماده کردن تراز آزمایشی (اصلاح شده)

۸. آماده کردن صورت سود و زیان و صورت تغییرات سرمایه

۹. بستن حسابهای موقت

۱۰. آماده کردن تراز آزمایشی (اختتامی)

۱۱. تهیه ترازنامه و بستن حسابهای دائمی

به طور کلی عملیات حسابداری در دو دوره زمانی انجام می‌شود. در طول دوره مالی و در پایان دوره مالی. قسمت اول که در طول دوره مالی انجام می‌شود شامل جمع آوری کلیه اطلاعات مالی موسسه، تجزیه و تحلیل کلیه معاملات و عملیات مالی موسسه، ثبت کلیه معاملات و عملیات مالی موسسه در دفتر مالی، انتقال کلیه عملیات‌ها از دفتر روزنامه به دفتر کل است. و بقیه عملیات در پایان دوره مالی انجام می‌شود.

 

۵۹ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۹:۰۶
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۵۹ ب.ظ

درس هفتم- کوکی‌ها (Cookie) و ورود به سیستم (Login)

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

 

کوکی
کوکی ابزاری است که سیستم سرویس دهنده توسط زبان برنامه نویسی شده در آن٬ یکسری داده‌های مربوط به کاربران را در رایانه هر کاربر بصورت یک فایل ثبت می‌کند. از آن به بعد هر بار که کاربر به آن تارنما یا سیستمی که در آن ثبت نام کرده مراجعه می‌کند٬ سیستم داده‌های مربوط به آن کاربر را خوانده و از آن برای ردیابی و ارائه سرویس‌های ویژه‌ی آن کاربر استفاده می‌کند. برای اینکه  کوکی‌های ساخته شده در رایانه خود توسط هر سیستم را مشاهده کنید٬ کافی‌ست که به آدرس آن در مرورگر خود بروید. بطور مثال به نشانی‌های زیر در مرورگر فایرفاکس مراجعه کنید٬ تا کوکی‌های ثبت شده را ببینید:

Firefox: Tools / Options / Privacy / Show Cookies.

برای دیدن کوکی تارنمای ویژه‌ای کافی‌ست که نشانی آن تارنما را در قسمت جستجو (Search) بزنید٬ بطور مثال ما برای دیدن کوکی تارنمای خود که در مکان محلی یا همان  Localhost است٬ این کلمه را وارد می‌کنیم و کوکی مورد نظر آورده می‌شود. بعد از دست‌یابی به کوکی٬ می‌بینید که شما قادر به پاک کردن آن هستید. اگر کوکی تارنمایی را پاک کنید٬ آن تارنما در زمان ورود دوباره شما به سیستم٬ دوباره کوکی تازه‌ای می‌سازد.

برای استفاده از کوکی٬ قسمت ورود را به سیستم خود اضافه می‌کنیم. در طول این درس با اضافه کردن قسمت «ورود» کاربران قادر به ثبت نام (که در درس‌های قبلی انجام دادیم) و ورود به سیستم می‌شوند.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۹

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

 

فرستادن رایانامه
حتما تا به امروز کلمه «تماس با ما» را در تارنماهای بسیاری مشاهده کرده‌اید. این برگه به شما اجازه می‌دهد که به مدیر آن تارنما یک پیغام از طریق رایانامه بفرستید. فرستادن رایانامه در پی‌اچ‌پی بسیار ساده است و تنها با دانستن یک تابع و پارامتر‌هایش این مهم اجرا خواهد شد.

تابع فرستادن رایانامه

mail (to, subject, body, [header] ) ;

mail (، بدنه، موضوع، به[سرایند]);

نکته: پارامترها می‌توانند بصورت ایستا (متن) و یا بصورت یک متغیر باشند.

mail ($to, $subject, $body, [$header] ) ;

به یا to
به معنی گیرنده رایانامه است. در صورتی که از این تکنیک برای دریافت رایانامه‌های ارسالی کاربران خود استفاده می‌کنید، باید نشانی رایانامه‌ای که می‌خواهید پیام‌های کاربرانتان را دریافت کند در این قسمت قرار دهید.

موضوع یا subject: همین طور که از نام پیداست به معنی موضوع پیام ارسالی است.

بدنه یا :body متن پیام در این قسمت گذاشته  و ارسال می‌شود.

سرایند یا :header در زمان ارسال هر رایانامه‌ای، انتخاب‌هایی  و یا گزینه‌های دیگری مانند  FROM، (Carbon Copy) CC و یا (Blind Carbon Copy) BCC وجود دارند که همه آنها در قسمت سرایند قرار می‌گیرند. این قسمت یک پارامتر انتخابی اشت و لزوما برای ارسال رایانامه نیازی به آن نیست، اما بهتر است که FROM در رایانامه گنجانده شود. در مورد باقی گزینه‌ها هم، خب، انتخاب با شماست.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۸
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۵۷ ب.ظ

درس پنجم- صفحه بندی و مرتب سازی رکوردها

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

 

یاد‌آوری
وارد کردن فایل
 برای واردکردن فایل در فایل دیگری از موارد زیر استفاده می‌شود.

  • include('نام و نشانی فایل')
  • include_once()
  • require()
  • require_once()

 

توابع

isset( $_POST['submit'] ) // اطمینان از ارسال داده‌ها توسط دکمه ارسال    

empty($_POST['name'])  // اطمینان از پربودن کادر فرم   

$dbc = mysqli_connect ( hostname , username , password , db_name ); // اتصال به پایگاه

mysqli_connect_error( )  // برگرداندن متنی به عنوان اشکال در اتصال به پایگاه

mysqli_set_charset($dbc, 'utf8');  // تنظیم نوع رمزگذاری کاراکتر‌ها

$e = mysqli_real_escape_string($dbc, trim($_POST['email'])) ; //   از بین بردن فاصله‌ها و کاراکترهای اضافه

$q = "SELECT * FROM users ORDER BY register_date ASC"; //    پرس‌وجو

$r = @mysqli_query ($dbc, $q); // اجرای پرس‌و‌جو

$num = mysqli_num_rows($r); // شمارش تعداد دریافتی‌ها

$row = mysqli_fetch_array($r, MYSQLI_ASSOC) //به داخل آرایه با کلید کلمه‌ای    دریافت‌ها

$row = mysqli_fetch_array($r, MYSQLI_NUM);  // به داخل آرایه با کلید شماره‌ای    دریافت‌ها

mysqli_free_result ($r); // آزادسازی منابع

mysqli_close($dbc); // بستن ارتباط با پایگاه

 

صفحه بندی
حتما قبلا با مراجعه به تارنماهای بسیاری با این قسمت روبرو شدید. مثلا در موتور جستجوی گوگل در هنگام نمایش یافته‌ها اگر به قسمت پایین صفحه دقت کنید، صفحه بندی را در قالب نمایش داده‌ها در صفحه‌های بیشماری مشاهده خواهید کرد.

برای انجام این مهم ما از پوشه‌ای که در دوره مقدماتی با هم ساختیم استفاده می‌کنیم. لطفا یک رونوشت از پوشه درس ۱۵ «ویرایش داده‌ها» گرفته و با نام تازه Pagination ثبت کنید. کار صفحه بندی را می‌خواهیم در برگه «کاربران» انجام دهیم، بطوریکه این برگه کاربران ثبت نام شده را در صفحه‌های متعددی با توجه به تعداد آنها و تعدادی که می‌خواهیم در یک صفحه دیده شود، نمایش دهد.

برای پیاده سازی صفحه بندی در برگه کاربران این برگه را باز نویسی می‌کنیم. یعنی کد‌های آن را پاک کرده و از نو کدهای جدید را وارد می‌کنیم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۷
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۵۶ ب.ظ

درس چهارم- ایرادیابی

مقدمه
خطاها بخش بدون تفکیک و دوری ناپذیر در برنامه نویسی هستند. این مسئله برای همه افرادی که رو به برنامه نویسی می‌آورند مشترک است. البته هر چقدر تجربه ما در نوشتن کدها بالاتر می‌رود، احتمالا از تعداد خطاها و ایرادها در برنامه‌هایمان کاسته می‌شود. اما فراموش نکنید که این جزوی از ساخت سیستم است و نوشتن برنامه بدون ایراد تقریبا غیر ممکن است.  برای اینکه این ادعا را روشن‌تر بیان کنیم و بیشتر مورد قبول شما قرار گیرد، به تجربه خودتان در استفاده از برنامه‌ها و یا ابزارک‌های نوشته شده رجوع کنید. بدون شک در طول کار با برنامه‌های متعدد بارها و بارها به ایراد‌ها برخوردید، شاید کلمه Bug یا اشکال برایتان از  این جهت  آشنا به نظر آید. در این درس نگاهی به دلایل و یا موجبات اشکالها و اثرات آنها در تارنماها پرداخته و تکنیک‌هایی را برای یافتن و رفع آنها بررسی می‌کنیم.

 

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

 خطاهای پی‌اچ‌پی شاید بیشترین باشند چرا که این برنامه در اصل هسته اصلی تارنما را تشکیل می‌دهد. این خطاها به سه دسته عمومی زیر تقسیم می‌شوند:

Syntactical یا خطای دستوری: شاید بیشترین تعداد خطاها، ایرادهای دستوری در میان کد‌های شما باشند که براحتی هم قابل پیدا کردن و اشکال زدایی هستند. مثلا فراموش کردن علامت $ ویا ; که اجازه اجرای کد را نمی‌دهند و باید ابتدا آنها را درست کرد. البته مشاهده این خطاها وابسته به فعال بودن قسمت نمایش ایرادها در پیکربندی پی‌اچ‌پی شما است (در ادامه درس به این نکته هم پرداخته خواهد شد).

Run-time: این دسته خطاها برنامه را از اجرا باز نمی‌دارند، بلکه اجرای برنامه بطوریکه نوشته شده انجام نمی‌شود و ممکن است شما نتیجه متفاوت از آنچه نوشته‌اید دریافت کنید. مثلا فراخوانی تابعی با تعداد یا نوع پارامترهای نادرست. در این گروه اشکال‌ها پی‌اچ‌پی معمولا یک پیغام خطا می‌دهد که اشکال را بطور مشخص نشان می‌دهد.

Logical: این دسته اشکالها شاید بدترین آنها باشند چراکه لزوما گزارش یا خطایی از پی‌اچ‌پی اعلام نمی‌شود و برنامه مسیر عادی خود را طی می‌کند. این نوع خطاها معمولا مشخص نیستند و در اجرای برنامه هم تاثیری ندارند. پس پیدا کردنشان کمی سخت‌تر به نظر می‌آید.

خطاهای اس‌ کیو ال: خطاها در زبان پرس‌و‌جوی اس‌کیو ال بیشتر به شکل ایرادهای دستوری هستند و در طول اجرای پرس‌و‌جو انجام و نمایش داده می‌شوند. ایرادیابی در این منطقه هم سخت به نظر نمی‌آیند. مثلا اشتباه در نوشتن دستوری از نظر ترتیب یا استفاده غلط از کلمات پیش فرض.

از خطاهای واضح و تکراری، پیغام عدم دسترسی به پایگاه و یا سطح دسترسی است که در قسمت‌های آینده بیشتر از آنها صحبت می‌کنیم.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۶
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۵۶ ب.ظ

درس سوم- پیوند زدن (Join)

مقدمه
در دوره مقدماتی و در درس‌های قبلی تلاش شد تا مفاهیم SQL بطور قدم به قدم و همراه مثال‌های متعدد برای شما شرح داده شود. تا به حال ما با مفاهیم پایه‌ای و پیشرفته این زبان پرس‌و‌جو، از دستور‌های ابتدایی تا طراحی پایگاه آشنا شده‌ایم. در این درس بنا داریم مفاهیم باقی مانده از SQL را به داشته‌های خود اضافه کنیم و با کمک آنچه از قبل خوانده‌ایم و این مفاهیم تازه سطح دانش خود را از SQL به اندازه‌ای بالا ببریم که بتوانیم با استفاده از آن شروع به ساخت سیستم‌های با کاربری بهتر و پیشرفته‌تر کنیم. مفاهیمی که در این درس شرح می‌دهیم از موضوعات بسیار مهم در زبان برنامه نویسی پرس‌و‌جو‌ی SQL هستند.

 

JOIN
در زبان پارسی یکی از معانی این کلمه به «پیوند زدن» اشاره دارد که می‌تواند توضیح مختصری از عملکرد این تکنیک باشد. آنچه که در تعریف این فن می‌شود گفت این است که پیوند زدن در واقع بین دو یا چند جدول، و نمایش داده‌های بدست آمده در جدول دیگری صورت می‌پذیرد. با این کار عمل پرس‌وجو بطور بهینه شده‌ای صورت می‌گیرد که از تکرار و انجام دو یا بیشتر پرس‌و‌جو جلوگیری می‌کند. این تکنیک زمانی کارامدی خود را نشان می‌دهد که شما می‌خواهید داده‌هایی را از چند جدول متفاوت ولی مرتبط دریافت کنید و از آن‌ها در برنامه خود استفاده کنید. بطور کلی JOIN به دو دسته مهم تقسیم می‌شود (INNER JOIN و OUTER JOIN) که دارای زیر دسته‌هایی می‌شوند.

دستور کلی برای استفاده از پیوند به شکل زیر است:

SELECT نام ستون. نام جدول  FROM  نام جدول یکم  نوع پیوند      نام جدول دوم  جمله پیوند

این دستور با کلمه  SELECTآغاز می‌شود، در مرحله دوم باید نام ستون قید شود. بخاطر استفاده از چندین ستون از جدول‌های متفاوت برای نوشتن نام ستون باید ابتدا نام جدول را نوشت، یک نقطه و بعد نام ستون. بعد باید نام جدول ابتدایی را نوشت و نوع پیوندش را مشخص کرد قبل از اینکه نام جدول دوم نوشته شود. در آخر هم جمله پیوند که مربوط به ستون رابط بین دو جدول است آورده می‌شود. اجازه بدهید قبل از ادامه این درس مثالی را بیاوریم تا در طول درس از آن استفاده کنیم.

 فرض کنید که می‌خواهید یک تالار گفتگوی ساده طراحی کنید. این تالار دارای سه جدول است که شامل:

users: برای نگهداری اطلاعات مربوط به کاربران

forums: برای نگهداری اطلاعات مربوط به تالار

messages: برای نگهداری مطالب نوشته شده در تالار

CREATE DATABASE  forums ;

USE forums;

CREATE TABLE  users  (

user_id  mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

username  varchar(30) NOT NULL,

pass  char(40) NOT NULL,

 first_name  varchar(20) NOT NULL,

last_name  varchar(40) NOT NULL,

email  varchar(60) NOT NULL,

 PRIMARY KEY ( user_id ),

);

 

CREATE TABLE messages (

 message_id  int(10) unsigned NOT NULL AUTO_INCREMENT,

 parent_id  int(10) unsigned NOT NULL DEFAULT '0',

 forum_id  tinyint(3) unsigned NOT NULL,

 user_id` mediumint(8) unsigned NOT NULL,

 subject  varchar(100) NOT NULL,

 body  longtext NOT NULL,

 date_entered  datetime  NOT NULL,

 PRIMARY KEY ( message_id ),

 ) ENGINE=MyISAM ;

CREATE TABLE forums (

forum_id  tinyint(3) unsigned NOT NULL AUTO_INCREMENT,

name  varchar(60) NOT NULL,

PRIMARY KEY (forum_id),

) ;

حال که جدول‌ها ساخته شد می‌توانیم داده‌هایی در آنها قرار دهیم. یادتان هست؟ با کمک دستور INSERT INTO لطفا شما هم داده‌های در تمام سه جدول وارد کنید.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۶
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۵۱ ب.ظ

درس سوم- جستجو در مک و کار با پوشه های هوشمند

در مک، جستجوی اطلاعات تفاوت های اندکی با ویندوز دارد. نام قلب این سیستم جستجو اسپات لایت (Spotlight) است. بخشی که در قسمت سمت راست منوبار مک تان با آیکونی شبیه به ذره بین می توانید به صورت پیش فرض مشاهده کنید. اسپات لایت به منظور جستجو در میان فایل ها، امکان انجام عملیات ریاضی، یافتن معنی کلمات در دیکشنری مک و... به کار می رود.


تصویر منوی اسپات لایت در منوبار OS X 10.8

 

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

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

دسترسی به اسپات لایت
جهت دسترسی به اسپات لایت و آغاز جستجوی فایل ها در آن، کافی است بر روی آیکون ذره بین در منوبار کلیک کنید و یا کلیدهای ترکیبی Command+Space را از کیبرد فشار دهید. با باز شدن اسپات لایت می توانید متن مورد نظر را در آن تایپ کنید تا با تایپ هر حرف، لیستی از فایل ها و داده ها مطابق تصویر زیر در اسپات لایت ظاهر شود.


تصویری از اسپات لایت به همراه جستجوی “Darsnameh” در OS X 10.8

ترفند های جستجو در اسپات لایت
اسپات لایت در هنگام جستجوی عبارات تایپ شده در فیلد جستجو، طبق منطق AND در برنامه نویسی عمل می کند. به این معنی که اگر عبارتی دو کلمه ای در آن وارد شود، در فهرستش، نام یا محتوای فایل هایی که حاوی هر دو کلمه باشند را فیلتر کرده و نمایش می دهد. برای مثال اگر Google Chrome را جستجو کنید، اسپات لایت نام و محتوای فایل هایی که Google و Chrome را در کنار هم یا جدا از هم داشته باشند، لیست می کند. اگر بخواهید فقط خود Google Chrome جستجو شود، باید آن را در میان کوتیشن و به صورت “Google Chrome” تایپ (جستجو) کنید.

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


تصویری از اسپات لایت به همراه جستجوی فایل هایی با نام Google Chrome در OS X 10.8

بدین ترتیب مطابق جستجوی عبارتی که در تصویر فوق مشخص است، فایل ها یا پوشه هایی که نامشان Google Chrome است لیست می شوند.

نکته: اسپات لایت به صورت پیش فرض به بزرگ یا کوچک بودن حروف در هنگام ذخیره در دیتابیس یا جستجو اهمیتی نمی دهد.

برای محدود کردن گزینه های یافت شده در اسپات لایت می توانید جستجو را با استفاده از فاکتور تاریخ نیز محدود کنید. برای مثال اگر می دانید فایل مورد نظرتان را امروز اضافه یا ویرایش کرده اید، می توانید با تایپ date: today یا date: yesterday در اسپات لایت، تمامی فایل هایی که به ترتیب امروز یا دیروز ویرایش یا اضافه کرده اید را مشاهده و به آنها دسترسی داشته باشید. بدین ترتیب پوشه ها، فایل ها و برنامه هایی که در تاریخ مذبور فراخوانده، ویرایش کرده یا به کامپیوتر اضافه (دانلود یا ایجاد) کرده اید، در اسپات لایت لیست می شوند.

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۵۱
دوشنبه, ۱۷ شهریور ۱۳۹۳، ۰۶:۳۰ ب.ظ

درس پنجم- روند و خطوط روند

مفهوم روند در بازارهای مالی، اشاره به جهت بازار دارد. روندها، جهت و شیب حرکتی قیمت از مقطعی در گذشته تا به حال -و یا تا آینده- را نشان می‌دهند و از آنجایی که روند نشانگر قدرت بازار در یک جهت است، می‌توان از زمان شکل‌گیری آن انتظار داشت که تا مدتی بازار را در یک جهت پیش ببرد.

هر روند از مجموعه‌ای موج نزولی و صعودی تشکیل شده که به صورت یک در میان حرکات بازار را رقم می‌زنند.

 

انواع روند
روندها به طور کلی به سه دسته تقسیم می‌شوند:

۱. روند صعودی: در این نوع روند بازار بیش از آنکه میل به ضعف داشته باشد میل به تقویت و بالا بردن قیمت را دارد. این مفهوم در تشکیل کف‌ها و سقف‌ها خود را نشان می‌دهد به این صورت که در روند صعودی، کف بعدی بالاتر از کف قبلی تشکیل می‌شود و چنانچه سقف‌ها نیز به صورت پیاپی بالاتر تشکیل شوند یک روند قدرتمند را داریم ولی روند صعودی، تا زمانی پا بر جا تلقی می‌شود که کف‌ها به صورت صعودی تشکیل شوند.

۲. روند نزولی: روند نزولی عکس روند صعودی است، بازار میل به تضعیف دارد و از این رو سقف‌ها به صورت نزولی تشکیل شده و تا زمان برقراری این چیدمان نزولی، روند نیز نزولی تلقی می‌شود.

نمونه‌هایی از روندهای سه گانه را در تصویر زیر مشاهده می‌کنید:

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

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

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۳ ، ۱۸:۳۰
شنبه, ۱۸ مرداد ۱۳۹۳، ۱۰:۳۵ ق.ظ

درس نهم- تعادل در بازار

تا به حال از عرضه و تقاضا به تنهایی سخن گفتیم، حال باید از مفهومی مهمتر سخن بگوییم. آن مفهوم، مفهوم تعادل است. تعادل وضعیتی است که عرضه و تقاضا در تناسب با یکدیگر به سر می برند. به عبارت دیگر نقطه تعادل بازار نقطه ای است که مقدار عرضه و تقاضا با یکدیگر برابر می شوند و مازاد یا کمبودی در بازار وجود ندارد.

در واقع اگر نمودار عرضه و تقاضا را بر روی یک چارت قرار دهیم، نقطه تعادل نقطه ای است که این دو منحنی یکدیگر را قطع می کنند. قیمت تعادل قیمتی است که در آن میزان و عرضه و تقاضا با یکدیگر برابرند. کمیت تعادل کمیتی است که در آن میزان عرضه و میزان تقاضا با یکدیگر برابرند. قیمت تعادل و کمیت تعادل در شکل زیر به ترتیب با *p و *q نشان داده شده اند.

قیمت تعادل را گاه قیمت تسویه بازار (Market Clearing Price) هم می خوانند چرا که در این قیمت همه راضی هستند. فروشندگان هر آنچه می خواسته اند را فروخته اند و خریداران هر آنچه می خواسته اند را خریده اند. به عبارت دیگر قیمت تعادل قیمتی است که در آن خریداران می خواهند و می توانند دقیقا به آن میزان از کالا بخرند که فروشندگان می توانند و می خواهند از آن کالا بفروشند.

۸ نظر موافقین ۱ مخالفین ۰ ۱۸ مرداد ۹۳ ، ۱۰:۳۵
شنبه, ۱۸ مرداد ۱۳۹۳، ۰۱:۰۷ ق.ظ

مقدمه‌- گوگل و گوگل+

پیشگفتار
دوره پیشرو، دوره آموزشی گوگل+ است که البته همانند دیگر دوره‌ها نیازمند کمی مقدمات در جهت راحت سازی درک و فهم دوره برای کاربران عزیز است. در این دوره تلاش بر این شده است که شما را ابتدا با گوگل و سپس با گوگل+ آشنا کنیم. پس از آشنایی شما با گوگل، مراحل کار و یادگیری آن را درس به درس آموزش می‌دهیم. قطعا پس از یادگیری و شناختن گوگل+، علاوه بر علاقه‌مند شدن به گوگل+، استفاده زیادی از آن در زندگی و فعالیت‌های اینترنتی خود می‌توانید داشته باشید. در حین توضیحات اصطلاحاتی وجود دارد که شاید برای شما کاربر عزیز مبهم باشد، به همین دلیل بیشتر اصطلاحات و تعاریف به صورت نکته گفته می‌شوند. در این درس:

  • با شرکت گوگل و مشتقات آن آشنا می‌شوید.
  • مفاهیم کلی دنیای وب گفته می‌شود.
  • تعریفی از گوگل پلاس بیان می‌شود.

 

نگاهی گذرا بر گوگل
گوگل چیست؟
گوگل شرکت سهامی عامی است که در زمینه جستجوی اینترنتی، رایانش ابری و تبلیغات سرمایه ‌گذاری می‌‌کند. هدف گوگل از آغاز سازماندهی کردن اطلاعات دنیا و دسترس ‌پذیر کردن آن‌ها برای عموم بود. گوگل بر گرفته شده از واژه گوگول (به معنی یک عدد یک و صد صفر جلوی آن) است. به این معنی که گوگل قصد دارد تا سرویس‌‌ها، اهداف، اطلاع‌ رسانی و اطلاعات خود را تا آن مقدار در وب و در جهان گسترش دهد. گوگل به طور تخمینی دارای بیش از یک میلیون سرور در سراسر جهان است و روزانه بر روی بیش از یک میلیارد درخواست جستجو و حدود ۲۴ پتابایت (۱۰۲۴ ترابایت) داده تولید شده توسط کاربران پردازش انجام می‌دهد. این شرکت محصولات اینترنتی سودمندی مانند سرویس جی‌میل و شبکه ‌های اجتماعی مانند گوگل+ را به کاربران خود پیشنهاد می‌دهد. محصولات گوگل به ابزار‌های رومیزی با برنامه‌هایی مانند مرورگر وب گوگل کروم، سازماندهی و ویرایشگر تصاویر پیکاسا و پیام‌ رسان فوری گوگل تاک نیز توسعه پیدا کرده است و همچنین گوگل بر روی سیستم ‌عامل موبایل اندروید که در بسیاری از تلفن‌های همراه استفاده می‌شود در کنار سیستم ‌عامل گوگل کروم نظارت دارد.

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

۲ نظر موافقین ۱ مخالفین ۰ ۱۸ مرداد ۹۳ ، ۰۱:۰۷
شنبه, ۱۸ مرداد ۱۳۹۳، ۰۱:۰۶ ق.ظ

نگهداری و پاک کردن اطلاعات به صورت امن

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

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

به این نکته توجه داشته باشید که همیشه احتمال نفوذ افراد به کامپیوتر شما وجود دارد و در مواردی تمام اقدامات شما برای محافظت از خودتان بی اثر می شود. به این ترتیب رها کردن اطلاعات مهم و حساس بدون هیچ گونه حمایت، شما را در معرض خطرات جدی قرار می دهد. دو راه کلی برای حمایت بیشتر از اطلاعات در کامپیوتر وجود دارد؛ اول اینکه اطلاعات را با رمزگذاری برای سایرین غیر قابل فهم کرد و دوم اینکه آنها را از معرض دید دیگران پنهان کرد.

در این بخش به بررسی موارد زیر می پردازیم:

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

اطلاعات خود را رمزگذاری کنید
اگر از رمز ورود ویندوز به عنوان تنها حامی اطلاعات محرمانه خود استفاده می کنید، اشتباه بزرگی را مرتکب شده اید، زیرا در صورتی که شخصی کامپیوتر شما را با استفاده از یک سی دی لایو راه اندازی کند، بدون هیچ دغدغه ای به کلیه ی پوشه های شما دسترسی خواهد داشت. در درس امنیت سیستم عامل ویندوز خواندید که با استفاده از بیت لاکر (BitLocker) می توان درایو ویندوز را رمزنگاری کرد.

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

امکانات متعددی که True Crypt در اختیار شما می گذارد باعث شده است که این نرم افزار از جهات متعددی با سایر نرم افزارهای مشابه تفاوت داشته باشد.

۰ نظر موافقین ۱ مخالفین ۰ ۱۸ مرداد ۹۳ ، ۰۱:۰۶