وردپرس چیست؟

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

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

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

عملیات درج در پایگاه داده

برای درج اطلاعات در ادامه پروژه cms که در قسمت قبلی ساختیم باید یک فرم برای درج اضافه کنید. در پوشه cms یک فایل جدید به نام insert.php بسازید. در این فایل یک فرم برای درج مطلب در جدول پست طراحی می کنیم. از آنجا که دو فیلد در جدول داریم باید در فرم نیز دو فیلد تعریف کنیم. یکی برای عنوان و یکی برای متن. حال کد زیر را در فایل 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>
<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 ارسال می شود. این فایل را ایجاد کرده و کد زیر را در آن قرار دهید.

<!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 != ""){
$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>

توضیح کد فوق:

ابتدا فایل config.php را که در جلسه قبل ساختیم، فراخوانی کرده ایم. سپس مقادیر وارد شده در فیلد ها را در دو متغیر ذخیره کرده ایم. سپس با یک دستور if بررسی کرده ایم که مقداری در فیلد ها وارد شده یا نه. اگر وارد نشده پیغام مناسب را نمایش می دهیم، اگر وارد شده باشد عملیات درج  انجام می شود.

با استفاده از تابع mysql_query مقادیر وارد شده توسط کاربر را به جدول وارد می کنیم. این تابع دو خروجی دارد که با دستور if آن را بررسی می کنیم. اگر true باشد عملیات درج با موفقیت انجام شده و پیغام مناسب را نمایش می دهیم. در غیر این صورت درج انجام نشده و باید پیغام مناسب را نمایش داده و کاربر به صفحه insert.php بازگردد.

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

فرم درج مطلب

پس از زدن دکمه ثبت تصویر زیر را می بینید.

پیغام درج مطلب

توضیحاتی در مورد کوئری درج:

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

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

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

اطلاعات درج شده در جدول را می توانید از طریق آدرس http://127.0.0.1/phpmyadmin مشاهده کنید. در آن جا ابتدا روی دیتابیس cms و سپس روی جدول posts کلیک کنید.

آموزش کامل PHP – قسمت 14: ارتباط با بانک اطلاعاتی

اتصال به بانک های اطلاعاتی از مهمترین مباحث برنامه نویسی است. زبان برنامه نویسی php قابلیت اتصال به انواع بانک های اطلاعاتی را دارا می باشد. در این قسمت از آموزش ما طریقه ارتباط با یکی از محبوب ترین بانک های اطلاعاتی یعنی mysql را آموزش خواهیم داد.

در این قسمت از سری آموزش های php با پردیس وردپرس، پروژه یک سیستم مدیریت محتوا را آغاز می کنیم.

اتصال به بانک اطلاعاتی

ابتدا پوشه ای در htdocs (زمپ) یا www (ومپ) ایجاد کنید و نام دلخواهی (مثلا cms) برای آن انتخاب کنید. در داخل پوشه فایلی به نام config.php ایجاد کنید. (این فایل تنظیمات مربوط به سیستم ما را نگهداری می کند). در واقع برنامه ما از طریق همین فایل به بانک متصل می شود.

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

ساخت بانک اطلاعاتی

روی Databases کلیک کنید و بعد از وارد کردن اطلاعات، مانند تصویر زیر روی Create کلیک کنید.

ایجاد بانک اطلاعاتی

حال نوبت ساخت جداول است. وارد بخش 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";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 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;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

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

حال به بخش php بر می گردیم. کد زیر را در فایل config.php قرار دهید.

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

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

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

برای اتصال به پایگاه داده mysql در php به چهار متغیر به شرح زیر نیاز داریم:

  1. متغیری برای آدرس بانک اطلاعاتی – dbhost که localhost است
  2. متغیری برای نام کاربری یا یوزرنیم بانک – dbuser که root است
  3. متغیری برای نام بانک اطلاعاتی که cms می باشد
  4. متغیری برای رمز عبور بانک اطلاعلتی – dbpass که خالی است

با استفاده از تابع 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 را در مروگرتان اجرا کنید، باید با عبارت !Connected to db successfully مواجه شوید. در غیر این صورت یکی از مراحل را اشتباه انجام داده‌اید.

اگر همه چیز به درستی انجام شده، می توانید بخش if را در فایل config حذف کنید یا به حالت کامنت در آورید. همچنین یک دستور دیگر برای انتخاب بانک cms به آن اضافه کنید.

<?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 متصل شوید. همانطور که می‌بینید این تابع دو آرگومان دارد که ورودی اول نام بانک اطلاعاتی است و آرگومان دوم که تعریف آن اجباری هم نیست، به خروجی تابع اتصال به سرور اشاره دارد. ما خروجی تابع را در متغیر connect_db قرار داده بودیم و از همین رو در آرگومان دوم نام این متغیر را وارد کرده‌ایم.

توجه داشته باشید که ما در این قسمت یک جدول برای ذخیره نوشته های سایت خود ساخته ایم. در این جدول ستون id همان کلید اصلی است و شامل شماره هر سطر در جدول می باشد.

آموزش کامل PHP – قسمت 13 : ارسال ایمیل

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

پروژه ارسال ایمیل با php

در ابتدا بخش هایی را برای پروژه خود در نظر می گیریم:

  1. یک فیلد برای وارد کردن آدرس ایمیل مقصد
  2. یک فیلد برای وارد کردن نام ارسال کننده ایمیل
  3. یک فیلد برای وارد کردن موضوع ایمیل
  4. یک فیلد برای نوشتن متن ایمیل
  5. یک دکمه برای ارسال ایمیل
  6. یک دکمه برای ریست کردن فرم
  7. یک صفحه php که عملیات ارسال ایمیل را پردازش می کند

الگوریتمی که برای این پرژه در نظر گرفته ایم به شرح زیر می باشد:

  1. کاربر اطلاعات لازم را در فرمی وارد می کند
  2. اطلاعات به صفحه php که در بخش شماره 7 فوق گفتیم ارسال می شود
  3. در صفحه php چک می کنیم که آیا تمام فیلد ها، کامل پر شده اند یا خیر – اگر بله به مرحله بعد برود و اگر خیر به مرحله 1
  4. ارسال ایمیل با توجه به اطلاعات وارد شده کاربر توسط کد های php
  5. بررسی می شود که ایمیل با موفقیت ارسال شده یا خیر – اگر بله نمایش پیغام درستی به کاربر و اگر خیر پیغام نادرستی

حال پوشه ای به نام ایمیل برای پروژه ایجاد می کنیم و دو فایل به نام های index.php و send.php در آن می سازیم. فایل index فرم ارسال ایمیل و فایل send پردازشگر و ارسال کننده ایمیل می باشد. در فرم ارسال ایمیل فیلد های مورد نظر را قرار می دهیم که کد آن به شرح زیر است:

<form method="post" action="send.php">

email to: <input type="text" name="email"><br>

your name: <input type="text" name="name"><br>

subject: <input type="text" name="subject"><br>

message: <textarea name="message" rows="3" color="4"></textarea>

<input type="reset" value="reset">

<input type="submit" value="send">

</form>

سپس در فایل send.php کد های زیر را وارد کنید:

<?php

$mailto = trim ($_post ['email']);

$username = trim ($_post ['name']);

$subject = trim ($_post ['subject']);

$message = trim ($_post ['message']);

//merge name and message

$final_message = $username . ":" . $message;

 if ($mailto != "" && $username != "" && $subject != "" && $message != "") {

$email_send = mail ($mailto , $from_mail , $final_message);

if ($email_send) {

echo "your mail has been send successfully!"; }

else {

echo "sorry, there is problem in sendig mail, try again!"

} }

else {

echo "you most fill all fields!" go <a href="index.php">back</a>

} ?>

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

با استفاده از تابع mail اقدام به ارسال ایمیل می کنیم و سپس مقدار بازگشتی این تابع را در متغیر email_send قرار می دهیم. در صورتی که ارسال ایمیل موفق باشد تابع  mail، مقدار true را بر می گرداند و در غیر این صورت مقدار بازگشتی تابع false خواهد بود. بنابراین متغیر email_send نیز دارای همین دو مقدار است که با دستور if آن را بررسی کرده و پیغام مناسب را به کاربر نمایش داده ایم.

ما نام کاربر و متن ایمیل را ترکیب کرده و در متغیری به نام final_message قرار داده ایم.

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

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

همچنین می‌توانید از آنچه که در این جلسه یاد گرفتید به منظور ایجاد فرم تماس با ما برای سایت خود استفاده کنید.

آموزش کامل PHP – قسمت 12: فرم ها

فرم ها در php

به طور کلی فرم ها در برنامه نویسی وب از اهمیت و کاربرد فراوانی برخوردار هستند. در php از دو متغیر POST_$ و GET_$ برای جمع آوری اطلاعات فرم ها استفاده می کنیم. فرم ها به منظور ارتباط با کاربران استفاده می شوند.

با استفاده از تگ form در html می توانیم فرم مورد نظر را ایجاد کنیم. تمام فیلد های ورودی باید در داخل این تگ قرار گیرند. به مثال زیر توجه کنید:

<form action="send.php" method="post">

name: <input type="text" name="username">

<input type="submit" name="send" value=submit your name!">

</form>

همان طور که مشخص است در مثال فوق با استفاده از کد های html فرمی ساخته ایم. نکته مهم در مثال فوق دو خاصیت اکشن و متد می باشد. مقدار اکشن را برابر با فایل send.php قرار داده ایم که یعنی اطلاعات فرم ما بعد از ثبت به این صفحه ارسال خواهند شد. در بخش متد می توانیم یکی از حالت های post یا get را قرار دهیم که نتیجه کار هر دو یکی است و تفاوت آن ها را توضیح خواهیم داد.

کد بالا را در یک فایل به نام form.php قرار دهید و سپس این فایل را در همان پوشه new که در قسمت های قبل گفتیم قرار دهید. فایل دیگری به نام send.php بسازید و کد زیر را در آن کپی کنید.

<?php

$user = $_POST ['username'];

echo "your name is:" . $user;

<?

کاری که در مثال فوق انجام می شود به شرح زیر است:

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

اگر در زمان اجرای مثال فوق به نوار آدرس توجه کنید خواهید دید که ابتدا از آدرس http://127.0.0.1/new/form.php به فرم دسترسی داریم و سپس با زدن دکمه آدرس به http://127.0.01/new/send.php تغییر خواهد کرد.

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

پایان قسمت دوازدهم

آموزش کامل PHP – قسمت یازدهم: متغیرهای پیش فرض

متغیرهای پیش فرض

در قسمت های قبلی آموزش php گفتیم که در نام گذاری ها نباید از نام های رزرو شده استفاده کنیم. برخی از نام های رزرو همان متغیرهای پیش فرض php هستند. با دانستن نام این متغیر ها و استفاده از آن ها به امکانات خوبی در برنامه نویسی دسترسی خواهیم داشت. در زیر به یکی از این متغیرها اشاره شده:

متغیر SERVER_$

این متغیر در واقع یک آرایه از داده‌ها است که در آن اطلاعاتی از قبیل هدرها (Headers)، مسیرها (Paths) و … وجود دارد. همانطور که در بخش آرایه‌ها توضیح دادیم برای دسترسی به هر عضو یک آرایه باید نام آن عضو را در مقابل نام آرایه به‌کار ببرید. در مورد آرایه SERVER_$ باید از کدی شبیه به کد زیر استفاده کنید:

<?php

echo $_SERVER ['SCRIPT_NAME'];

?>

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

<?php

echo $_SERVER ['HTTP_HOST'];

<?

کد فوق هدر هاست کنونی را به شما نشان می دهد. مثلا در سرور محلی 127.0.0.1 را نشان می دهد.

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

<?php

$host = $_SERVER ['HTTP_HOST'];

$image_path = $host . '/images/';

<?

 در کد فوق ابتدا هدر هاست را در متغیر جدیدی به نام host قرار داده ایم، سپس مسیر جدیدی را با ترکیب متغیر host در متغیری به نام image_path به وجود آورده ایم. مسیر جدید پوشه ای به نام images است.

نکته: اگر دقت کرده باشید بین متغیر host و مسیر ‘/images/’ از یک نقطه استفاده کرده ایم. در پی‌اچ‌پی برای اتصال رشته‌های متنی به یکدیگر و نیز اتصال متغیرها به یکدیگر و همچنین اتصال متغیر‌ها به رشته‌های متنی می‌توانید از نقطه استفاده کنید.

حالا در فایل‌های پروژه خود هر کجا که بخواهیم از عکس‌های جدید استفاده کنیم کافی است ابتدا فایل Config.php که در بالا ایجاد کردیم را به صفحه include یا require اضافه کنیم و سپس از متغیر image_path در هرجا که خواستیم استفاده کنیم. به مثال زیر توجه کنید:

<?php

require ("config.php");

echo '<img src= '. $image_path . header.jpg'>';

<?

در جدول زیر لیست سایر اعضای آرایه SERVER_$ را که می توانید از آن ها استفاده کنید آورده ایم.

جدول اعضای آرایه SERVER_$ در PHP
نام فایل کنونی که در سرور اجرا شده را بر می‌گرداند $_SERVER[‘PHP_SELF’]
آدرس آی‌پی سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_ADDR’]
نام سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_NAME’]
هدر هاست کنونی را بر می‌گرداند $_SERVER[‘HTTP_HOST’]
آی‌پی سروری قبلی‌ای که کاربر از آن به سایت ما وارد شده را بر می‌گرداند $_SERVER[‘REMOTE_ADDR’]
پورت دستگاهی که کاربر از طریق آن با سرور ارتباط برقرار کرده را بر می‌گرداند $_SERVER[‘REMOTE_PORT’]
نام مسیر دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_FILENAME’]
پورتی که سرور از آن برای ارتباطات خود استفاده می‌کند را برمی‌گرداند $_SERVER[‘SERVER_PORT’]
نام دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_NAME’]
آدرس URI $_SERVER[‘REQUEST_URI’]

