بایگانی برچسب: s

آموزش PHP – جلسه هفدهم: کار با فایل ها

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

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

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

r: باز کردن و فقط خواندن فایل

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

a: باز کردن فایل فقط برای نوشتن در آن

x: ایجاد فایل جدید فقط برای نوشتن در آن

+r: باز کردن فایل برای نوشتن/خواندن

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

+a: باز کردن فایل به منظور نوشتن/خواندن. اگر فایل وجود نداشته باشد آن را ایجاد می‌کند.

+x: ایجاد فایل جدید برای خواندن/نوشتن

مثل همیشه نرم‌افزار Xampp را اجرا و سرور آپاچی و mysql را در حالت اجرا قرار دهید. در پوشه htdocs یک پوشه جدید به نام files ایجاد کرده و در این پوشه یک فایل به نام testfile.php ایجاد کنید. در این فایل کدهای زیر را قرار دهید:

<?php

$myfile = fopen(“file.txt”, “w”);

?>

حالا فایل بالا را با مرورگر اجرا کنید. برای این منظور باید به آدرس http://127.0.0.1/files/testfile.php مراجعه کنید. پس از اجرای این آدرس در مروگر، یک فایل جدید به نام file.txt در پوشه‌ای که فایل testfile.php وجود دارد ساخته خواهد شد.

نوشتن روی فایل‌ها

برای نوشتن اطلاعات در فایل‌ها از تابع fwrite استفاده می‌کنیم. این تابع دو پارامتر ورودی دارد که پارامتر اول نام فایلی است که قصد نوشتن اطلاعات در آن را داریم و پارامتر دوم متنی است که می‌خواهیم در فایل نوشته شود. در مثال زیر قصد داریم تا چند نام را در فایل جدیدی به نام names.txt بنویسیم:

<?php

//open or create file

$myfile = fopen(“names.txt”, “w”);

//now write new names to that file

$name1 = “mojtaba\n”;

fwrite($myfile, $name1);

$name2 = “miaad\n”;

fwrite($myfile, $name2);

$name3 = “masoud\n”;

fwrite($myfile, $name3);

fclose($myfile);

?>

همان‌طور که احتمالا متوجه شده‌اید در انتهای کد از تابع دیگری به نام fclose استفاده کرده‌ایم. از آنجا که چندبار در کد بالا فایل names.txt را فراخوانی کرده‌ایم، با این تابع در انتهای کار فایل موردنظر را می‌بندیم.

نکته دیگری که در مورد کد بالا وجود دارد این است که در انتهای هر نام از کاراکتر n\ استفاده کرده‌ایم. افرادی که با اچ‌تی‌ام‌ال آشنایی داشته باشند قطعا مفهوم این کاراکتر را می‌دانند. از n\ به منظور ایجاد خط جدید در فایل‌ها استفاده می‌کنیم. به این ترتیب در فایل names.txt هر نام در یک خط جدید قرار خواهد گرفت. در نتیجه اگر پس از اجرای کد پی‌اچ‌پی فوق در مرورگر فایل names.txt را باز کنید به شکل زیر خواهد بود:

mojtaba

miaad

masoud

همان‌طور که گفتیم تابع ()fclose به منظور بستن یک فایل مورداستفاده قرار می‌گیرد. این تابع اگر فایل را به درستی و با موفقیت ببندد مقدار true را برمی‌گرداند و در غیر این‌صورت مقدار false برگردانده می‌شود.

نکته کاربردی: برای تمرین و نیز در انجام دادن پروژه‌های خود بهتر از همیشه پس از کار با فایل‌ها آن‌ها را با تابع ()fclose ببندید.

افزودن اطلاعات به فایل

اگر قصد دارید اطلاعات جدیدی را به فایل موردنظر خود اضافه کنید باید آن فایل را در حالت Append باز کنید. به عنوان مثال به کد زیر دقت کنید:

<?php

$myFile = “test.txt”;

$fh = fopen($myFile, “a”);

fwrite($fh, “new information to be added test file!”);

fclose($fh);

?>

در کد بالا و در تمامی مواقعی که یک فایل را در حالت a باز کنید، اطلاعات جدید در آخر فایل اضافه خواهند شد. به عنوان مثال فرض کنید محتویات فایلی به نام file.txt به صورت زیر است:

some data

line 2 of file

حال اگر با استفاده از حالت a این فایل را باز کنیم و اطلاعات جدید به آن اضافه کنیم، به عنوان مثال عبارت new data را به این فایل اضافه کنیم، این فایل به صورت زیر به‌روزرسانی خواهد شد:

some data

line 2 of file

new data

حال قصد داریم یک مثال کاربردی‌تر را ایجاد کنیم. در پوشه files که به تازگی در پوشه htdocs ایجاد کرده بودید، یک فایل به نام add.php ایجاد کنید. کد زیر را در این فایل قرار دهید:

<?php

if (isset($_POST[‘text’]))

{

$name = $_POST[‘text’] . “\n”;

$handle = fopen (“names.txt”, “a”);

fwrite($handle, $name);

fclose($handle);

}

?>

<form method=”post” action=””>

name : <input type=”text” name=”text” size=”20″>

<input type=”submit” value=”add name to file”>

</form>

حال کد بالا را با استفاده از آدرس http://127.0.0.1/files/add.php اجرا کنید. در کد بالا چند نکته مهم وجود دارد. ابتدا به بخش پی‌اچ‌پی کاری نداشته باشید و فقط فرم را در نظر بگیرید. در کد بالا خاصیت action فرم را خالی گذاشته‌ایم. در چنین شرایطی اطلاعات این فرم به همین صفحه یعنی فایل add.php ارسال خواهد شد. حال به کد پی‌اچ‌پی در بالای فایل توجه کنید. ابتدا مثل همیشه با یک دستور شرطی if بررسی می‌کنید که اگر اطلاعاتی در فیلدی که خاصیت name آن text است وارد شده، آنگاه فایل names.txt در حالت a باز شود، و سپس نام وارد شده به انتهای محتویات فایل باز شده اضافه خواهد شد. همچنین به خط:

$name = $_POST[‘text’] . “\n”;

