ایرانی توانمند
Business is booming.

آموزش کار با PHP

3

آموزش کار با PHP

مقدمه
PHP یک زبان اسکریپتی سمت سرور (Server Side) می باشد که امروزه بیش از نصفی از وبسایتهای مطرح جهان، از آن برای حفظ و نگهداری داده ها و ایجاد سایتهای دینامیک و به روز استفاده می کنند.
PHP هم همانند تمامی زبانهای برنامه نویسی Server Side، ترجمه شده و در نهایت به صورت کدهای HTML در اختیار کاربر قرار می گیرد. از این رو کد شما، از دید دیگران پنهان می ماند.
اما فرق PHP با دیگر زبانها چیست؟ یکی از مهمترین رقیبهای PHP، توسط مایکروسافت تحت عنوان ASP که در نسخه جدید به ASP.NET تغییر نام داده است، به وجود آمده و هنوز بحث سر آن است که کدامیک از آنها قویتر و مناسب تر است.
در این مقاله نمی خواهم بگویم که کدام یک بهتر است. هر کس عقاید مربوط به خود را دارد. در زیر به مقایسه این دو زبان می پردازم:
• تقریبا در تمامی مراکز فروش هوست (Host)، سرور لینوکس ارزانتر از سرور ویندوز است و از آنجا که برای اجرای صفحات ASP.NET، نیازمند سرور ویندوز همراه با وب سرور IIS هستیم، می بایست پول بیشتری را پرداخت کنیم. این در حالی است که PHP بر روی تمامی Platformها از قبیل ویندوز و لینوکس نصب و اجرا می گردد.
• PHP کاملا Open-Source می باشد.
• به وضوح در اجرای صفحات ASP.NET و PHP دیده می شود که سرعت PHP سریعتر از ASP.NET می باشد.
• برای ایجاد کردن صفحات PHP، هیچ نرم افزار جامعی به بازار ارائه نشده است که بتواند نیازهای کاربران را بر طرف کند (از Dream Weaver می توان تا حدی استفاده کرد)، اما نرم افزار پر قدرت Visual Studio.NET، نرم افزاری جامع برای ایجاد صفحات دینامیک ASP.NET می باشد.
• در ASP.NET می توان از ترکیب زبانهای برنامه نویسی مختلف نظیر VB, C#, C++و غیره استفاده کرد ، اما PHP فقط از همان زبان خودش که PHP است پشتیبانی می کند.
• ASP.NET دارای ویژگی ای تحت عنوان Code Behind می باشد که به برنامه نویس اجازه می دهد کدهای HTML را جدا از کدهای ASP.NET نگهداری کند. این کار سبب آن می شود که در صورت نیاز به رفع مشکل، برنامه نویس مستقیما به فایل مربوط به کدهای ASP.NET برود و با کدهای HTML کاری نداشته باشد. در صورتی که PHP به صورت Default این طور نیست (به وسیله نرم افزارهایی می توان برای PHP هم، این کار را کرد).
همان طور که مشاهده کردید، هر کدام از آنها دارای معایب و مزایایی هستند و انتخاب آنها، کاملا به عهده خود شماست.
نصب PHP
نصب PHP بر روی ویندوز و IIS کار بسیار آسانی است. اما از آنجا که در این مقاله، علاوه بر آشنایی با PHP، مروری بر پایگاه داده ی MySQL داریم، نیازمند MySQL نیز هستیم. اگر بخواهید تک تک آنها را از اینترنت دانلود کرده و آنها را جداگانه نصب و پیکربندی کنید، می بایست وقت بسیاری را صرف کنید. دانلود آنها (آن هم با یک مودم و اینترنتی که بیش تر از 4KB/S نمی رود) کار بسیار زمان بری است. همچنین برای پیکربندی آنها نیز، مستلزم انجام کارهای نه چندان خوشایند هستید!
بدین منظور، من به شما یک راه ساده تر را پیشنهاد می کنم. XAMPP!
XAMPP یک مجموعه نرم افزاری بسیار جالب است که علاوه بر حجم کم آن (تنها 13MB)، تمامی پکیجهای مورد نیاز شما را شامل می شود:
• Apache 2.0.48
• MySQL 4.0.16
• PHP 4.3.4 + PEAR
• MiniPerl 5.8.0
• mod_php 4.3.4
• PHPMyAdmin 2.5.3
• SQLite 2.8.6
این در حالی است که فقط خود MySQL به تنهایی، حجمی بیشتر از 10MB دارد.
من از پکیج XAMPP mini win32 Version 1.2 در کامپیوتر خودم استفاده می کنم. آن را می توانید از آدرس زیر دانلود کنید.
http://www.apachefriends.org/download.php?minixampp-win32-1.2.exe
چگونگی نصب XAMPP
نکته: قبل از انجام این عملیات، وب سرور IIS خود (و یا دیگر وب سرورها) را غیر فعال (Disable, Stop) کنید.
پس از دریافت XAMPP آن را در جای مورد نظر خود نصب (Extract) کنید. فرق نمی کند که کجا باشد.
سپس به پوشه ای که XAMPP را در آنجا Extract نموده اید، بروید. فایل setup_xampp.bat را باز کرده تا صفحه سیاهی نمایان شود. عدد ۱ را وارد کرده و کلید Enter را فشار دهید تا مراحل نصب آغاز شود.
پس از آنکه نصب به پایان رسید، می بایست سرور شوید. برای اینکار دو فایل apache_start.bat و mysql_start.bat را اجرا کرده و دیگر کاری به آنها نداشته باشید. آنها را Minimize کرده و مابقی کارها را انجام دهید.
حال مرورگر دلخواه خود را باز کرده و عبارت http://localhost (یا http://127.0.0.1) را تایپ نمایید. با انجام اینکار می بایست صفحه بنفش رنگی نمایان شود.
چگونگی اجرا کردن اسکریپتهای PHP به وسیله XAMPP
اسنادی را که خواهان اجرای آن به وسیله XAMPP هستید، می بایست درون پوشه htdocs کپی نمایید. ولی در نوشتن آدرس آن در مرورگر، نیازی به نوشتن این پوشه نیست. به عنوان مثال فایل %XAMPP%\htdocs\weblog\index.php را در مرورگر می بایست به صورت http://localhost/weblog/index.php اجرا نمود…
شروع کار با PHP
در برنامه نویسی هیچ چیز لذت بخش تر از کد نویسی نیست. همین حالا برنامه Notepad خود را باز کرده و کدهای زیر را در آن بنویسید:
<html>
<head>
<title>PHP Info</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>

<body>
<?php
phpinfo();
?>
</body>