می توانید تک تک موارد فوق را تمرین کنید و نتیجه آن را در مرورگر خود مشاهده کنید.

آموزش کامل PHP – قسمت دهم: توابع

در این قسمت از سری آموزش های php به آموزش توابع می پردازیم. توابع از مهمترین بخش های هر زبان برنامه نویسی می باشد.

تابع (function)

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

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

چند نکته

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

ساختار کلی توابع در php

<?php

function name() {

func code

}

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

پارامتر های تابع (ورودی تابع)

تابع می تواند یک یا چند ورودی داشته باشد یا اصلا ورودی نداشته باشد. ورودی را می توانیم به صورت پارامتری به تابع ارسال کنیم. برای این منظور برای هر ورودی یک متغیر در داخل پرانتز جلوی نام تابع تعریف می کنیم. به مثال زیر توجه کنید:

<?php

function myfunc($name , $age){

echo your name is $name and age is $age;

}

myfunc("mohammad" , "27");

?>

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

آرگومان های ورودی پیش فرض

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

php?>

("function myfunc ($name = "mohammad

{ ;echo $name }

;()myfunc

<?

در کد فوق هنگام تعریف تابع یک مقدار پیش فرض برای پارامتر نام در نظر گرفته شده بنابراین با وجود این که در هنگام فراخوانی تابع ورودی داده نشده برنامه با خطا مواجه نمی شود.

مقادیر بازگشتی در تابع

برای استفاده از مقادیر بازگشتی در تابع از دستور return به صورت زیر استفاده می کنیم.

<?php

function zarb($a , $b) {

$c = $a * $b;

return $c;

}

$d = zarb(3 , 3);

echo $d;

?>

در کد فوق مقدار بازگشتی تابع ضرب را در متغیر d ریخته و آن را در خروجی نمایش داده ایم.

آموزش کامل PHP – قسمت نهم: معرفی Include و require

در این قسمت از آموزش php یک پرژه کوچک را با هم شروع خواهیم کرد و آموزش ها را با شیوه جذاب و کاربردی تری ادامه خواهیم داد. قبل این که پروژه را شروع نکاتی را ذکر می کنیم.

هنگام نوشتن پروژه های بزرگ بهتر است که کدها را در بخش های مختلف و در فایل های جداگانه بنویسیم. قصد داریم با دستورات include و require کدها و پروژه های خود را سازماندهی کنیم.

دستور include

با استفاده از دستور include می توانیم محتویات یک فایل را در فایل دیگر استفاده کنیم. برای شروع یک پوشه جدید به نام mysite در پوشه htdocs نرم افزار سرور مجازی xampp ایجاد کنید. در این پوشه سه فایل php به نام های index.php, head.php و footer.php ایجاد کنید.

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

حال به ادامه پروژه می پردازیم، فایل head.php را باز کرده و کدهای زیر را در آن قرار دهید:

<!DOCTYPE html>

<html>

<style>

#header {

background-color:black;

color:white;

text-align:center;

padding:5px;

}