در کد بالا توجه کنید. در این خط نام وارد شده توسط کاربر را از فرم دریافت کرده و سپس کاراکتر n\ را به انتهای نام اضافه می‌کنیم تا پس از اضافه شدن در فایل names.txt یک خط جدید ایجاد شود تا نام‌های بعدی به همین شکل در یک خط جدید در فایل درج شوند.

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

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

foreach (array as $value){

    //code to run

}

//or

foreach (array as $key => $value){

    //code to run

}

در روش اول، مقدار هر عضو از آرایه موردنظر در هر بار اجرای حلقه در متغیری به نام value$ قرار می‌گیرد و در هر بار اجرای حلقه می‌توان یک عضو ار آرایه را به عنوان مثال چاپ کرد یا عملیات دلخواه را روی آن انجام داد.

اما در روش دوم، کلید هر عضو از آرایه را به key$ تغییر داده‌ایم و سپس مقدار هر عضو آرایه را در متغیر value$ قرار می‌دهیم. اگر مبحث آرایه‌ها را به‌خوبی فراگرفته باشید این حلقه را نیز به‌خوبی یاد می‌گیرید.

در هرحال برای درک بهتر این حلقه به مثال زیر توجه کنید. در این مثال یک آرایه به نام names داریم که شامل چند نام است. قصد داریم با استفاده از حلقه foreach تک تک نام‌های موجود در این آرایه را چاپ کنیم:

<?php

$AllNames = Array(“mojtaba”, “hossein”, “miaad”, “hami”, “masoud”,”mehdi”);

foreach ($AllNames as $name)

{

    echo $name . “<br>”;

}

?>

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

خواندن فایل‌ها

با استفاده از تابع ()file می‌توانیم فایل موردنظرمان را بخوانیم. این تابع فایل موردنظر را در قالب یک آرایه برای ما آماده می‌کند و هر المان از فایل را به عنوان یک عضو از آرایه در نظر می‌گیرد. فایل names.txt که در این جلسه ایجاد کرده‌اید اکنون باید شامل چند نام باشد. در واقع در هر خط از این فایل یک نام نوشته شده است.

حال در پوشه files که در پوشه htdocs ایجاد کرده بودید، یک فایل جدید به نام read.php ایجاد کنید. سپس کد زیر را در این فایل قرار دهید:

<?php

$read = file(“names.txt”);

foreach($read as $name)

{

    echo $name . ” – “;

}

?>

کد بالا تمام نام‌های موجود در فایل names.txt را که در کنار فایل read.php وجود دارد خوانده و آن‌ها را با علامت – از هم جدا می‌کند. از آنجا که در اینجا محتویات فایل در یک آرایه قرار داده شده از foreach استفاده کرده‌ایم، همان‌طور که گفتیم این حلقه فقط برای آرایه‌ها بکار گرفته می‌شود.

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

$read = file(“names.txt”);

$count = count($read);

$i = 1;

foreach ($read as $line)

{
echo $line;

        if($i < $count){

            echo ” – “;

        }

        $i++;

}

?>

در کد بالا ابتدا با تابع count اقدام به شمارش تعداد اعضای آرایه read$ کرده‌ایم. همان‌طور که می‌دانید آرایه یاد شده در واقع دربرگیرنده محتویات فایل names.txt است. سپس با یک حلقه for تمامی اعضای این آرایه را چاپ می‌کنیم و در هر بار اجرای حلقه یک واحد به متغیر i$ اضافه می‌کنیم. این متغیر تعداد خطوط را نگهداری می‌کند. در شرط حلقه بررسی می‌کنیم که آیا به آخرین خط فایل یعنی آخرین عضو آرایه read رسیده‌ایم یا خیر، اگر همچنان به انتهای فایل نرسیده باشیم کاراکتر – در ادامه نام‌ چاپ می‌شود و اگر به آخرین خط فایل رسیده باشیم از آنجا که در حلقه چنین شرطی را نوشته‌ایم، پس شرط برای خط آخر برقرار نیست و کاراکتر – پس از نام چاپ نمی‌شود.

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

منبع: زومیت

آموزش PHP – جلسه سیزدهم: خواندن داده‌ها از بانک اطلاعاتی MySQL

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

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

خواندن اطلاعات از MySQL

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

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

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>صفحه اصلی</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<?php
include (“config.php”);
//select all records from posts table
$get_query = mysql_query(“SELECT * FROM `posts`”);
//now using while for get each record sepratly and show it to web browser
while ($fetch_result = mysql_fetch_array($get_query))
{
$postTitle = $fetch_result[‘title’];
$postText = $fetch_result[‘text’];
echo “<h2>$postTitle</h2>”;
echo “<p>$postText</p><hr>”;
}
?>
</center>
</body>
</html>

همان‌طور که در کد بالا می‌بینید ابتدا با دستور inlcude فایل اتصال به بانک اطلاتی و انتخاب جدول cms که config.php نام دارد را در این فایل فراخوانی می‌کنیم. حالا می‌توانیم به جدول موردنظر که در اینجا posts است کوئری زده و عملیات موردنظرمان را انجام دهیم. با دستور SELECT جدول و فیلدهای موردنظر را انتخاب می‌کنیم و آن را در یک آرایه به نام posts_query ذخیره می‌کنیم.

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

حال با استفاده از حلقه while تا زمانی که در جدول post رکورد وجود دارد پست‌ها را گرفته و نمایش می‌دهیم. در شرط حلقه خروجی تابع mysql_fetch_array را در یک آرایه دیگر به نام fetch_results ذخیره می‌کنیم. به‌طور هم‌زمان این شرط باعث می‌شود تا حلقه به تعداد رکوردهایی (مطالبی) که در جدول posts وجود دارد تکرار شود. در هر بار تکرار شدن این حلقه اطلاعات فیلدهای مختلف هر رکورد در آرایه fetch_results ذخیره می‌شود. برای دسترسی به اطلاعات هر فیلد از هر رکورد باید نام آن فیلد را در کروشه جلوی آرایه fetch_results بنویسیم. همان‌طور که در کد بالا می‌بینید ما فیلد‌های title و text را فراخوانی کرده‌ایم. 

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