</html>
این فایل را در محل %XAMPP%\htdocs\PHP\phpinfo.php ذخیره کرده و به وسیله مرورگر خود، آدرس http://localhost/PHP/phpinfo.php را اجرا نمایید. با انجام این کار، صفحه ای که مشخصات PHP نصب شده بر روی سیستم را به شما نشان می دهد، نمایان خواهد شد.
آشنایی با PHP
همان طور که در مثال بالا مشاهده کردید، کد زیر با بقیه کدهای HTML فرق داشت:
<php
phpinfo();
?>
این تکه کدی است که به وسیله PHP نوشته شده است. برای نوشتن کدهای PHP، می بایست آنها را در بین تگهای ?> و <?php یا ?> و <? قرار داد. همچنین یک راه میانبر نیز است که به صورت <?=SOMETHING?> به کار می رود. در این مقاله از همان روش ?> و <?php استفاده می شود.
عبارات (Statements)
به طور کلی در PHP، عبارات به دو دسته زیر تقسیم می شوند:
• تک خطی (Single Line)
• چندخطی (Multi Line)
در انتهای هر عبارت PHP، یک علامت سمی کالن (;) قرار می گیرد. به وسیله این علامت، PHP متوجه می شود که یک عبارت به اتمام رسیده و عبارت دیگری در حال شروع است. به مثالهای زیر توجه کنید:
<?php
echo(“Hello World!”);
echo(“Mojtaba”);
?>