#section {

padding:10px;

}

#footer {

background-color:black;

color:white;

clear:both;

text-align:center;

padding:5px;

}

</style>

</head>

<body>

<div id="header">

<h1>My Site</h1>

</div>

سپس فایل index.php را باز کرده و کدهای زیر را در آن قرار دهید:

<?php

include ("head.php");

?>

<div id="section">

<h2>learning php - pardiswp.com</h2>

<p>we learning php in pardiswp. php is very powerful for developing any kind of web applications. so we love it!</p>

</div>

<?php

include ("footer.php");

?>

خب تا اینجا ما در بالا و پایین کد index.php  دو دستور ساده php به کار برده ایم. در قسمت بالای کد فوق فایل head.php را به ایندکس اضافه کرده ایم که برای این کار از دستور اینکولود استفاده شده است. در پایین نیز فایل footer.php را به کد اضافه کردیم. در این صورت هر تغییری که در فایل های سربرگ و پاورقی ایجاد شود در فایل index.php هم اعمال می شود.

در نهایت کد زیر را در فیل footer.php می نویسیم:

<div id="footer">

Copyright © pardiswp.com

</div>

</body>

</html>

حالا مرورگر خود را باز کنید و پروژه را در آن تست کنید. باید آدرس http://127.0.0.1/mysite/index.php را در مروگر باز کنید. تصویری مشابه زیر خواهید دید:

پروژه تست php

حال اگر روی صفحه راست کلیک کنید و گزینه view source page را بزنید کد سورس نهایی که ترکیبی از کد فایل ها است را خواهید دید. در این کد در فایل ایندکس به جای دستور include کد همان فایلی که فراخوانی کرده ایم، قرار می گیرد.

دستور require

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

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

در آخر توصیه می کنیم که این پروژه را به دقت انجام دهید و تمرین داشته باشید. ما همین پروژه را در جلسات آینده تکمیل تر خواهیم کرد. فایل پروژه را می توانید از [highlight color=”blue”]این قسمت[/highlight] دانلود کنید.

آموزش کامل PHP – قسمت هشتم: switch

در این قسمت از آموزش یکی دیگر از دستورات پایه ای زبان php را آموزش خواهیم داد تا رفته رفته در قسمت های بعدی وارد مباحث پیشرفته تر شویم. دستور سویچ یکی از دستورات کاربردی در زبان های برنامه نویسی مانند پی اچ پی است که کاربرد آن شبیه به else … if است. اگر یادتان باشد در قسمت های قبل به طور کامل در مورد این دستورات شرطی صحبت کردیم و گفتیم که برای بررسی چند شرط می توانیم استفاده کنیم. اما دستور switch جایگزین بهتری برای شرط های چندگانه است.