حالا آدرس http://127.0.0.1/cms/index.php را در مرورگر اجرا کنید. اگر خاطرتان باشد نوع یونیکد فیلدهای جداول بانک اطلاعاتی را از نوع utf-8 تعیین کردیم تا بتوانیم متون فارسی را در جدول posts ذخیره کنیم. حال اگر پروژه را با آدرسی که گفتیم اجرا کنید با صفحه‌ای مانند زیر مواجه خواهید شد و کاراکترها همگی به صورت علامت سوال نمایش می‌یابند.

cbd12f2c-a3c0-49e1-b534-5b4ea7d36089اما باز هم جای نگرانی نیست. این مشکل به دلیل نوع اتصال به بانک اطلاعاتی رخ داده و برای رفع آن باید فایل config.php را کمی ویرایش کنید. در واقع باید نوع اتصال را هم utf-8 تعیین کنیم که این کار بسیار آسان است. فایل config.php را باز کنید و آن را به صورت زیر تغییر دهید. در واقع کد زیر را جایگزین کد کنونی کنید.

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;
$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_set_charset(‘utf8’,$connect_db);
mysql_select_db($dbname,$connect_db);
?>

همان‌طور که می‌بینید در خط ۷ کد بالا از تابع mysql_set_charset استفاده کرده‌ایم. پس از اتصال به بانک داده و پیش از انتخاب جدول موردنظر، باید این کد را استفاده کنید. این تابع دو آرگومان ورودی دارد که ورودی اول نوع یونیکد موردنظر برای اتصال به سرور MySQL و ورودی دوم لینک تابع اتصال به بانک داده خواهد بود که در اینجا connect_db است.

حالا اگر مجددا به صفحه http://127.0.0.1/cms/index.php مراجعه کنید مشکل رفع شده و متون فارسی به درستی نمایش یافته‌اند. اگر خاطرتان باشد گفتیم که استفاده از include باعث می‌شود در صورت نیاز به انجام تغییرات، با تغییر یک فایل می‌توان این تغییرات را در تمامی فایل‌ها اعمال کرد.

۵۰۴۳۴b02-620b-4f39-a972-e7f4412163a8اگر همه چیز را به درستی انجام داده باشید نتیجه کار باید شبیه به عکس بالا باشد و متون فارسی به درستی نمایش یابند.

ایجاد صفحه اختصاصی برای هر پست

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

اگر به‌‌یاد داشته باشید گفتیم از روش GET که در ثبت فرم‌ها آن‌ را توضیح دادیم می‌توان استفاده‌های مناسبی در پی‌اچ‌پی کرد. یکی از بهترین استفاده‌ها ایجاد صفحه اختصاصی برای هر پست است. کافی است بعد از خط ۲۰ یعنی:

$postText = $fetch_result[‘text’];

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

$postId = $fetch_result[‘id’];

حالا کد:

echo “<h2>$postTitle</h2>”;

را به:

echo “<h2><a href=single.php?id=$postId>$postTitle</a></h2>”;

تغییر دهید. به این طریق یک لینک منحصر به فرد برای هر مطلب ایجاد کرده‌ایم. به عنوان مثال اگر روی مطلب اول کلیک کنیم به لینک http://127.0.0.1/cms/singe.php?id=1 منتقل خواهیم شد. حالا به راحتی می‌توان با دستورات پی‌اچ‌پی اطلاعات پستی که آی‌دی آن ۱ است را نشان دهیم.

ابتدا یک فایل جدید در پوشه cms ایجاد کرده و نام آن را single.php بگذارید. در این فایل کدهای زیر را قرار دهید:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>مشاهده پست</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