<?php
echo(“Hellow World”); echo(“Mojtaba”);
?>
هر دو کد بالا صحیح است. چرا که بعد از اتمام هر یک از عبارت PHP، یک علامت سمی کالن قرار داده شده است. برنامه نویسان معمولا از کد بالایی استفاده می کنند. چرا که در آن، هر یک از کدهای PHP در یک خط مجزا قرار گرفته و در نتیجه نگهداری کد آسان تر خواهد شد. حال به کد زیر توجه کنید:
<?php
echo(“Hello World!”)
echo(“Mojtaba”)
?>
اجرای این کد سبب خطا می شود. چرا که عبارت در آن از هم جدا نشده است و عبارتی همانند عبارت echo(“Hello World”) echo(“Mojtaba”) برای PHP ناآشناست.
تا به اینجای کار، عبارت تک خطی مورد بررسی قرار گرفتند و اما عبارات چند خطی. عبارات چندخطی که به کد بلاک (Code Block) معروف است، در PHP توسط آکولادها { } احاطه می شوند. این عبارات با همدیگر اجرا می شوند. به عنوان مثال در یک عبارت شرطی (عبارات شرطی در جلوتر مورد بررسی قرار می گیرند)، برای PHP تعیین می کنیم که اگر شرط درست بود، این سری عبارات و در غیر این صورت، سری دیگری عبارات را اجرا نماید:
<?php
if (8 > 5) {
echo(“True”);
echo(“8 is greater than 5”);
} else {
echo(“False”);
echo(“The statement is false”);
}
?>
فعلا زیاد به معنای این قطعه کد کار نداشته باشید. من فعلا می خواهم به شما ساختار عبارات چند خطی را نشان بدهم. در این قطعه کد اگر شرط درست باشد، دو عبارت بالایی و در غیر این صورت، دو عبارت پایینی اجرا می شوند. همان طور که می بینید، عبارت در بین آکولادها قرار گرفته اند. همچنین در انتهای هر عبارت، یک علامت سمی کالن قرار داده شده است. انجام این کار را هیچ موقع فراموش نکنید: قرار دادن یک سمی کالن در انتهای هر عبارت.
در اینجا بد نیست به نکته دیگری نیز اشاره کنم. شما می توانید کدهای PHP را همراه با کدهای HTML مخلوط کنید. ابتدا به مثال زیر توجه کنید تا درباره آن بیشتر توضیح دهم:
<?php
if (8 > 5) {
echo(“8”);
?>
<br>is greater than<br>
<?php
echo(“5”);
}
?>
همان طور که مشاهده می کنید، در قطعه کد بالا، ما از دو بلاک PHP استفاده کردیم و در بین آنها یک خط کد HTML قرار داده ایم. در این کد همان طور که مشاهده می کنید، از عبارات چند خطی استفاده شده است (به آکولادها دقت داشته باشید). آکولاد آغازین در قطعه کد اول و آکولاد پایانی در قطعه کد دوم قرار داده شده است. خروجی این عبارت به صورت زیر خواهد بود.
8
is greater than
5
توضیحات (Comments)
همانند توضیحات در HTML، در PHP هم می توان از توضیحات استفاده کرد. به نظر من توضیحات یکی از اصلی ترین بخشهای برنامه نویسی می باشد. به وسیله توضیحات، می توانید بعد از نگاه مجدد به کد نوشته شده، ساختار آن را بفهمید. شاید در نگاه اول با خود بگویید کدی را که خودم نوشتم، دیگر نیازی به توضیحات ندارد. اما فرض کنید شما برنامه ای نوشته اید و هم اکنون، ۱ سال است که دیگر به کدهای آن نگاهی نینداخته اید. در این صورت توضیحات، با ارزشترین چیز برای شما خواهد بود.
توضیحات در PHP به دو نوع توضیحات تک خطی و چند خطی تقسیم می شود. برای قرار دادن توضیحات تک خطی، از دو روش زیر می توانید استفاده کنید:
• استفاده از دابل اسلش (//)
• استفاده از کاراکتر شارپ (#)
همچنین برای قرار دادن توضیحات چندخطی، از توضیحات نوع جاوا یا C++ (که در CSS نیز از آنها استفاده می شود)، استفاده می کنیم. برای این کار توضیحات خود را در بین علامتهای */ و /* قرار می دهیم.
همچنین به این نکته دقت داشته باشید که توضیحاتی که در بین کدهای PHP قرار می دهید، پس از اجرا در مرورگر، در Source صفحه به نمایش در نخواهند آمد. به کد زیر توجه کنید:
<?php
/* The below statements,
print “Hello World”
to the browser */
echo(“Hello”); // Print “Hello” to the browser
echo(“World”); # Print “World” to the browser
?>
همچنین می توانید توضیحات را در جاهای دیگر نظیر وسط کدهای PHP نیز، قرار دهید. هر دو قطعه کد زیر درست می باشند.
<?php
echo(/*Quantity*/ 2 /*Operation*/ * /*Price*/ 150);
?>
همان طور که مشاهده می کنید، تمامی عبارات /*Quantity*/ و /*Operation*/ و /*Price*/ به عنوان توضیح مد نظر گرفته شده اند. علامت * که در بین دو عبارت /*Price*/ و /*Operation*/ قرار گرفته، علامت ضرب می باشد که دو عبارت ۲ و ۱۵۰ را در یکدیگر ضرب می نماید. خروجی این مثال، ۳۰۰ می باشد.
<?php
echo(
2 #Quantity
* //Operation
150 #Price
);
?>
متغیرها (Variables) یا لیترالها (Literals)
متغیرها (که به آنها لیترال نیز می گویند)، پرکاربردترین چیز در PHP می باشند. به طور کلی متغیرها به دسته های زیر تقسیم می شوند:
• متغیرهای متنی (رشته ای Strings)
• متغیرهای عددی (اعداد صحیح، اعداد اعشاری، اعداد اعشاری با دقت مضاعف)
• متغیرهای بولین (Boolean) که درست (True) یا غلط (False) می باشند
• آرایه ها (Arrays)
برای ساخت متغیرها، از علامت دلار ($) استفاده می کنیم. بدین ترتیب که ابتدا یک علامت $ نوشته، سپس بعد از آن نام متغیر مورد نظر خود را می نویسیم. سپس یک علامت تساوی (=) گذاشته و مقدار آن متغیر را می نویسیم. دقت داشته باشید که نام متغیرها Case-Sensitive می باشند. این بدین معناست که دو متغیر $mojtaba و $Mojtaba برای PHP، دو متغیر متفاوت از هم می باشند.
<?php
$name = “Mojtaba”;
?>
در این مثال ما مقدار Mojtaba را که به صورت یک رشته (String) می باشد، درون متغیری به نام $name قرار داده ایم.
رشته ها معمولا در بین کوتیشنهای دوتایی (“) یا کوتیشنهای تکی (‘) قرار می گیرند. در زیر درباره فرق این دو نوع کوتیشن بحث شده است.
• متغیرها در کوتیشن تکی ترجمه نمی شود.
<?php
$name = “Mojtaba”;
echo (‘My name is $name’);
?>
خروجی این عبارت My name is $name خواهد بود. حال اگر همین کار را به وسیله کوتیشن دوتایی انجام می دادیم، خروجی به صورت My name is Mojtaba به نمایش در می آمد.
<?php
$name = “Mojtaba”;
echo (“My name is $name”);
?>
• در کوتیشن تکی، عباراتی نظیر \n یا \t مورد بررسی قرار نمی گیرند (این عبارات جلوتر مورد بررسی قرار می گیرند).

همان طور که در بالا گفته شد، می توانید رشته ها را در بین کوتیشنهای تکی یا دوتایی قرار دهید. حال فرض کنید که می خواهید داخل رشته خود، از علامت ” یا ‘ نیز استفاده کنید. به عنوان مثال می خواهید عبارت My name is “Mojtaba” را بر روی مرورگر به نمایش در آورید. ممکن است برای این کار از کد زیر استفاده نمایید:
<?php
echo(“My name is “Mojtaba””);
?>
اما اجرای این کد سبب خطا می شود. چرا که PHP در هنگام برخورد با کوتیشن دوم، تصور می کند که رشته تمام شده است و در نتیجه مابقی عبارت که Mojtaba””); می باشد، برای آن نامعقول است. برای این کار می بایست قبل از علامت کوتیشنی که می خواهید در مرورگر به نمایش در آید، یک علامت Backslash (\) قرار دهید. یعنی کد بالا به صورت زیر در می آید:
<?php
echo(“My name is \”Mojtaba\””);
?>
پرکاربردترینهای Backslash به شرح زیر می باشد:
o \n سبب ایجاد یک خط جدید در کد HTML (و نه در خروجی مرورگر) می شود.
o \t سبب ایجاد یک Tab در کد HTML (و نه در خروجی مرورگر) می شود.
o \\ سبب نمایش یک Backslash می شود.
o \$ سبب نمایش علامت دلار می شود.
o \” سبب نمایش کوتیشن دوتایی می شود.
برای درک بیشتر این کاربردها، به مثال زیر توجه کنید:
<?php
echo(“C:\\PHP\n”);
echo(“<table>”);
echo(“\n\t<tr>”);
echo(“\n\t\t<td>”);
echo(“\”Mojtaba\””);
echo(“</td>”);
echo(“\n\t</tr>”);
echo(“\n</table>\n”);
?>
خروجی این مثال به صورت زیر خواهد بود:
C:\PHP
“Mojtaba”
همچنین اگر Source صفحه را مشاهده کنید، عبارات به صورت زیر خواهند بود (برای مشاهده Source صفحه، از منوی View گزینه Source را انتخاب کنید (مرورگر IE)).
C:\PHP
<table>
<tr>
<td>”Mojtaba”</td>
</tr>
</table>
ساختارهای کنترلی
همانند تمامی زبانهای برنامه نویسی، PHP هم دارای عبارات شرطی، حقله ها و غیره می باشد. در این قسمت از مقاله، با این نوع ساختارها آشنا می شویم.

عبارات شرطی
عبارات شرطی در PHP، به دو صورت زیر می تواند ساخته شود:
• if
• switch
عبارت شرطی if
ساختار عبارت شرطی if (که به معنای اگر می باشد)، به صورت زیر می باشد:
if (condition) {
statements;
}
اگر عبارت داخل پرانتز، یک عبارت صحیح (True) باشد، عبارات درون آکولاد به اجرا در خواهند آمد. مثال:
<?php
$totalPrice = 100000;
if ($totalPrice >= 70000) {
$free = 0.1 * $totalPrice;
$lastPrice = $totalPrice – $free;
echo(“$lastPrice”);
}
?>
این مثال مقدار متغیر $totalPrice را گرفته و چنان چه مقدار آن بیشتر از ۷۰۰۰۰ بود، عبارات درون شرط if را اجرا می کند. کار آن این است که ۱۰ درصد $totalPrice را حساب کرده و آن را از $totalPrice کم کرده و درون متغیر $lastPrice قرار می دهد. سپس مقدار نهایی را به کاربر نشان می دهد. از آنجا که مقدار $totalPrice در ابتدای اسکریپت برابر ۱۰۰۰۰۰ می باشد، در نتیجه شرط برقرار بوده و عبارات درون آن پردازش می شوند. خروجی این مثال ۹۰۰۰۰ خواهد بود (بعدا یاد خواهید گرفت که چگونه اطلاعات را از کاربر جمع آوری کرده و بر روی داده های وارد شده توسط کاربر، عملیات انجام دهید).

کامل کردن عبارت شرطی if به وسیله elseif
تا به اینجای کار، در صورتی که شرط درست بود، عبارات اجرا می شدند. حال می خواهیم بگوییم به PHP بگوییم که اگر شرط نادرست باشد، چه کار باید بکند. برای این کار می توانیم از elseif و else استفاده کنیم. به مثال زیر توجه کنید:
<?php
$age = 20;
if ($age < 13 && $age > 0) {
echo(“Baby”);
} elseif ($age >=13 && $age < 18) {
echo(“Teenager”);
} elseif ($age >= 18 && $age <= 25) {
echo(“Young”);
} else {
echo(“Your age is greater than 25”);
}
?>
در این مثال، متغیر $age برابر ۲۰ می باشد. به وسیله شرطها ما عبارات مختلفی را به کاربر نشان می دهیم:
• اگر $age مابین ۰ و ۱۳ بود، عبارت Baby به نمایش در می آید.
• اگر $age مابین ۱۳ و ۱۸ بود، عبارت Teenager به نمایش در می آید.
• اگر $age مابین ۱۸ و ۲۵ بود، عبارت Young به نمایش در می آید.
• اگر هیچ یک از شرطهای بالا برقرار نبود، عبارت Your age is greater than 25 به نمایش در خواهد آمد.
خروجی این مثال Young می باشد.
در این مثال ما از عملگرهایی نظیر && استفاده کردیم. به این عملگرها، در حقیقت عملگرهای منطقی می گویند. در زیر با این عملگرها آشنا می شویم.

عملگرهای عددی
این عملگرها، همان عملگرهای درون ریاضی هستند:
• عملگر * که به وسیله آن می توان اعداد را در یکدیگر ضرب نمود
• عملگر + که به وسیله آن می توان اعداد را با یکدیگر جمع نمود
• عملگر – که به وسیله آن می توان اعداد را از یکدیگر تفریق نمود
• عملگر / که به وسیله آن می توان اعداد را بر یکدیگر تقسیم نمود
• عملگر % که در حقیقت، همان عملگر mod در ریاضیات می باشد و باقی مانده یک تقسیم را بدست می آورد. به عنوان مثال ۵%۲ برابر ۱ خواهد بود.
عملگر انتساب و تساوی
در قبل تر مشاهده نمودید که برای انتساب یک مقدار به یک متغیر، از علامت = استفاده کردیم. حال فرض کنید که می خواهید به وسیله شرط if بررسی نمایید که اگر مقدار متغیر $name برابر Mojtaba بود، عبارت Hello Mojtaba را بر روی مرورگر به نمایش در آورد. ممکن است برای این کار شما از کد زیر استفاده نمایید:
<?php
$name = “Sara”;
if ($name = “Mojtaba”) {
echo(“Hello Mojtaba”);
} else {
echo(“You are not Mojtaba”);
}
?>
این اسکریپت به درستی کار نخواهد کرد. از آنجا که در ابتدای اسکریپت ما مقدار Sara را به متغیر $name داده ایم، و در پایین تر آن، شما به وسیله شرط if می خواهید بررسی کنید که آیا مقدار متغیر $name برابر با Mojtaba هست یا نه، این اسکریپت می بایست عبارت You are not Mojtaba را نشان دهد. چرا که مقدار متغیر $name برابر Mojtaba نبوده و در حقیقت شرط برقرار نمی باشد. اما در واقع این گونه نیست. چرا که برای مقایسه یک متغیر با یک مقدار، می بایست از عملگر == و نه = استفاده کنید. در اسکریپت بالا، در حقیقت درون شرط، شما مقدار Mojtaba را به متغیر $name نسبت داده اید و از آنجا که دیگر شرطی وجود ندارد، یعنی به نوعی شرط درست می باشد، مقدار Hello Mojtaba به نمایش در خواهد آمد. اسکریپت بالا، به صورت زیر صحیح می باشد.
<?php
$name = “Sara”;
if ($name == “Mojtaba”) {
echo(“Hello Mojtaba”);
} else {
echo(“You are not Mojtaba”);
}
?>
عبارت شرطی switch
ساختار این نوع شرط به صورت زیر است:
switch (expression) {
case value1:
statements;
break;
case value2:
statements;
break;
default:
statements;
}
این نوع شرط مقدار expression را مورد بررسی قرار داده و مقدار آن را با مقدارهای value1 و value2 و … می سنجد و در صورت درستی هر یک از آنها، statements به اجرا در خواهند آمد. عبارت break هم سبب می شود که مابقی عبارات مورد پردازش قرار داده نشوند. برای درک بیشتر به مثال زیر توجه کنید:
<?php
$s = “Male”;
switch ($s) {
case “Male”:
echo(“Man”);
break;
case “Female”:
echo(“Woman”);
break;
}
?>
حلقه ها
حلقه ها سبب اجرای یک بلاک کد به تعداد دفعات معینی می شود. یکی از نمونه های کاربرد حلقه ها، برای نمایش رکوردهای یک پایگاه داده می باشد. حلقه ها سه نوع اند:
• حلقه while
• حلقه do…while
• حلقه for
حلقه while
حلقه while تا زمانی که شرط برقرار باشد اجرا می شود. ساختار این شرط به صورت زیر می باشد:
while (condition) {
statements;
}
برای مثال برای چاپ اعداد ۱ تا ۱۰، می توانیم از حلقه زیر استفاده کنیم:
<?php
$i = 1;
while ($i <= 10) {
echo(“$i<br>”);
$i++;
}
?>
حلقه do…while
حلقه do…while دقیقا مشابه حلقه while می باشد، با این تفاوت که در حلقه های while، شرط در ابتدای هر حلقه تست می شود، اما در حلقه های do…while، شرط در انتهای هر حلقه. با این حساب، حلقه های do…while، حتی اگر شرط آن هم غلط (False) باشد، حداقل یک بار اجرا خواهند شد. ساختار این حلقه به صورت زیر است:
do {
statements;
} while (condition);
به عنوان مثال، برای چاپ اعداد ۱ تا ۱۰، می توانیم از حلقه زیر استفاده کنیم:
<?php
$i = 1;
do {
echo(“$i<br>”);
$i++;
} while ($i <= 10);
?>
حلقه for
حلقه for نوعی دیگر از انواع حلقه می باشد. بر خلاف حلقه while که تا ناصحیح شدن شرط حلقه، ادامه پیدا می کرد، این حلقه برای تعداد دفعات مشخص تکرار می شود. ساختار این نوع حلقه به صورت زیر می باشد:
for (variable assignment; test expression; variable increment) {
statements;
}
در پارامتر اولیه (variable assignment)، یک مقدار را به یک متغیر نسبت می دهیم. پارامتر دوم (test expression) عبارت شرطی ما می باشد و پارامتر سوم (variable increment)، یک مقدار را به مقدار اولیه متغیر (variable) افزایش می کند. به عنوان مثال برای چاپ اعداد ۱ تا ۱۰۰، می توانیم از کد زیر استفاده کنیم:
<?php
for ($i=1; $i<=100; $i++) {
echo(“$i”);
echo(“<br>”);
}
?>
مثالی دیگر: حال می خواهیم اعداد اول بین ۱ تا ۱۰۰ را چاپ کنیم. برای این کار از تلفیق ساختار حلقه for و ساختار شرطی if استفاده می کنیم. البته ممکن است اگر عدد ۱۰۰ را به مقدار بالاتری (مثلا ۱۰۰۰۰۰۰) افزایش دهیم، دیگر اسکریپت به درستی کار نکند و در بین آن اعداد، بعضی اعداد غیر اول هم پدیدار شوند.
<?php
for ($i=1; $i<=100; $i++) {
if (($i==1) || ($i==2) || ($i==3) || ($i==5) || ($i==7)) {
echo(“$i”);
echo(“<br>”);
} elseif (($i%2!=0) && ($i%3!=0) && ($i%5!=0) && ($i%7!=0)) {
echo(“$i”);
echo(“<br>”);
}
}
?>
توابع
توابع بیشتر برای برنامه نویسی ماژولار استفاده می شود و به وسیله آن، رفع اشکال بهتر انجام می گردد. برای درک بهتر تابع، به تابع ریاضی زیر که در دوره راهنمایی با آن آشنا شدید، نگاهی بیاندازید:
y = x + 4
حال اگر یک ورودی را به x بدهیم، یک خروجی برای y به دست می آوریم. این ورودیها را به نام پارامتر یا آرگومان (Argument) می شناسند. برای تعریف یک تابع، از کلمه کلیدی function استفاده می کنیم.
function FunctionName(parameters) {
statements;
}
به عنوان مثال، همان تابع ریاضی بالا را در نظر بگیرید. اسم این تابع را مثلا Math می گذاریم. این تابع به صورت زیر در می آید:
<?php
function Math($x) {
$y = $x + 4;
echo(“$y”);
}
?>
تا به اینجای کار ما فقط تابع را تعریف کردیم. حال می خواهیم به عنوان مثال، عدد ۵ را به عنوان ورودی به تابع بدهیم. برای این کار، نام تابع را نوشته و آرگومان مورد نظر خود را درون پرانتزها می نویسیم:
Math(5);
برای مثال، خروجی کد زیر ۹ خواهد بود:
<?php
function Math($x) {
$y = $x + 4;
echo(“$y”);
}

Math(5);
?>
ارتباط با کاربر
حال که با مختصرات PHP آشنا شدید، بهتر است به چگونگی اینجاد فرمها و ارتباط با کاربر بپردازیم.
همان طور که می دانید، برای ساختن اجزاء صفحات وب، از تگهای HTML که معمولا به صورت </tag> و <tag> می باشند، استفاده می کنیم (بعضی از اجزا، دارای تگ پایانی نیستند. همانند تگ <img>). برای ساختن فرمها در HTML، ما از تگ <form> استفاده می کنیم:
<form>
<!– Form Components –>
</form>
تگ <form> دارای دو خاصیت بسیار مهم می باشد:
• خاصیت action
• خاصیت method
خاصیت action محل اسکریپت پردازش فرم را تعیین می کند و خاصیت method، نوع ارسال داده ها به اسکریپت مورد نظر. خاصیت method، خود دارای دو مقدار می باشد:
• get
• post
اما فرق این دو متد در چیست؟ در متد get، داده های ما به صورت Query String به اسکریپت پردازش فرم ارسال می شود. اما در متد post این طور نیست. حالا شاید برای شما این سوال پیش بیاید که Query String چیست؟ به قطعه کد زیر توجه کنید تا در مورد آن توضیح دهم:
http://www.site.com/?name=mojtaba&familyname=dashti
این قطعه کد در واقع از دو خط کد زیر تشکیل شده است:
http://www.site.com/
?name=mojtaba&familyname=dashti
خط اول که آدرس سایت می باشد. اما خط دوم که به Query String معروف است، شامل داده های ما می باشد که در PHP، مقدار mojtaba در متغیر name و مقدار dashti در متغیر familyname ذخیره می شود.
معمولا برای ارسال داده های کم، از Query String استفاده می شود (متد get). اما برای ارسال داده های بلند و رمزهای عبور (Password)، متد post بهترین انتخاب می باشد.
ساخت یک Text-Box
Text-Boxها برای دریافت عبارات یک خطی، همانند نام، آدرس ایمیل، آدرس سایت، کلمه عبور و … در وب به کار می روند. برای ساخت Text-Boxها از تگ <input>، به صورت زیر استفاده می کنید:
<input type=”text” [size=”m”] [name=”name”] [value=”optional value”]>
خاصیت type=”text” به مرورگر می گوید که با این تگ <input> یک کادر متنی بسازد (بعضی دیگر از اجزای فرم نیز با همین تگ، ولی با خاصیت type متفاوت ساخته می شوند). دیگر خاصیتها برای کادر متنی، اختیاری می باشد. برخی از این خاصیتهای مهم به صورت زیر است:
• خاصیت size: اندازه Text-Box را بر حسب تعداد کاراکتر نشان می دهد. دقت داشته باشید که این خاصیت، در واقع در اندازه نمایش Text-Box و نه مقدار کاراکتری که می تواند دریافت کند، اثر می گذارد.
• خاصیت name: این خاصیت برای ایجاد فرمهای تعاملی بسیار مهم می باشد. با اختصاص یک نام به یک Text-Box، به راحتی می تواند به وسیله اسکریپتها، داده وارد شده توسط کاربر را دریافت کرده و بر روی آن عملیات انجام دهید.
• خاصیت value: به طور Default، کادرهای متنی هنگام نمایش خالی می باشند. اگر می خواهید متنی را درون Text-Box قرار دهید، عبارت مورد نظر خود را در قسمت value قرار دهید.
ساخت Text-Area
Text-Areaها در واقع نوع پیشرفته تر Text-Box می باشند که می توانند بیش از یک خط داده را از کاربر دریافت کنند. برای ساخت Text-Area از تگ <textarea> استفاده می کنیم:
<textarea [name=”name”] [rows=”m”] [cols=”m”]>
Optional Text
</textarea>
خاصیتهای rows و cols، به ترتیب نمایانگر تعداد سطرها و کاراکترهای Text-Area می باشند.

کادرهای پسورد (Password)
برای ساخت کادرهای پسورد، از تگ <input>، به صورت زیر استفاده می کنیم. کادرهای Password در واقع نوعی Text-Box هستند، با این تفاوت که در این نوع کادرها، داده های وارد شده به صورت ستاره (*) در ویندوزهای ۹۸/ME/2000 و دایره (●) در ویندوز XP نمایش داده می شوند.
<input type=”password” [name=”name”] [size=”m”] [value=”optional value”]>
کادرهای انتخاب (Check-Box)
حتما تا به حال با Check-Boxها در ویندوز برخورد کرده اید: مربع های کوچکی که کاربر می تواند آنها را انتخاب کند. برای ایجاد کردن Check-Boxها از تگ <input> به صورت زیر استفاده می کنیم:
<input type=”checkbox” [name=”name”] [value=”value”] [checked=”checked”]>
مقدار خاصیت value در صورتی که Check-Box انتخاب شده باشد، به سرور فرستاده می شود. اگر خاصیت value را برای Check-Box در نظر نگیرید، به طور اتوماتیک مقدار on به سرور فرستاده می شود. خاصیت checked=”checked” سبب انتخاب شدن Check-Box هنگام لود شدن صفحه می شود.
دکمه های رادیویی (Radio Buttons)
Radio Buttonها همانند Check-Boxها می باشند. با این تفاوت که در Check-Boxها، کاربر می تواند از بین چندین انتخاب، هر کدام را که بخواهد انتخاب کند (۱، ۲، ۳ و یا بیشتر). اما در Radio Buttonها، کاربر از بین چندین انتخاب، تنها می تواند یکی از آنها را انتخاب کند.

حال که با بعضی از اجزای فرم آشنا شدید، بهتر است یک فرم تعاملی بسازیم که یکسری اطلاعات از کاربر گرفته و آنها را در صفحه ای مجزا نمایش دهد. کد HTML مورد نظر ما، به صورت زیر می باشد. آن را در فایلی تحت عنوان index.php در محل دلخواه خود، ذخیره کنید (در محلی که فایلهای php قادر به اجرا شدن هستند).
<html>

<head>
<title>Getting Information</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>

<body>
<div style=”text-align: center”>
<div style=”width: 420px; text-align: justify “>
<form method=”post” action=”result.php”>
<table border=”0″ width=”100%”>
<tr>
<td width=”200px” style=”text-align: right”>Username</td>
<td width=”20px”>&nbsp;</td>
<td width=”200px” style=”text-align: left”>
<input type=”text” name=”username” size=”20″>
</td>
</tr>
<tr>
<td width=”200px” style=”text-align: right”>Password</td>
<td width=”20px”>&nbsp;</td>
<td width=”200px” style=”text-align: left”>
<input type=”password” name=”password” size=”20″>
</td>
</tr>
<tr valign=”top”>
<td width=”200px” style=”text-align: right”>Feedback</td>
<td width=”20px”>&nbsp;</td>
<td width=”200px” style=”text-align: left”>
<textarea name=”feedback”
rows=”5″ cols=”25″></textarea>
</td>
</tr>
<tr valign=”top”>
<td width=”200px” style=”text-align: right”>Hobbies</td>
<td width=”20px”>&nbsp;</td>
<td width=”200px” style=”text-align: left”>
<input type=”checkbox” id=”internet” name=”internet”
value=”Internet” checked=”checked”>
<label for=”internet”>Internet</label><br>
<input type=”checkbox” id=”computer”
name=”computer” value=”Computer”>
<label for=”computer”>Computer</label><br>
<input type=”checkbox” id=”hack”
name=”hack” value=”Hack”>
<label for=”hack”>Hack, Crack</label><br>
</td>
</tr>
<tr valign=”top”>
<td width=”200px” style=”text-align: right”>Show Password</td>
<td width=”20px”>&nbsp;</td>
<td width=”200px” style=”text-align: left”>
<input type=”radio” id=”no” name=”passwordio”
value=”no” checked=”checked”>
<label for=”no”>No</label><br>
<input type=”radio” id=”yes”
name=”passwordio” value=”yes”>
<label for=”yes”>Yes</label>
</td>
</tr>
<tr>
<td colspan=”3″ style=”text-align: center”>
<input type=”submit” value=” Submit Data “>
</td>
</tr>
</table>
</form>
</div>
</div>
</body>

</html>
حال که فرم HTML خود را ساختیم، ساخت اسکریپت مورد نظر خود را، که در اینجا result.php می باشد، شروع می کنیم.
<html>

<head>
<title>Result</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>

<body>
<p>Hello, you can see your information below ;)</p>
Username: <b><?=$username?></b><br>
<?php if ($passwordio == “yes”) { ?>
Password: <b><?=$password?></b><br>
<?php } else { ?>
Password: <b><font color=”red”>Password is hidden</font></b><br>
<?php } ?>
Feedback:<br>
<b><?=$feedback?></b><br>
Hobbies:<br>
<?php echo(“$internet<br>$computer<br>$hack”);?><br>