دستور شرطی switch

روش استفاده از دستور switch به صورت زیر است:

<?php

$a = 1;

switch ($a){

case "1":

echo "number 1";

break;

case "2":

echo "number 2";

break:

default:

echo "number 1 & 2 not";

break;

} ?>

اگر به کد فوق توجه کنید ابتدا یک متغیر تعریف کرده ایم و مقدار یک را به آن نسبت داده ایم سپس آن متغیر را در پرانتز و در مقابل دستور switch قرار داده ایم. در ساختار سویچ هر case مانند else if عمل می کند و شرط جداگانه ای است. عملکرد برنامه به این صورت است که اگر مقدار متغیر 1 بود یعنی کیس 1، “عدد 1 است” چاپ می شود. اگر 2 بود، عدد 2 و اگر هیچکدام نبود دستور درون دیفالت اجرا می شود.

همان طور که مشاهده می کنید عملکرد این دستور دقیقا مشابه else if است و انسجام بهتری دارد. توصیه می شود برای بررسی چند شرط از این دستور استفاده کنید.

اصول کلی استفاده از switch

  1. قرار دادن آنچه قصد بررسی مقدارش را داریم در پرانتز مقابل دستور switch (متغییر یا دستوراتی که نهایتا یک خروجی داشته باشند)
  2. به ازای هر شرط یک دستور case را نوشته و علامت دو نقطه : را در مقابل قرار می دهیم
  3. کد مورد نظر را برای شرطی که در مرحله قبل نوشتیم، می نویسیم
  4. با استفاده از عبارت break و سپس قرار دادن علامت نقطه ویرگول ; شرط یاد شده را پایان می‌دهیم
  5. به ازای هر شرط دیگری که قصد بررسی آن را داریم مراحل ۲ تا ۴ را مجددا تکرار می‌کنیم
  6. همانند مثال بالا، در نهایت default را در پایین‌ترین بخش دستور switch می‌نویسیم تا در صورتی که هیچ کدام از شرط‌ های نوشته شده برقرار نبود، این دستور اجرا شود

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