$pid = $_GET[‘id’];

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts` WHERE `id` = ‘$pid’ “);

$fetch_result = mysql_fetch_array($get_query);

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

echo “<h2>$postTitle</h2>”;

echo “<p>$postText</p><hr>”;

?>

</center>

</body>

</html>

این کد نیز شبیه به کد index.php است با این تفاوت که این بار در کوئری انتخاب داده از بانک اطلاعاتی تغییراتی وجود دارد و نیز دیگر نیازی به استفاده از حلقه نداریم زیرا در اینجا فقط قصد داریم یک رکورد را از جدول posts بخوانیم.

مثل همیشه ابتدا config.php را با دستور include فراخوانی کرده و سپس با دستور GET_$ همان‌طور که در جلسه آموزش فرم‌ها گفتیم، شناسه پست موردنظر را در متغیری به نام pid ذخیره می‌کنیم.

حال باید کوئری را با یک شرکت به کار ببریم. مانند کوئری فایل index.php دستور اولیه را نوشته و در ادامه آن کلمه کلیدی WHERE را می‌نویسیم. این کلمه به بانک اطلاعاتی می‌گوید که ما دقیقا دنبال چه رکورد یا رکوردهایی هستیم. در اینجا ما به دنبال رکوردی هستیم که فیلد id آن برابر با یک است پس فیلدی که باید بررسی شود id است. حال نام فیلد را هم نوشته و پس از علامت = نام متغیری که شناسه آی‌دی پست موردنظر را در خود دارد می‌نویسیم. به طور خلاصه می‌توان گفت این کوئری در جدول posts به دنبال فیلدی می‌گردد که شناسه id آن برابر با عدد ۱ است.

همان شرطی که در فایل index در حلقه به کار بردیم را این‌بار بدون حلقه مورد استفاده قرار می‌دهیم و همانند فایل index از طریق آرایه‌ها به مقادر فیلد‌های پست موردنظر دسترسی می‌یابیم.

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

فایل index.php نهایی به شکل زیر خواهید بود-

e7574165-96f2-4984-82a1-7667af6e279cهمچنین فایل single.php پس از کلیک روی عنوان اولین مطلب به شکل زیر است:

c4fefc71-2cbe-4def-99b0-08a4450875e9امیدواریم از این جلسه نیز نهایت استفاده را برده باشید. برای تمرین سعی کنید برای جدول posts فیلدهای بیشتری تعریف کنید. مثلا یک فیلد برای خلاصه متن مطلب هم ایجاد کنید و با توجه به آنچه تا‌کنون یاد گرفته‌اید هنگام درج مطلب به کاربر اجازه دهید تا سه فیلد را برای هر مطلب پر کند. سپس در صفحه index خود خلاصه و عنوان پست را نمایش دهید و در صفحه اختصاصی هر پست در فایل single.php متن کامل مطلب را به نمایش بگذارید.

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

منبع: زومیت

 

آموزش PHP – جلسه دوازدهم: درج اطالاعات در بانک اطلاعاتی MySQL

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

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

اگر جلسه قبل را مطالعه نکرده‌اید لازم است پیش از ادامه مطالعه این مبحث، جلسه قبل را به‌خوبی فرا بگیرید. برای درج اطلاعات جدید به بانک اطلاعاتی ایجاد شده در جلسه قبل ابتدا باید یک فرم مناسب طراحی کنیم. پیش از هر چیز نرم‌افزار Xampp را اجرا و دو سرور apache و mysql را درست همانند جلسه قبل فعال کنید. یک فایل جدید در پوشه cms که جلسه قبل ساخته بودید ایجاد کنید و نام آن را insert.php بگذارید. در این فایل یک فرم برای درج مطلب جدید در جدول posts از بانک اطلاعات cms طراحی می‌کنیم. از آنجا که نیاز به دو فیلد برای درج هر رکورد جدید در جدول posts داریم پس برای فرم درج مطلب نیز باید دو فیلد را در نظر بگیریم. یک فیلد متنی برای عنوان و یک textarea برای متن مطلب. کد زیر را در فایل insert.php وارد کنید.

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>درج مطلب</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<form action=”sendpost.php” method=”post”>
عنوان مطلب : <input type=”text” name=”postTitle” size=”40″><br>
متن مطلب: <br>
<textarea name=”postText” rows=”10″ cols=”50″></textarea>
<br>
<input type=”submit” value=”ثبت مطلب”>
</form>
</center>
</body>
</html>

در فرم بالا یک فیلد به نام postTitle و دیگری به اسم postText وجود دارد. همچنین محتویات فرم با متد post به صفحه‌ای به نام sendpost.php ارسال می‌شود. پس یک فایل جدید به نام sendpost.php ایجاد کنید و کد زیر را در آن قرار دهید:

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>درج مطلب</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<?php
include (“config.php”);
$title = trim ($_POST[‘postTitle’]);
$text = trim ($_POST[‘postText’]);
if($title != “” && $text != “”){
//do insert
$query_res = mysql_query(“INSERT INTO `posts` (`title`, `text`) VALUES (‘$title’,’$text’)”);
if($query_res){
echo “مطلب شما با موفقیت در بانک داده درج شد.”;
}else{
echo “مشکلی در ثبت مطلب رخ داده، لطفا مجددا تلاش کنید. <a href=insert.php>بازگشت</a>”;
}
}else{
echo ‘برای درج مطلب جدید باید عنوان و متن مطلب را وارد کنید. <a href=insert.php>بازگشت</a>’;
}
?>
</center>
</body>
</html>

حال به تحلیل کد بالا می‌پردازیم. اگر خاطرتان باشد در جلسه قبل گفتیم برای فهم بهتر این جلسه بهتر است سری به مقالات آموزش در مورد MYSQL بزنید تا آمادگی بیشتری برای این جلسه داشته باشید. همان‌طور که می‌بینید ابتدا فایل confing.php را فراخوانی کرده‌ایم. سپس مقادیر وارد شده در دو فیلد فرم درج مطلب را در دو متغیر title و text ذخیره کرده‌ایم. سپس با یک دستور if بررسی کرده‌ایم که آیا مقداری توسط کاربر در این دو فیلد وارد شده یا خیر. اگر وارد نشده باشد پیام خطای مناسب به وی نمایش داده می‌شود و اگر عنوان و متن مطلب وارد شده باشد عملیات درج در بانک اطلاعاتی را انجام می‌دهیم.

با استفاده از تابع mysql_query مقادیر وارد شده توسط کاربر را به جدول posts در بانک اطلاعاتی cms وارد می‌کنیم. خروجی این تابع یعنی مقداری که بر می‌گرداند یا true است یا false. پس با یک دستور if بررسی می‌کنیم که آیا عملیات درج انجام شده یا نه. اگر عملیات با موفقیت انجام شده باشد مقدار true برگردانده می‌شود و در نتیجه شرط ما برقرار خواهد بود و پیام درج موفقیت‌آمیز مطلب جدید به کاربر نمایش می‌یابد.

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

b8c0632f-30b2-4363-ad60-41a8237df537پس از پر کردن فیلدهای فرم بالا و ثبت فرم صفحه زیر نمایان شده که نشان از درج موفق مطلب در جدول posts می‌دهد.

e5e39d40-e2c7-44dc-bf77-49e55454b455

اما بیایید کمی در مورد کوئری (پرس و جو) درج رکورد جدید در بانک اطلاعاتی mysql بپردازیم. مطمئنا پیش از هر چیز باید به بانک اطلاعاتی خود متصل شویم که این کار از طریق فایل config.php انجام شده است. پس از انتخاب جدول موردنظر، می‌توان با انجام query چهار عملیات اصلی درج، خواندن، حذف و ویرایش اطلاعات را انجام داد. این کوئری‌ها ساختار ساده‌ای دارند و یادگیری آن وقت چندانی نخواهد برد و فقط نیاز به کمی تمرین دارد.

برای درج اطلاعات جدید از کوئری زیر استفاده می‌کنیم:

INSERT INTO `TABLE_NAME` (`f1`, `f2`) VALUES (‘value1’, ‘value2’)

همانطور که می‌بینید ابتدا دو کلمه کلیدی INSERT INTO را باید حتما بنویسید. سپس نام جدولی که قصد دارید در آن یک رکورد جدید درج کنید را به جای TABLE_NAME جایگزین می‌کنیم. سپس به تعداد فیلد‌هایی که جدول ما برای اضافه شدن هر رکورد نیاز دارد نام فیلد‌های مورد نظر را می‌نویسیم. در پروژه ما جدول posts سه فیلد داشت، اما اگر دقت کرده باشید ما فقط دو فیلد title و text را در کوئری آن نوشتیم. چراکه همانطور که در جلسه قبل توضیح دادیم فیلد id یا شناسه منحصر به فرد هر مطلب به صورت خودکار توسط MYSQL با اضافه شدن هر رکورد یک واحد افزایش می‌یابد. پس از نام فیلد‌ها کلمه کلیدی VALUES و سپس به تعداد فیلد‌هایی که نوشته‌ایم، داده‌های موردنظرمان را برای درج در آن فیلد‌ها در کوئری وارد می‌کنیم. به عنوان مثال در پروژه ما دو فیلد title و text را با مقادیری که کاربر وارد کرده بود و آن‌ها را در متغیرهایی به نام title$ و text$  ذخیره کرده‌ بودیم پر کردیم. پس این داده‌ها هر کدام در فیلد مربوط به خود در یک سطر جدید در جدول موردنظر اضافه شده‌اند. برای درک بهتر این مطلب به آدرس http://127.0.0.1/phpmyadmin بروید. سپس در سمت چپ روی نام بانک اطلاعاتی که جلسه قبل ساختیم یعنی cms کلیک کنید. سپس در سمت راست روی تب Structure کلیک کنید. حال روی نام جدول یعنی posts کلیک کنید. حال می‌توانید لیست رکوردهای درج شده در این جدول را مشاهده کنید. همانند تصویر زیر.

۵۹ec2c0a-3b9c-4160-8582-1329b4834166

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

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

منبع: زومیت

آموزش PHP – جلسه یازدهم: اتصال به بانک اطلاعاتی MySQL

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

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

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

از این جلسه شروع به ساخت یک CMS (سیستم مدیریت محتوا = Content Managment System) می‌کنیم. قبل از هر چیز نیاز است الگوریتم ساده‌ای برای این پروژه ایجاد کنید. اما در اینجا برای جلوگیری از سنگین شدن این جلسه بخش الگوریتم را به خودتان واگذار می‌کنیم.

در کل باید بدانید قصد داریم یک پروژه‌ بسازیم که با بانک اطلاعاتی MYSQL ارتباط داشته باشد و بتوان با استفاده از آن مطالب جدیدی را در بانک داده ذخیره‌سازی کرد. هدف ما ایجاد بخشی برای ارسال مطلب، بخشی برای ویرایش مطالب ارسال شده، امکان حذف مطالب ارسال شده و نیز نمایش مطالب ارسال شده است. چهار عمل اصلی در ارتباط با بانک‌های داده وجود دارد که به اختصار آن‌ها را CURD می‌نامند. C برای ساختن (Create) و U برای به‌روزرسانی (Update) و R برای خواندن (Read) و نهایتا D برای حذف (Delete).

اتصال به بانک داده

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

اما ابتدا باید بانک اطلاعاتی موردنظرمان را ایجاد کنید. پس از اجرای Xampp در پنل مدیریت این نرم‌افزار سرویس MySQL را نیز همانند سرویس Apache اجرا کنید.

۷۵c58fb6-1b54-4669-8a90-d3ff9e89c143حالا مرورگر خود را باز کرده و به آدرس http://127.0.0.1/phpmyadmin بروید. در این بخش شما می‌توانید بانک‌های اطلاعاتی سرور محلی خود را مشاهده، ایجاد و حذف کنید. پس از اجرای آدرس فوق باید با صفحه‌ای مانند زیر مواجه شوید.

ecbe80cb-025a-4b01-a3d1-12e6a6bf924cهمان‌طور که در تصویر با کادر قرمز مشخص شده، روی Database کلیک کنید. در این بخش می‌توانید یک بانک اطلاعاتی جدید بسازید. نام بانک اطلاعات موردنظر خود را باید در کادر مربوطه همانند تصویر زیر وارد کنید. همچنین نوع یونیکد موردنظر برای این بانک‌ داده را هم با استفاده از منو کشویی مقابل فیلد نام آن، می‌توانید تعیین کنید. از آنجا که زبان ما فارسی است بهترین کار در این مرحله انتخاب یونیکد utf-8 است. پس همانند تصویر زیر نام بانک اطلاعاتی جدید خود را cms و نوع آن را هم utf8-general-ci تعیین کنید.

۴۳۵۲۷۰۳۵-۲۷۵۷-۴e28-936f-9286b9b6ca89  حال باید جداول موردنظرتان را ایجاد کنید. اما برای جلوگیری از سنگین شدن مبحث و این‌که هدف ما آموزش php است، جداول موردنیاز برای این پروژه را ساخته‌ایم و شما نیز برای ساختن این جداول مراحل زیر را پس از ساختن بانک اطلاعاتی یاد شده انجام دهید. پس از اینکه روی دکمه Create کلیک کنید، بانک اطلاعاتی cms ایجاد خواهد شد. حالا وارد بخش sql شوید و همانند تصویری که در ادامه می‌بینید، کد زیر را در بخش مربوطه قرار داده و سپس بر روی دکمه Go کلیک کنید.

— phpMyAdmin SQL Dump
— version 4.5.1
— http://www.phpmyadmin.net

— Host: 127.0.0.1
— Generation Time: May 28, 2016 at 02:13 PM
— Server version: 10.1.9-MariaDB
— PHP Version: 5.6.15

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;

/*!۴۰۱۰۱ SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!۴۰۱۰۱ SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!۴۰۱۰۱ SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!۴۰۱۰۱ SET NAMES utf8mb4 */;


— Database: `cms`

— ——————————————————–


— Table structure for table `posts`

CREATE TABLE `posts` (
`id` int(11) NOT NULL,
`title` varchar(200) NOT NULL,
`text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