</body>

</html>
دقت داشته باشید که این یک اسکریپت بسیار ساده می باشد و برای کامل کردن آن، نیازمند دانش بیشتری هستیم. پس فعلا به همین اسکریپت ساده اکتفا می کنیم.
کار با دیتابیس
داده ها در وب، مهمترین چیز هستند. برای نگهداری داده ها، نیازمند دیتابیس (Database) هستیم. دیتابیس MySQL، یکی از معروف ترین و بهترین دیتابیس برای کار با PHP می باشد. قبل از شروع بحث دیتابیس، می بایست با چند مفهوم زیر آشنا شوید:
• جدول (Table): هر دیتابیس حداقل از ۱ و یا تعداد بیشتری جدول تشکیل شده است. دیتابیس را می توانید به عنوان خانه ای در نظر بگیرید که جداول در آن، حکم اتاقها را دارند.
• رکورد (Record) و فیلد (Field): هر جدول شامل چندین رکورد می باشد. هر رکورد از چندین فیلد تشکیل شده است. به عنوان مثال فرض کنید که ما در جدولی، نام و نام خانوادگی اعضاء سایت را ذخیره می کنیم. هر رکورد که در واقع مشخصات یک نفر در آن ذخیره شده است، از دو فیلد تشکیل شده است: اولی فیلد نام و دومی فیلد نام خانوادگی.
اتصال به دیتابیس
برای اتصال به دیتابیس MySQL، از تابع mysql_connect استفاده می کنیم. این تابع سه پارامتر را به عنوان ورودی دریافت می کند:
$connection = mysql_connect(host, user, password);
به عنوان مثال اگر از مجموعه نرم افزاری XAMPP که در قبل تر مورد بحث قرار گرفت، استفاده می کنید، می بایست از دستور زیر استفاده کنید:
$connection = mysql_connect(“localhost”, “root”, “”);
همچنین می توانید پارامترها را از قبل در متغیرها ذخیره کنید و سپس به جای وارد کردن مستقیم پارامترها، از متغیرها استفاده کنید:
$host = “localhost”;
$user = “root”;
$pass = “”;
$connection = mysql_connect($host, $user, $pass);
ایجاد یک دیتابیس
حال که چگونگی اتصال به دیتابیس را آموختید، به چگونگی ایجاد دیتابیس می پردازیم. برای ساخت دیتابیس، از دستور mysql_create_db استفاده می کنیم:
$host = “localhost”;
$user = “root”;
$pass = “”;
$database = “mydatabase”;
$connection = mysql_connect($host, $user, $pass);
if (mysql_create_db($database, $connection)) {
echo(“<font color=green>Successful</font>”);
} else {
echo(“<font color=red>Failed</font>”);
}
همان طور که مشاهده می کنید، تابع mysql_create_db دو پارامتر دریافت می کنید: اولین پارامتر نام دیتابیس مورد نظر می باشد و دومی پارامتر، اتصال به MySQL که در کد بالا، به ترتیب در متغیرهای $database و $connection ذخیره شده اند.
آشنایی با SQL
قبل از ادامه بحث دیتابیس، می بایست با زبان SQL به طور مختصر آشنا شویم. SQL که
سرنام عبارت Structured Query Language و یک زبان استاندارد برای کار با
دیتابیس هاست. پنج عمل زیر در SQL بسیار مهم هستند. در این مقاله به بررسی
همین پنج عمل اکتفا می کنیم. چرا که بحث درباره SQL، بسیار طولانی است و خود
مستلزم مقاله جامعی که انشاءالله در آینده نه چندان دور، آن را خدمت شما
خوانندگان محترم ارائه خواهیم کرد:

• ایجاد کردن یک جدول
• وارد کردن داده ها درون جدول
• مشاهده داده های درون جدول
• تغییر دادن داده های جدول
• حذف نمودن داده های جدول
ایجاد کردن جدول
برای ایجاد کردن جدول، می بایست از دستور CREATE TABLE استفاده کنیم:
CREATE TABLE table_name (

column_1_name column_1_type column_1_details,

column_2_name column_2_type column_2_details,

);
وارد کردن داده ها درون جدول
برای وارد کردن داده های مورد نظر خود به یک جدول، از دستور INSERT استفاده می
کنیم. این دستور را به دو صورت می توان به کار برد:
صورت اول:
INSERT INTO table_name SET

columnName1 = value1,

columnName2 = value2,

;

صورت دوم:
INSERT INTO table_name

(columnName1, columnName2, …)

VALUES (value1, value2, …);

مشاهده داده های درون جدول

برای مشاهده داده های درون یک جدول، از دستور SELECT استفاده می کنیم:
SELECT column_names FROM table_name WHERE conditions;
به جای column_names می بایست نام فیلدهای مورد نظر خود را قرار دهیم. اگر تعداد
فیلدها بیش از ۱ بود، آنها را به وسیله کاما (,) از یکدیگر جدا می کنیم. اگر
بخواهیم که همه فیلدها را مشاهده کنیم، به جای column_names کاراکتر * را قرار می
دهیم.
درون قسمت WHERE می توانیم برای مشاهده داده های مورد نظر خود، شرطی بگذاریم. به
عنوان مثال اگر عبارت WHERE ID=1 را قرار دهید، تمام رکوردهایی به نمایش در خواهند
آمد که مقدار فیلد ID آنها، برابر ۱ می باشد.
تغییر دادن داده های جدول
برای تغییر دادن داده های یک جدول، از دستور UPDATE استفاده می کنیم:
UPDATE table_name SET