<?php

$usercity = 20;

switch ($usercity){

case "shiraz":

echo "welcome";

break;

case default:

echo "you are not from shiraz";

break;

} ?>

نکته: نوشتن بخش default اجباری نیست ولی پیشنهاد می کنیم همیشه این بخش را هم بنویسید تا شرایط را بهتر کنترل کنید.

پایان قسمت هشتم

آموزش کامل PHP – قسمت هفتم: حلقه for

در ادامه قسمت قبلی در این قسمت نیز در مورد حلقه ها و این بار حلقه for صحبت می کنیم.

حلقه for

اگر به حلقه while در قسمت قبلی آموزش بیشتر توجه کنید متوجه می شوید که در تمام مثال ها از متغیر به عنوان نوعی شمارشگر استفاده کرده ایم. این متغیر در واقع نقش کنترل حلقه را برای ما ایفا می کند و تعداد دفعات تکرار را نگهداری می کند. از عملگرها هم برای افزایش و کاهش استفاده می کردیم. در حلقه for این موارد را باید حتما در خود حلقه تعریف کنیم. برای درک بهتر به کد زیر توجه کنید:

<?php

for (counter; condition; step){

code to run

} ?>

در کد فوق counter شمارنده، condition شرط و step گام حلقه می باشد. همچنین دقت کنید که بین این آیتم ها علامت نقطه ویرگول قرار دارد. مثال:

<?php

for ($i = 1; $i < 7; $i++){

echo "$i <br>";

} ?>

در مثال فوق i شمارنده حلقه با مقدار اولیه 1 است. شرط حلقه نیز تا زمانی که i کمتر 7 باشد بر قرار است. گام حلقه هم 1+ است. دستور بدنه حلقه که داخل آکولاد نوشته شده در هر گام مقدار جاری متغیر را چاپ می کند. بنابراین خروجی این برنامه اعداد 1 تا 6 است.

استفاده از حلقه for به جای while باعث می شود که کدنویسی شما کمتر و سریعتر شود. حلقه ها در عین سادگی قدرت زیادی در برنامه نویسی دارند. در مثال زیر جدول ضرب اعداد 1 تا 10 را با حلقه for تولید می کنیم:

<table align = "center">

<?php

for ($i = 1; $i <= 10; $i++){

for ($j=1; $j <= 10; $j++){

echo "$i * $j";

echo "-"; }

echo "<br>";

echo "<br>";

} ?>

</table>

در مثال فوق از حلقه for به صورت تو در تو استفاده کرده ایم. از حلقه های while نیز می توان به صورت تو در تو تا بی نهایت استفاده کرد.

حلقه دیگری به نام for each نیز در php وجود دارد که در قسمت های آینده ی آموزش و در خلال پروژه با آن آشنا خواهیم شد.