— Indexes for dumped tables


— Indexes for table `posts`

ALTER TABLE `posts`
ADD PRIMARY KEY (`id`);


— AUTO_INCREMENT for dumped tables


— AUTO_INCREMENT for table `posts`

ALTER TABLE `posts`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!۴۰۱۰۱ SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!۴۰۱۰۱ SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!۴۰۱۰۱ SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

کد بالا برای ایجاد یک جدول به نام posts است که این جدول سه فیلد دارد. برای هر مطلب یک فیلد برای شماره مطلب وجود دارد که این شماره برای هر رکورد از جدول یکتا خواهد بود. همچنین یک فیلد برای عنوان و یک فیلد نیز برای متن مطلب درنظرگرفته‌ایم. یونیکد این جدول و تمامی فیلد‌های آن نیز utf8-general-ci است.

۲c03ac69-2d22-491a-bf6c-6232831e599fاصلا نگران این بخش نباشید چرا که بعدا مفصلا به آن خواهیم پرداخت. فقط به یاد داشته باشید که تاکنون چه کارهایی انجام دادیم.

حالا برگردیم به بخش پی‌اچ‌پی. فایل config.php را باز کنید و کد زیر را در آن قرار دهید:

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;

$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);

if ($connect_db){
echo “we Connected to db successfully!”;
}else{
echo “error in connecting db”;
}
?>