col_name = new_value, …

WHERE conditions;

حذف نمودن داده های جدول
برای حذف کردن داده های درون یک جدول، از دستور DELETE استفاده می کنیم:
DELETE FROM table_name WHERE conditions;
دقت داشته باشید که معمولا در استفاده از دستور DELETE، از WHERE نیز استفاده می
کنند. چرا که اگر برای حذف نمودن داده ها، شرطی را نگذاریم، کل داده های جدول پاک
خواهند شد. به عنوان مثال، دستور زیر، کل داده های درون جدول database را پاک می کند:
DELETE FROM database;
ایجاد یک جدول
برای ایجاد کردن جداول، بعد از نوشتن دستور SQL مورد نظر و نسبت دادن آن به یک متغیر، از تابع mysql_db_query استفاده می کنیم. در واقع این تابع برای ساخت جدول، حذف جدول، تغییر دادن داده ها، اضافه کردن داده ها و … به کار می رود. این تابع سه پارامتر را به عنوان ورودی دریافت می کند:
mysql_db_query($database, $query, $connection);
دو پارامتر ابتدایی ($database) و انتهایی ($connection) که در قبل تر مورد بررسی قرار گرفته اند. پارامتر دوم ($query) متغیر مورد نظر ما می باشد که حاوی دستورات SQL می باشد. مثلا برای ساخت یک جدول با نام mytable، دستور SQL زیر را درون متغیر $query قرار می دهیم:
$query = “CREATE TABLE mytable(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Firstname TEXT,
Lastname TEXT
)”;
اگر به دستور CREATE TABLE در بالاتر که در مبحث SQL مورد بررسی قرار گرفت، دوباره نگاهی بیاندازید، می بینید که بعد از نام فیلد مورد نظر، نوع آن و مشخصات آن را می نویسیم.
در این دستور، ما جدولی تحت عنوان mytable را ساخته ایم که شامل سه فیلد زیر می باشد:
• ID
• Firstname
• Lastname
نوع فیلدهای Firstname و Lastname، از نوع متن (TEXT) می باشند. این نوع فیلدها می توانند تا ۶۵۵۳۵ کاراکتر را در خود ذخیره کنند.
و اما در مورد فیلد ID. نوع فیلد ID، یک عدد صحیح (INT) می باشد. این نوع فیلد می توانند عدد صحیحی از بین -۲۱۴۷۴۸۳۶۴۸ تا ۲۱۴۷۴۸۳۶۴۷ را اختیار کنند. البته اگر خاصیت UNSIGNED برای آن فعال نشده باشد. اگر خاصیت UNSIGNED نیز برقرار باشد، آنگاه از بین ۰ تا ۴۲۹۴۹۶۷۲۹۵ را می تواند اختیار کند. خاصیت NOT NULL می گوید که این فیلد نمی تواند خالی بماند. یعنی حتما می بایست یک عدد درون آن قرار بگیرد. خاصیت بعدی، یعنی AUTO_INCREMENT سبب می شود چنان چه ما این فیلد را خالی رها کردیم، یعنی هیچ مقداری را برای آن در نظر نگرفتیم، MySQL به طور اتوماتیک عدد بعد از بزرگترین عدد موجود درون دیتابیس را به آن نسبت دهد. آخرین خاصیت، یعنی PRIMARY KEY، سبب می شود که هر رکورد درون جدول، دارای یک ID منحصر به فرد باشد. به عنوان مثال ما نمی توانیم دو رکورد را پیدا کنیم که دارای ID یکسان ۵ باشند.
نوشته‏های Random به وسیله PHP
نمی‏دانم که تا به حال درون سایت‏های خارجی دیده‏اید یا نه. اما امروزه در اکثریت سایت‏های بزرگ و حتی کوچک و یا وبلاگ‏ها، استفاده از متن‏های Random بسیار رایج است. منظور از متن‏های Random متن‏هایی است که با هر بار Refresh کردن صفحه، عوض می‏شوند. برای درست کردن این جور متن‏ها، از زبان‏های مختلف و به روش‏های مختلف می‏توان عمل کرد. در این مقاله، ما یک روش ساده را که با PHP کار می‏کند، مورد بررسی قرار می‏دهیم.
برای این کار، ما تنها نیاز به دو فایل داریم. یکی اسکریپت اصلی‏مان است و دیگری فایل متنی‏ای است که متن‏های مورد نظر ما را شامل می‏شود. فایل اسکریپت کد زیر را دارد:
<?php
srand((double)microtime()*1000000);
$arry_txt=preg_split(“/–NEXT–/”,join(”,file(“randoms.txt”)));
echo$arry_txt[rand(0,sizeof($arry_txt)-1)];
?>
اگر از مشتاقان PHP باشید، می‏دانید که بهترین روش برای تولید اعداد Random، استفاده از همان خط دوم کد می‏باشد. در خط سوم، ما فایل randoms.txt را خوانده و سپس از میان متن‏های موجود در آن که به وسیله –NEXT– از یکدیگر جدا شده‏اند، یکی را به صورت کاملا تصادفی انتخاب می‏کنیم و سپس در خط چهارم، آن را به وسیله تابع echo بر روی صفحه نمایش می‏دهیم.
فایل randoms.txt هم چیزی شبیه به متن زیر است:
Mojtaba Dashtinejad
–NEXT–
Neverhood will be coming soon!
–NEXT–
I love PHP
در نهایت دقت داشته باشید که در هر کجا از صفحه‏تان که می‏خواهید متن Random به نمایش در بیاید، همان کد PHP بالا را کپی کنید 🙂
غیر فعال کردن Image Toolbar در IE6
اگر از Internet Explorer 6 برای جستجو در صفحات وب خود استفاده می‏کنید، حتما دیده‏اید که با چند ثانیه مکث بر روی عکسی، نوار ابزاری که به آن Image Toolbar می‏گویند، نمایان می‏شود. برای سایت‏های حرفه‏ای (و یا حتی غیر حرفه‏ای)، این نوار ابزار سبب از شکل افتادن بسیار کمی از سایت می‏شود که با یک ترفند کوچک می‏توان آن را برای صفحه وب مورد نظر غیر فعال کرد.
اگر می‏خواهید که این قابلیت برای تمامی عکس‏های موجود در صفحه وب غیر فعال شود، با اضافه کردن متاتگی (Meta Tag) به شکل زیر، به هدف مورد نظر خود دست خواهید یافت.
<meta http-equiv=”imagetoolbar” content=”no” />
اما اگر فقط می‏خواهید این قابلیت را برای یک عکس منحصر‏به‏فرد غیرفعال کنید، می‏بایست خاصیتی تحت عنوان galleryimg را با مقدار no به تگ image خود اضافه کنید.
<img src=”proprietary.gif” galleryimg=”no” />
درست حدس زدید! اگر مقدار galleryimg را برابر yes قرار دهید، Image Toolbar فعال می‏شود. این به درد مواقعی می‏خورد که شما می‏خواهید Image Toolbar را فقط برای یک عکس خاص فعال کنید و دیگر عکس‏ها را از داشتن چنین امکانی محروم سازید. برای این کار ابتدا آن متا تگ بالا را به صفحه وب خود اضافه کرده و سپس درون عکس مورد نظر، خاصیت galleryimg را با مقدار yes قرار می‏دهید.
<html>

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta http-equiv=”imagetoolbar” content=”no” />
<title>Image Toolbar</title>
</head>