در کد بالا ابتدا ۴ متغیر تعریف کرده و آن‌ها را مقداردهی کردیم. برای اتصال به بانک‌اطلاعاتی mysql در php نیاز به ۴ مشخصه خواهید داشت. آدرس میزبان بانک داده که در اینجا متغیر dbhost است، نام کاربری بانک داده که در اینجا dbuser است، نام بانک داده که در اینجا dbname است و نهایتا رمزعبور کاربر بانک داده که در اینجا dbpass است. در بیشتر مواقع آدرس میزبان بانک داده همان localhost خواهد بود. در نرم‌افزار زمپ نام کاربری تمام بانک‌های داده‌‌ای که می‌سازیم root است و این کاربر رمزعبور ندارد و به همین دلیل مقدار dbpass را خالی گذاشته‌ایم. نام بانک داده‌ نیز همان نامی خواهد بود که در هنگام ساختن بانک اطلاعاتی موردنظر خود تعیین کرده‌اید و در این پروژه نام تعیین شده ما cms بود. 

حال باید با استفاده از تابع mysql_connect به بانک داده متصل شویم. این تابع سه آرگومان ورودی دارد که به ترتیب آدرس میزبان بانک داده، نام کاربری بانک داده و رمزعبور کاربر بانک داده هستند. خروجی این تابع نیز یا true خواهد بود یا false. در کد بالا ما خروجی این تابع را در متغیر connect_db ذخیره می‌کنیم و سپس با یک دستور if بررسی کرده‌ایم که اگر اتصال به درستی برقرار شد پیام مناسب به کاربر نمایش داده شود و اگر اتصال انجام نشده بود پیام خطای عدم اتصال به بانک داده نمایان شود. 

پس از این‌که مراحل فوق را انجام دادید یک فایل دیگر به نام index.php در پوشه cms ایجاد کنید. سپس در این فایل کد زیر را قرار دهید:

<?php
include (“config.php”);
?>

همان‌طور که احتمالا متوجه شده‌اید ما فایل config.php را با کد بالا در فایل index.php فراخوانی کرده‌ایم. حالا اگر آدرس http://127.0.0.1/cms/index.php را در مروگرتان اجرا کنید، باید با عبارت we Connected to db successfully! مواجه شوید. در غیر این‌صورت یکی از مراحل را اشتباه انجام داده‌اید، چراکه در این صورت اتصال به بانک داده انجام نشده است. اما اگر پیغام یاد شده را مشاهده می‌کنید یعنی با موفقیت به بانک داده cms متصل شده‌ایم. اگر همه چیز به درستی انجام شده بخش if فایل config.php را حذف کنید یا آن را به صورت کامنت درآورید.  همچنین یک دستور دیگر برای انتخاب بانک اطلاعاتی cms که آن را در مراحل قبلی ایجاد کردیم به این فایل اضافه می‌کنیم. در نهایت کد config.php شما باید شبیه به زیر باشد:

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;

$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname,$connect_db);
?>

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

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

۱۴۹d0301-ff36-4d47-a55c-acf3c0b1e76d

در نتیجه ما یک بانک اطلاعاتی به نام cms داریم. هر بانک اطلاعاتی می‌تواند شامل چند جدول باشد و هر جدول نیز شامل یکسری فیلد است.

در اینجا جدول ما posts نام دارد و هر سطر آن (هر رکورد) شامل سه فیلد id و title و text است. تعیین نام فیلد‌ها و نوع آن‌ها در هنگام ساخت جدول انجام می‌شود و در این مورد نام‌های انتخابی ما سه موردی بود که اشاره کردیم. همان‌طور که در تصویر بالا می‌بینید هر مطلب به صورت یک سطر جدید در جدول posts ذخیره خواهد شد و هر مطلب سه مشخصه id یا شناسه یکتای مطلب، title برای عنوان و text برای متن مطلب را شامل می‌شود. 

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

اگر هرگونه سوالی در مورد مباحث این جلسه برایتان پیش‌ آمده آن را در بخش نظرات اعلام کنید.

منبع: زومیت

آموزش PHP – جلسه دوم، متغییرها و توضیحات در کدها

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

همانطور که در جلسه قبل توضیح دادیم ابتدا Xampp را باز کرده و سرور Apache و MySQL را آنگونه که توضیح دادیم اجرا کنید. سپس در پوشه htdocs یک پوشه جدید به نام section2 ایجاد کنید. حال ++NotePad را باز کنید. همانند جلسه اول، از منوی Language زبان php را انتخاب کنید. و بدون اینکه چیزی در این فایل بنویسید، آن را با نام vars.php در پوشه section2 دخیره کنید. بدین طریق می‌توانید از طریق آدرس http://127.0.0.1/section2/vars.php به این فایل دسترسی داشته باشید.

دستور چاپ و خروجی در php

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

++NotePad را باز کنید و کد زیر را در آن وارد کنید:

<?php

echo “salam. in jalase dovome amoozeshe php dar zoomit ast.”;

?>

به‌نظر شما خروجی کد بالا چیست؟ همانطور که احتمالا حدس زده‌اید آنچه بین دابل کوتیشن قرار دارد به عنوان خروجی در مرورگر کاربر نمایش خواهد یافت. (یعنی عبارت salam. in jalase dovome amoozeshe php dar zoomit ast.) علاوه بر متن می‌توان کدهای اچ‌تی‌ام‌ال را نیز توسط دستور  echo در مرورگر به کاربر نشان داد. کد بالا را به صورت زیر تغییر دهید:

<?php

echo “salam. in jalase dovome amoozeshe php dar zoomit ast.<br>in khate dovom ast<b>matne zakhim</b><i>matine kaj</i>”;

?>

خروجی کد بالا به صورت زیر خواهد بود:

ef8a71be-473a-4c7e-874b-24d991df4ca5همانطور که در عکس بالا می‌بینید هر آنچه در مقابل عبارت echo قرار داده شود حتی کدهای اچ‌تی‌ام‌ال به‌خوبی اجرا می‌شوند. دقت کنید در صورتی که کدهای html در این دستور بین تک‌کوتیشین قرار گیرند به صورت کد html پردازش نشده و به همان شکل در مرورگر نمایش می‌یابند. پس برای این‌که کدهای اچ‌تی‌ام‌ال به‌درستی اجرا شوند باید مطمئن شوید آن‌ها را در بین دابل‌‌کوتیشین قرار داده‌اید.

نوشتن توضیحات در کدهای php

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

<?php

// in yek tozih yek khati ast va dar moroorgar namayesh nemiyabad

# in ham tozihe yek khati digari ast

/* in yek tozi chand khati ast

khate dovome tozih */

?>

همان‌طور که می‌بینید می‌توانید به چند طریق توضیحات تک‌خطی و چندخطی را در پی‌اچ‌پی به‌کار ببرید.

متغیرها در php

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

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

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

بهترین روش یادگیری استفاده از مثال عملی است. در فایلی که به نام vars.php ایجاد کردید، کدهای زیر را عینا تایپ کنید:

<?php

// متغیر رشته ای

$var1 = “Mehrastan”;

// متغیر عدد صحیح

$var2 = 123;

// متغیر اعشاری

$var3 = 1.2222;

// متغیر صحیح یا غلط

$var4 = true;

?>

همانطور که در بالا می‌بینید می‌توان هر نوع داده‌ای را در متغیری که در پی‌اچ‌پی تعریف کرده‌اید قرار دهید. برای نسبت دادن مقدار به متغیرها باید پس از معرفی، علامت = را قرار داده و سپس مقدار موردنظر را تایپ کنید. اگر پیش‌تر با زبان‌های دیگر برنامهنویسی کرده باشید می‌دانید که چند نوع متغیر اصلی وجود دارد:

  • متغیرهای رشته‌ای
  • متغیرهای اعداد صحیح
  • متغیرهای اعداد شناور
  • متغیرهای دوحالته که یک مقدار صحیح یا غلط را نگه می‌دارند

این ۴ نوع متغیر اصلی در اکثر زبان‌های برنامهنویسی هستند. شما هر نوع داده‌ای که به متغیر موردنظرتان نسبت دهید، آن متغیر خودبه‌خود از نوع داده شما خواهد بود. برای مثال در کد بالا متغیر اول از نوع رشته‌ای است چراکه داده نسبت داده شده به آن یک رشته متنی است.

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

چاپ متغیرها

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

<?php

// این یک توضیح است. خط زیر یک متغیر رشته ای است

$var = “ebarate mojud dar motaqayere aval”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

echo $var;

// خط زیر کد اچ تی ام الی است که باعث رفتن به خط جدید در مرورگر می شود

echo “<br>”;

// کد زیر مقدار متغیر را در مرورگر نمایش می‌دهد

echo $newVar;

echo “<br>”;

echo $anotherVar;

?>

سپس مرورگرتان را باز کرده و به آدرس http://127.0.0.1/section2/vars.php بروید. خروجی شما باید مانند تصویر زیر باشد:

e186331b-c49b-4e65-a0a5-0ac5bfa5110dهمان‌طور که می‌بینید هرچه آنچه که متغیرها در خود نگه داشته‌اند را توسط دستور echo در مرورگر چاپ کردیم. همچنین توضیحات را در کد بالا به کار بردیم ولی این توضیحات برای خودمان هستند و نه تاثیری در خروجی کد داشته و نه برای کاربر قابل مشاهده‌اند. دقت کنید که می‌توان متغیرها را به همراه متون ثابت نیز به‌کار برد. در این شرایط باید حتما از دابل‌کوتیشین استفاده کنید یعنی متغیرها را در داخل دابل‌کوتیشن به‌کار ببرید. در صورتی‌که از تک‌کوتیشین استفاده کنید، همان‌طور که گفتیم به جای مقدار متغیر، نام خود متغیر در خروجی نمایش خواهد یافت. فایل vars.php را گشوده و آن را به صورت زیر اصلاح کنید:

<?php

// این یک توضیح است. خط زیر یک متغیر رشته ای است

$var = “ebarate mojud dar motaqayere aval”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

// کد زیر باعث چاپ متن و متغیر در کنار یکدیگر در مروگر خواهد شد

echo “meqdare motaqayere aval in ast: $var”;

echo “<br>”;

echo “meqdate motaqayere dovom : $newVar va meqdare motaqayere sevom niz : $anotherVar ast”;

?>

خروجی کد بالا به صورت زیر خواهد بود:

۹۰d90e13-9c06-4313-8f28-cdc14dedc686همان‌طور که در تصویر بالا می‌بینید به جای نام هر متغیر، مقدار آن در مرورگر نمایش یافته است. بدین طریق یاد گرفتیم که چگونه متغیری را تعریف کرده و سپس در هرجا که نیاز داریم به مقدار آن دسترسی داشته باشیم. در جلسه بعد اعمال مختلف بر روی متغیرها را با یکدیگر خواهیم آموخت و نیز با عملگرهای php آشنا خواهیم شد.

منبع: زومیت

آموزش PHP – جلسه اول معرفی و ابزارهای مورد نیاز

طراحی و برنامهنویسی وب، امروزه در همه جای دنیا بسیار مورد توجه است. برای تولید صفحات وب می‌توان از زبان‌های مختلفی چون ASP.Net، پی‌اچ‌پی و … بهره گرفت. PHP به دلیل متن باز بودن و قدرت بسیار بالایی که دارد در بین توسعهدهندگان وب جایگاه بسیار خوبی دارد و تعداد زیادی از این توسعهدهندگان از php در پروژه‌های خود بهره می‌برند. در ادامه مطلب و جلسه اول آموزش PHP با ما همراه شوید.

ما در این سری آموزشی قصد داریم زبان برنامه‌نویسی پی‌اچ‌پی را از ابتدا به شما عزیزان آموزش دهیم. اما پیش‌نیاز این آموزش، آشنایی با HTML و CSS است.