<body>
<img src=”proprietary.gif” galleryimg=”yes” />
</body>

</html>
همه آن‏چه که لازم است در رابطه با پست الکترونیکی جی‏میل بدانید
جی‏میل چند وقتی آمده است و چشمان تمامی کاربران را به خود دوخته است. یک گیگابایت فضای رایگان، سرعت بالا. دیگر چه می‏خواهید؟ اما به همین سادگی‏ها هم نیست. کمی باید بیشتر بر روی جی‏میل کار کنیم.
امیر عظمتی در مقاله‏ای، چگونگی کارکردن با جی‏میل را به طور کامل نوشته است، اما او به عنوان کسی که از جی‏میل راضی است و از آن استفاده می‏کند، این مقاله را نوشته است. حال من می‏خواهم به عنوان کسی که دید چندان خوبی به جی‏میل ندارم، درباره‏اش حرف بزنم.
نامه‏ای از یکی از دوستانم دریافت می‏کنم که به زبان انگلیسی نوشته شده است. در حین خواندن نامه، تبلیغاتی توجه مرا جلب می‏کند که می‏بینم یک‏جورایی به نامه‏ام در ارتباط است. یعنی چه؟ بله. گوگل هم خودش گفته است. گوگل تمامی نامه‏ها را چک می‏کند. نامه‏هایی که تنها باید دو نفر از آن‏ها خبر داشته باشند: گیرنده و فرستنده. کاری ندارم که گوگل توسط روبات نامه‏ها را چک می‏کند یا انسان! مهم این است که نامه‏های ما را زیر نظر می‏گیرد و این یعنی تجاوز به حریم شخصی. من در هیچ صورتی، حاضر نیستم به حریم شخصیم در این دنیای مجازی تجاوز شود.
اما آخر گوگل یک گیگابایت ایمیل رایگان می‏دهد. خیلی خب، صبر داشته باشید. قبل از عجله ببینید واقعا یک گیگابایت به دردتان می‏خورد یا فقط دوست دارید بگویید یک گیگابایت ایمیل دارم، در حالی که هنوز یک مگابایت آن را هم استفاده نکرده‏اید. یاهو هم صدمگابایت ایمیل می‏دهد.
قبول دارم سیستم لیبل‏گذاری جی‏میل فوق‏العاده است. به طوری که در عرض کمتر از پنج دقیقه، می‏توانید بیش از صد نامه را آرشیو بندی کنید.
جی‏میل اچ‏تی‏ام‏ال را پشتیبانی نمی‏کند. از مجلات خارجی برایم نیوزلتر می‏آید که حاوی مقالات و نکته‏های فراوان است. اما جی‏میل نمی‏تواند آن‏ها را مثل بچه آدمیزاد نشان دهد و همه را به صورت متن‏های ساده نشان می‏دهد. حتی متن بولد شده را هم نمی‏تواند نشان دهد. این دیگر چه صیغه‏ای است!
و اما فجیع‏ترین مصیبت برای کاربران ایرانی جی‏میل، مشکلاتش با فارسی است. بارها و بارها ایمیل‏هایی دریافت کرده‏ام که فارسی نوشته شده بودند، اما به هیچ عنوان نمی‏توانستم بخوانم. کاربران دیگر هم همین مشکل را دارند.
البته جی‏میل فعلا نسخه‏ی بتای خود را ارائه داده است و همه ما امیدواریم که در نسخه نهایی، تمامی این مشکلات برطرف شده باشد. اما من اگر تمامی این مشکلات هم برطرف شود، حاضر نیستم به خاطر کمی سرعت بالای جی‏میل و سیستم لیبل‏گذاری‏اش، حریم شخصی‏ام را در خطر بیندازم. شما را نمی‏دانم.
+ چگونگی حل مشکلات فارسی در جی‏میل
اگر شما هم جزء آن دسته از افراد هستید که با نامه‏های فارسی در جی‏میل مشکل دارید، و هنوز هم اصرار به استفاده از آن دارید، نگران نباشید. من دیروز راه حلی پیدا کردم که ممکن است جواب دهد (من از همین راه برای خواندن نامه‏ای که نتوانستم بخوانمش استفاده کردم):
فرمت را به همان صورتی که هست باقی بگذارید (همیشه به صورت UTF-8 است). سپس نامه را به یکی دیگر از میل‏باکس‏هایتان فوروارد (forward) کنید و بروید نامه‏اتان را با خیال راحت بخوانید. البته ممکن است این راه برای تمامی نامه‏ها جواب ندهد. اما برای من که جواب داد.

 

امتیاز post

نظرات بسته شده است، اما بازتاب و پینگ باز است.