معرفی مختصر PHP

آقای راسموس لردورف برای اولین بار در سال ۱۹۹۴ برای مدیریت صفحه وب شخصی خود زبان برنامهنویسی php را ایجاد کرد. او این زبان برنامهنویسی را به منظور ایجاد محتوای داینامیک از جمله نمایش تعداد آمار بازدید وب‌سایتش نوشت. همچنین بد نیست بدانید PHP در واقع سرنام عبارت Personal Home Page Tools به معنای ابزار صفحه شخصی خانگی است. اگر می‌خواهید تاریخچه کامل این زبان برنامه‌نویسی را مطالعه کنید می‌توانید به این لینک مراجعه کنید.

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

شروع کار و ابزارهای مورد نیاز

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

ابتدا به وب‌سایت رسمی زمپ رفته و با توجه به نوع سیستم‌عامل‌تان، جدیدترین نسخه را دانلود کنید. در زمان نوشتن این مطلب جدیدترین نسخه ۵/۶/۱۹ است.

۸۵۷۴۲۱۴۸-۱۳df-42dc-a07b-ed664007bcbbپس از دانلود Xampp آن را نصب کنید. مراحل نصب را همانند سایر نرم‌افزارهای معمول انجام دهید و هیچ بخشی از آن را تغییر ندهید و اجازه دهید نرم‌افزار با تنظیمات پیش‌فرض بر روی سیستم شما نصب شود.

سپس نرم‌افزار را اجرا کنید و مطابق شکل زیر سرور Apache و MySQL را در حالت اجرا قرار دهید. برای این کار بر روی دکمه Start جلوی این گزینه‌ها کلیک کنید.

۶۴d9c1d3-3c5e-4cbe-9a87-ede5d36aa9ecبه همین راحتی شما رایانه خود را به یک سرور محلی تبدیل کردید که می‌تواند اسکریپت‌های نوشته شده به زبان php را به‌راحتی اجرا کند. علاوه بر این امکان استفاده از بانک اطلاعاتی MySql نیز با Xampp برای شما فراهم است که البته فعلا به این بخش کاری نداریم.

حالا مرورگر خود را باز کرده و آدرس زیر را تایپ کنید:

http://127.0.0.1/

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

۳ebbd91f-d435-4140-a3de-920e2962466eایجاد اولین پروژه

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

پس از نصب ++NotePad آن را باز کنید و از منوی Language مطابق شکل زیر PHP را انتخاب کنید تا نرمافزار برای نوشتن کدهای پی‌اچ‌پی آماده شود.

۰۴eb5f29-b920-40c0-94ae-30283ce7ca4eمستقیما و بلافاصله می‌خواهیم به سراغ‌ آموزش برویم. اولین نکته مهم این است که باید بدانید فایل‌های نوشته شده به این زبان را چگونه و در کجا باید ذخیره کنید.

تمامی فایل‌های نوشته شده به زبان پی‌اچ‌پی باید در مسیر زیر ذخیره شوند. دقت کنید آدرس روت یا همان ریشه سرور محلی شما که با آدرس http://127.0.0.1 در دسترس است، فایل‌های موجود در مسیر C:/xampp/htdocs را اجرا می‌کند. بنابراین ریشه سرور شما در رایانه‌تان پوشه htdocs است که خود این پوشه در زیر پوشه‌ی Xampp قرار دارد.

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

بهتر است برای هر پروژه یک پوشه جداگانه در پوشه htdocs ایجاد کنید. بدین صورت دسترسی به پروژه‌ها و فایل‌های شما در مراجعات بعدی بسیار آسان‌تر خواهد بود. برای ایجاد اولین پروژه به مسیر C:/xampp/htdocs رفته و مانند تصویر زیر یک پوشه به نام hello ایجاد کنید. یعنی پوشه hello زیر شاخه پوشه htdocs است.

۳۲۰۳ee92-3a43-40d4-94e3-afd55aa1b4a5حالا نوت‌پد++ را باز کرده و عبارت زیر را در آن وارد کنید و سپس فایل را با نام test.php و در مسیر C:/Xampp/htdocs/hello که در مرحله قبل آن را ساختید ذخیره کنید.

<?php echo “Hello PHP tutorials From Zoomit!”; ?>

بدین ترتیب فایل شما با آدرس: http://127.0.0.1/hello/test.php از طریق مرورگر قابل اجرا خواهد بود. پس مرورگرتان را باز کرده و آدرس یاد شده را در آن وارد کنید. تصویر زیر خروجی کد نوشته شده به زبان پی‌اچ‌پی است و در واقع اولین اسکریپت نوشته شده شما به این زبان است.

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

۵a24e33e-e517-4d17-8a64-491d0208c5e3اگر تصویر مروگر شما هم چیزی شبیه به عکس بالا را نشان می‌دهد به شما تبریک می‌گوییم چراکه توانسته‌اید اولین پروژه پی‌اچ‌پی خود را به درستی ایجاد و اجرا کنید.

قواعد کلی برنامه‌نویسی به زبان پی‌اچ‌پی

مهمترین نکته این است که فایل‌های نوشته شده به زبان پی‌اچ‌پی باید با پسوند php. ذخیره شوند. اگر به اولین کد نوشته شده به زبان php خود نگاهی بیاندازید متوجه می‌شوید که کدهای این زبان با برچسب php؟> شروع شده و با <? پایان می‌یابد. هر چه بین این دو برچسب یا همان تگ، قرار بگیرد، سرور آن‌ کدها را به عنوان کد php در نظر گرفته و پردازش می‌کند. اما شاید بپرسید موارد خارج از این دو برچسب چگونه اجرا خواهند شد؟ خب در پاسخ باید گفت هرچه که خارج از برچسب مخصوص پی‌اچ‌پی نوشته شده باشد، عینا در مرورگر دیده خواهد شد که می‌تواند متون ساده، کد اچ‌تی‌ام‌ال یا CSS هم باشد.

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

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

این سری آموزشی از ابتدا و از پایه شروع شده و با ساخت چند پروژه عملی به عنوان تمرین پایان خواهد یافت.

منبع: زومیت