چهارشنبه ۰۸ بهمن ۱۴۰۴

Wednesday, January 28, 2026 GMT +3:30

آموزش برنامه نویسی وب با PHP

php

در طی مسیر فراگیری دانش و توسعه مهارتهای برنامه نویسی وب پس از آموختن کلیاتی از CSS, HTML و JavaScript دیر یا زود اسمی از یک زبان برنامه نویسی سمت سرور مانند PHP به گوشمان خواهد خورد، ساختار وب به گونه ای است که از دو بخش سمت کاربر (مرورگر) و سمت سرور (جایی که صفحه وب یا برنامه تحت وب در آن قرار دارد) تشکیل شده و لذا صرف آشنایی با آنچه تا کنون آموخته ایم نمی تواند برای انجام فعالیت های حرفه ای و طراحی سیستم های پیشرفته کافی باشد و لزوما باید یک زبان برنامه نویسی سمت سرور مانند PHP را فرا بگیریم، با PHP می توانیم به صورت پویا آنچه را که کاربر باید در صفحه مرورگر خود ببیند مدیریت کنیم، به طور مثال اگر فرم اولیه ورود به سایت با HTML و CSS طراحی شده باشد، پس از ارسال نام کاربری و کلمه عبور به سرور، این PHP است که وظیفه تطبیق اطلاعات با پایگاه داده و صدور اجازه یا عدم اجازه دسترسی به پنل مدیریت را بر عهده دارد، با PHP می توانیم تقریبا هر خواسته ای که از سرور داشته باشیم را عملی و صفحات وب داینامیک و برنامه های تحت وب حرفه ای طراحی کنیم.

تعریف PHP به زبان ساده


اگر بخواهیم PHP را به زبان ساده تعریف کنیم می توانیم آن را زبان برنامه نویسی اسکریپتی چند منظوره بنامیم که به طور خاص برای وب توسعه یافته و جهت نوشتن برنامه های تحت وب کاربرد تخصصی دارد، این تعریف ترجمه ساده از عبارتی است که در سایت php.net درج شده است:
PHP is a popular general-purpose scripting language that is especially suited to web development.
این زبان در سال 1994 میلادی توسط Rasmus Lerdorf با هدف نمایش آنلاین اطلاعات و رزومه شخصی به زبان C نوشته شد که به همین دلیل در ابتدا آن را Personal Home Page نامیدند که PHP مخففی از سرواژه های این عبارت است، بعدها با پیشرفت PHP عبارت توضیحی HyperText Preprocessor (پیش پردازنده ابرمتن) جایگزین عبارت فوق شد، منظور از پیش پردازنده ابرمتن این است که PHP ابتدا کدها و دستورات را با مفسر خود پردازش کرده و سپس خروجی را به مرورگر کاربر ارسال می کند.
نکته: منظور از اسکریپتی بودن PHP این است که کدهای آن در مفسر سرور پردازش شده و مانند برنامه های رایج در قالب یک بسته نرم افزاری کامپایل نمی شوند.

چرا PHP بیاموزیم و با PHP برنامه نویسی کنیم؟


اغلب علاقمندان به فراگیری دانش برنامه نویسی وب پس از اینکه از مرحله زبان های سمت کاربر عبور می کنند در دو یا بعضا چندراهی انتخاب یک زبان برنامه نویسی سمت سرور به شک و تردید دچار می شوند، محدودیت های زمانی، انرژی و حوصله ای که برای فراگیری یک زبان برنامه نویسی صرف می شود این انتخاب را بیش از پیش حساستر کرده و حتی آینده حرفه ای ما را رقم می زند، اگر در وب عباراتی مانند "PHP یا ASP کدام بهتر است؟!" را جستجو کنید، ملاحظه می کنید که اغلب بین برنامه نویسان در این خصوص که کدام زبان مناسب تر است بحث های طولانی و بعضا متعصبانه رخ داده و هر کسی با دید خود به این قضیه نگاه می کند، اما واقعیت این است که هیچ زبانی کامل و بی نقص نیست و ما هم قصد نداریم PHP را با زبان های دیگر مقایسه کنیم چرا که هیچ محدودیتی از این نظر که بتوانیم از چند زبان برنامه نویسی استفاده کنیم وجود ندارد و در واقع مرزی برایمان به عنوان برنامه نویس نباید ترسیم کنیم، PHP را می آموزیم چون متخصص در امر وب است و تمام نیازهایمان را به خوبی پوشش می دهد، چون ساده و در عین حال قدرتمند، سریع و امن است، رایگان، کم دردسر و در دسترس است، کدنویسی با PHP اغلب به درک بهتر ساختار و پیچیدگی های وب کمک می کند، PHP از شیوه های برنامه نویسی معمولی و شی گرا به خوبی پشتیبانی می کند، برای کار با پایگاه داده اکستنشن های قوی و تخصصی دارد، PHP متن باز (Open-source) است و آنگونه که توسعه محصولات شرکت های بزرگ به پدیدآورنده محدود می شود وابسته به شرکت خاصی نیست، اغلب برنامه های رایگان و پرکاربرد مدیریت محتوای وب (CMS) به زبان PHP نوشته شده اند مانند وردپرس، جوملا، دروپال و...، PHP توسط گروهی حرفه ای از برنامه نویسان وب پشتیبانی می شود، وجود سایت مرجع php.net و جامعه وسیعی از کاربران در سطح وب خود نویدبخش رشد شتابان PHP و رفع نواقص احتمالی نسبت به زبان های مشابه و آینده روشن است، لذا می توان PHP را یکی از مناسبترین گزینه ها برای برنامه نویسی سمت سرور به شمار آورد.

فراگیری PHP، آسان و شیرین!


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

برای کدنویسی PHP از چه برنامه ای استفاده کنیم؟


اکنون که با کلیات برنامه نویسی با PHP آشنا شدیم نوبت به ورود عملی به این مسیر است، در اولین گام این سوال مطرح می شود که برای کدنویسی PHP از چه برنامه ای باید استفاده کنیم؟ در پاسخ می توان چند برنامه قوی و کاربردی مختلف را پیشنهاد داد از جمله برنامه قدرتمند و مناسب PhpStorm (توصیه می کنیم برای شروع از این برنامه استفاده کنید)، برنامه شرکت ادوبی با نام Adobe Dreamweaver، برنامه رایگان و متن باز NetBeans IDE - PHP Development با محیط کدنویسی قوی و پشتیبانی مناسب، در کنار این برنامه ها استفاده از ویرایشگرهای به ظاهر ساده مانند ++Notepad برای کار با فایل های PHP ضروری خواهد بود، خوشبختانه تمام موارد نامبرده با یک جستجوی کوتاه در وب در دسترس می باشند.

اجرای کدهای PHP در سیستم عامل


از آنجایی که PHP یک زبان سمت سرور (Server-side) است برای اجرای آن در سیستم خود نیاز به برنامه هایی تحت عنوان سرور مجازی (Localhost) داریم که اغلب به صورت رایگان در دسترس هستند، برای نمونه یکی از بهترین ها در آدرس زیر قابل دریافت است.
apachefriends.org
همچنین:
wampserver.com
و همچنین:
appservnetwork.com
پس از نصب هر یک از برنامه های XAMPP، WampServer یا AppServ اکنون شما قادر به اجرای فایل های PHP بر روی سیستم خودتان خواهید بود (توصیه می کنیم یکی از نسخه های برنامه XAMPP را متناسب با سیستم خود انتخاب کرده و نصب نمائید)، پس از نصب و اجرای برنامه به آیکن مربوطه که معمولا در نوار وظیفه سیستم عامل مشخص است دقت نمائید به طور مثال برنامه XAMPP پنجره کنترلی برای مشاهده وضعیت سرویس های مورد نیاز (Apache، MySQL و...) را در رابط کاربری خود نمایش می دهد یا برنامه WampServer در حالت عادی آیکنی سبزرنگ را نمایش می دهد و این یعنی سرور مجازی شما فعال و آماده به کار است، اکنون برنامه ویرایشگر فایل های PHP خود (به طور مثال PhpStorm) را اجرا و فایلی با نام example.php (فایل فرضی و نام دلخواه) در فولدر htdocs یا www (با توجه به برنامه مورد استفاده) در محل نصب سرور مجازی ذخیره نمائید، به فرض اگر برنامه XAMPP یا WampServer را در درایو C در فولدرXampp یا Wamp قرار داده باشید ریشه سرور مجازی شما به صورت نمونه های زیر خواهد بود:
C:\Xampp\htdocs
C:\Wamp\www
فایل example.php را درون این فولدر قرار دهید، بهتر است این فایل با نمونه کدهای ساده HTML کدنویسی شده باشد تا در هنگام گرفتن خروجی نتیجه مشخص شود، در نهایت مرورگرتان را اجرا کرده و عبارت http://localhost/example.php را در قسمت نوار آدرس نوشته، دکمه Enter را در صفحه کلید بزنید تا فایل از فولدر htdocs یا www فراخوانی شود، اگر همه چیز صحیح باشد صفحه وب شما در مرورگر نمایش داده خواهد شد درست مانند اینکه یک سایت آنلاین بر روی سرور واقعی برپا کرده باشید (در سرور آنلاین نیز معمولا ریشه سایت فولدر public_html یا www است).

چند مثال ساده با PHP


فلسفه پیدایش PHP (سال 1994 میلادی توسط Rasmus Lerdorf) ایجاد صفحات داینامیک و استفاده از آن در وب بوده (هرچند PHP را می توان به صورت General-purpose استفاده کرد) لذا می توان دستورات این زبان را در کنار کدهای ساده HTML درج و اجرا کرد (در اصطلاح PHP را HTML-embedded می گویند) این قابلیت یکی از نقاط قوت PHP محسوب شده و یادگیری آن را ساده تر می کند، برای شروع و آشنایی بیشتر کدها و مثال هایی ساده از این زبان را مرور می کنیم:
<?php
echo "اولین کد PHP من!";
?>
توضیح:
- کدهای PHP با تگ علامت سوال ، php شروع و با علامت سوال بسته می شوند (شیوه استاندارد).
- دستور echo مقادیر را به خروجی ارسال و در مرورگر چاپ می کند.
حال به کد زیر توجه کنید:
<?php
$text = "اولین کد PHP من!";
echo $text;
?>
پیش نمایش
توضیح:
- در کد بالا عبارت اولین کد PHP من! به جای اینکه مستقیما به echo داده شود، ابتدا به یک متغیر (در آینده در این رابطه مفصل خواهیم گفت) نسبت داده شده و سپس مقادیر متغیر با دستور echo به خروجی داده می شود (علامت $ در PHP نشان دهنده متغیر است).
حال به مثال زیر توجه کنید:
<?php
$num1 = 20;
$num2 = 50;
$total = $num1 + $num2;
echo $total;
?>
پیش نمایش
توضیح:
- کد بالا مقدار متغیر total را به خروجی خواهد داد و متغیر total برابر است با حاصل جمع دو متغیر num1 و num2 که اعدادی به دلخواه به آنها داده ایم.
- ملاحظه می کنید که PHP قدرت محاسبه منطقی دارد و می توان با آن از ترکیب چند مقدار یک مقدار جدید به دست آورد، این مثال ها اولیه و ساده هستند اما ما را با دنیای جدیدی آشنا می کنند که همان داشتن تفکر و هوش منطقی است و رفته رفته ذهنمان را برای نوشتن برنامه های سیستماتیک، طراحی الگوریتم ها و ساختارهای پیچیده تر وب آماده می کنند.
مثالی دیگر:
<?php
$name = 'Webgoo';
if ($name == 'Webgoo'){
    $hi = 'سلام وبگو!';
}
else{
    $hi = 'سلام، لطفا در سایت عضو شوید!';
}
echo $hi;
?>
پیش نمایش
توضیح:
- if (اگر) و else (در غیر اینصورت) برای ایجاد شرط منطقی به کار می روند و علامت == نشان دهنده برابری دو طرف آن است، اینها ابزارهایی است که در دنیای برنامه نویسی به کارمان می آیند و می توانیم به کمک آنها زبان انسان را به زبان ماشین تبدیل کنیم، در تفسیر کد بالا ابتدا متغیر name را با مقادیر از پیش تعریف شده Webgoo مقدار دهی کرده ایم (می تواند هر چیز دیگری باشد)، سپس با شرط if بررسی کرده ایم که اگر متغیر name برابر با مقدار Webgoo باشد، دستور echo داخل شرط if که بین دو علامت {} مشخص است اجرا شود، در غیر اینصورت قسمت else اجرا خواهد شد.
تقریبا هر آنچه که از وب بخواهید با PHP دستیافتنی است، در ادامه مطالب بخش آموزش های مقدماتی PHP در این باره بیشتر خواهیم گفت.
دسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
توابع کار با آرایه در PHP - بخش دوم
تعریف و استفاده از متغیر (Variable) در PHP
دستور switch و case در PHP
توابع کار با آرایه در PHP - بخش سوم
عملگرها (Operators) در PHP
دیدگاه
more ۱۹۴ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
ارمین
۲۰:۳۱ ۱۳۹۴/۰۸/۲۳
با سلام فرمولی ذهن من رو درگیر خودش کرده البته ایدش رو اگر بشه تو هر زبانی میشه اجراش کرد من از همین php شروع میکنم:
اول از همه این ایده مال خودمه و نمیدونم که ابداع شده یا نه و شاید هم شده، خواستم بدونم اگر هست روش کارکردش چیه و اگر نیست من براتون توضیح میدم روش کارشو:
اینجوریه که میخوام کد برنامه رو جوری بچینم که مرتب و به صورت هوشمند اجرا بشه، یعنی چی؟!
یعنی مثلا ما دو تابع درج و انتخاب کردن داریم.
حالا همان طور که به روش معمول میایم چک می کنیم و در پایگاه داده insert میکنیم، نمیخوام به ترتیب دستورات رو بنویسم. خب حالا ایده ای که داشتم شروع شد:
اینکه بیایم یه حلقه داشته باشیم که مثلا وقتی چک کردیم خودش بفهمه نوبت اینسرت کردن تو این خط و اون حلقه ای که گفتم بره تو کل تابع هایی که تو برنامه نوشتیم رو بیاره و اجرا کنه:
مثلا این کد رو نگاه کنید: (یه کد ساده).
$con=mysql_connect("localhost","root","");
mysql_select_db("data",$con);
function test(){
echo "insert";
}
function test1(){
echo 'select';
}
if(isset($_POST['send'])){
$name=$_POST['name'];
mysql_query("insert into user() values('$name')",$con);
test();
}
for($i=0;$i<5;$i++){
test();
}
میخوام برنامه از همون ابتدا جوری کلاس چینی و یا تابع بندی شه که انقد هوشمند باشه و حلقه ای که گفتم بتونه حالا کارشو انجام بده که در بالا مثلا فهمیده که میخواد اینسرت کنه، تابع اینسرت کردن رو پیدا کرده و اورده.
کد من عمل نمیکنه و فقط ضمن توضیح بود.
و ایا هم چیزی امکان داره!؟.
ممنون از سایت خوبتون.
منظورتان از "هوشمند" دقیق مشخص نیست، اما اگر منظور این است که هر بخش از برنامه به صورت یک تابع باشد که در هنگام لزوم ورودی به آن داده شده و خروجی دریافت شود، قاعدتا این جزء روال عادی در برنامه نویسی است و شکل تکامل یافته آن، برنامه نویسی شی گرا (OOP) است! البته این رویه ها قاعدتا باید به تدریج و در مباحثی مانند کار با توابع و حلقه ها فرا گرفته شوند، برنامه نویسی شی گرا نیز پس از تسلط نسبی بر حالت معمول، می تواند فرا گرفته شود، ایده شما ایده خوبی است و منجر به ساختاربندی بهتر و کوتاه تر شدن کدنویسی ها می شود که این امر توسعه یک برنامه را ساده تر و اصولی تر می کند، منتهی باید با چند و چون نحوه کار توابع و در کل برنامه نویسی PHP به اندازه کافی آشنا باشید!
بهنام
۰۳:۳۷ ۱۳۹۴/۰۸/۰۸
با تشکر از راهنمایی های شما واقعا ممنونم استاد عزیز
بهنام
۰۰:۲۶ ۱۳۹۴/۰۸/۰۶
من کدام را این گونه نوشتم که با تابع setInterval هر یک ثانیه جدول پیام ها رو انتخاب میکنه و پیام های جدید و قبلی را به طور کلی نمایش میده چگونه بفهمم که ایا پیام جدیدی وارد دیتابیس شده یا خیر اگه پیام جدید یا سطر جدیدی اضافه شد بیا انتخاب کن و پیاما رو نمایش بده چگونه همچین چیزی میشه؟
برای نوشتن برنامه های کاربردی پیچیده باید تجربه نوشتن برنامه های خیلی ساده را داشته باشید، قاعدتا طراحی و پیاده سازی یک برنامه کاربردی جزئیات زیادی دارد که نمی توان تمام آنها را در قالب یک پاسخ توضیح داد، صرفا در حد راهنمایی:
- میزان 1 ثانیه برای دستورات AJAX خیلی معمول و منطقی نیست و معمولا باعث ایجاد اختلال در عملکرد سرور می شود!، بهتر است میزان را به بالای 5 ثانیه افزایش دهید و به طور مثال طی بازه زمانی انتظار علامت در حال بارگذاری و... را به کاربر نشان دهید!
- برای مدیریت پیام ها می توانید یک ستون به عنوان پیام های دیده شده (یا نشده) قرار دهید، به فرض با نام visited، اگر پیام قبلا برای کاربری ارسال شده باشد، مقدار 0 و در غیر اینصورت مقدار 1 برای ستون در نظر بگیرید.
بهنام
۱۰:۵۹ ۱۳۹۴/۰۸/۰۵
سلام
خسته نباشید من دارم پروژه اسکریپت چت روم شبکه اجتماعی رو مینویسم ب لطف راهنمایی های شما
یه سوال داشتم قسمت خصوصی پیام های کاربرا رو نوشتم به طوری که از لیست اسم های انلاین رو یه اسمی کلیک کردم یه پنجره باز میشه و پیام های من و کاربر مورد نظر من از دیتابیس انتخاب میشن و در پنجره دایو کوچیک به من نمایش داده میشه
و میخوام کاری کنم وقتی رفتم تو پنجره خصوصی کاربر و پیام را ارسال کردم پنجره واسه کاربر مورد نظر نیز نمایش داده بشه و کاربر مجبور نباشه رو اسم من از لیست انلاین کلیک کنه تا پیام هامو بخونه و اتوماتیک پیام که دادم پنجره ظاهر شه و همینطور برعکس مثلا کاربری که به من پیام داد پنجره واسه من ظاهر شه یه همچین امکانی رو چگونه و از چه روشی استفاده کنم در حد یه راهنمایی کوچیک نیز ممنون میشم بنده از آژاکس استفاده میکنم و راه حل این الگوریتمی که گفتم را نمیدانم
با توجه به توضیحات، اولین راه حلی که به ذهن می رسد این است که یک بلاک مشابه در سمت کاربر داشته باشید که در حالت عادی به صورت نامرئی (style none) باشد، یک موتور AJAX به فواصل زمانی مشخص اطلاعات سرور را چک کند، اگر برای آن کاربر پیامی در دیتابیس وجود داشت (تشخیص وجود پیام می تواند بر اساس ID کاربر و... باشد)، پیام دریافت و style بلاک نامرئی (none) با استفاده از کدهای JavaScript به صورت مرئی (block و...) تغییر حالت دهد، در این صورت می توان با تعامل چند زبان سمت کاربر و سرور به هدف مورد نظر رسید.
بهنام
۱۵:۵۸ ۱۳۹۴/۰۸/۰۳
سلام
if(isset($_GET['user']) == 'behnam')

if(isset($_GET['user']) && $_GET['user'] == 'behnam')
این دو کد استانداردش کدوم یکی هست؟
ایا ستفاده از اولی راه درستی است؟
روش اول صرفا true یا false بودن را بررسی می کند، لذا برای مورد شما مناسب نیست! راه دوم قابل استفاده است، البته بهتر است ابتدا پارامتر GET را در یک متغیر دریافت و سپس متغیر را در ادامه کدها استفاده کنید.
۱۴:۵۰ ۱۳۹۴/۰۷/۰۹
سلام
در کد php زیر متغیر point باید با هر بار اجرای فایل یکی اضافه شود اما از آنجا که این متغییر سیو نمیشه پس این کار عملی نیست.
این فایل php رو در یک آدرسی مثل آدرس زیر قرار میدم
http://onforoosh.ir/test.php
و اما انتظار دارم با هر بار بارگذاری این آدرس به عدد point یکی اضافه شود
لطفا راهنمایی کنید که باید چه کنم
متشکرم
<?php
$point++;
$str=<<<EOD
your code:
$point
EOD;
echo $str;
?>
قاعدتا اطلاعات هر اجرا در PHP تنها برای همان درخواست معتبر است و با اجرای بعدی، هیچ دسترسی به اطلاعات اجراهای دیگر وجود ندارد، جزء اینکه با روشی مانند ذخیره مقدار در یک فایل متنی یا ذخیره در دیتابیس بتوانید به آخرین تغییرات دسترسی داشته باشید.
akoo
۱۳:۵۱ ۱۳۹۴/۰۶/۲۰
استاد سلام خسته نباشید من دانشجوی ترم آخرم و این ترم پایان نامه تحویل میدم و میخوام یک سایت پرسش و پاسخ طراحی کنم ولی توی طراحی دیتابیسش مشکل دارم نمیدونم باید چند تا table بزارم واقعا سردرگم شدم اگه لطف کنین کمکم کنید واقعا ممنون میشم با تشکر......
دوست گرامی اینگونه سوالات واقعا پاسخ روشنی ندارند! بستگی به این دارد که نیاز برنامه شما چه چیزی باشد، به طور مثال آنچه که در اولین نگاه به ذهن می رسد باید یک جدول برای سوالات وجود داشته باشد (با ستون های فرضی id, user , question , date , status و...) و یک ستون برای جواب ها (با ستون های فرضی id, user, answer, question_id , is_true , points و...)، برای موارد دیگر مانند قسمت ثبت نام و اطلاعات اعضاء نیز به همین صورت، در کل بدون اینکه تجربه ساخت برنامه های کوچکتر را داشته باشید، نمی توان انتظار داشت که به راحتی بتوانید ساختار مناسبی برای برنامه های بزرگ طراحی کنید!
محمد
۲۲:۱۵ ۱۳۹۴/۰۶/۱۲
درود بر شما
یه سوالی داشتم من یه تابع تعریف کردم که چند تا متغیر داره و میخوام از بین اینها متغیر اولی چند تا پارامتر بگیره اما متغیره دومی یکی مثلا:
function n($n1,$n2){
echo $n1 + $n2
}
اما نمیشه مثلا من به n1 دو تا parameter ارسال کنم
و یک ، بذارم و برای n2 یکی.
این روشی که من رفتم راه دیگه:
$con = mysqli_connect('localhost', 'root', '', 'test');
function query($nameTable, $table, $value){
$totalTable = explode(',', $table);
$aTable = implode('`,`', $totalTable);

$totalValue = explode(',', $value);
$aValue = implode("','", $totalValue);
global $con;
mysqli_query($con, "INSERT INTO `".$nameTable."`(`".$aTable."`) VALUES('".$aValue."')");
}
query("pages", "title,header", "mohamamd hasankhani,jofdighfighf");
شما چه راهی را پیشنهاد میدهید
برای انتقال مقادیر چندگانه به تابع معمولا باید از آرایه استفاده کنید، برای مدیریت عناصر آرایه نیز باید با بحث حلقه ها (for، foreach و...) آشنا باشید، البته با توجه به نمونه کد و هدف شما، روشی که استفاده کرده اید خود به بحث توابع آرایه (مانند explode) مربوط می شود، اما باید دقت کنید که خروجی نهایی خطای Syntax نداشته باشد (برای خطایابی می توانید از var_dump ، echo یا print_r استفاده کنید) و پرس و جوی MySQL شما به درستی اجرا شود، در واقع تنها کاری که در این حالت انجام می دهیم، یک پرس و جوی ثابت را به صورت داینامیک تبدیل می کنیم.
۲۲:۰۴ ۱۳۹۴/۰۵/۲۹
با سلام
چطور میشه https در wampserver فعال کرد؟
مثلا وقتی مینویسیم https://127.0.0.1 کار کنه.
لطفا جواب بدید خیلی ضروریه.
انجام این کار ساده نیست و نیاز به طی مراحل متعددی دارد:
http://blog.facilelogin.com/2008/07/enabling-ssl-on-wamp.html

http://www.lmhproductions.com/31/how-to-setup-ssl-on-wamp/
بهنام
۰۴:۰۴ ۱۳۹۴/۰۵/۲۰
با تشکر
بله منظور منم همین بود میخوام یه سایتی طراحی کنم که امکانات مدیریت محتوا در ان وجود داشته باشد به طور مثال
صفحه ایجاد مطلب ویرایش مطلب دسته بندی ها قسمت نظرات بالاخره هر صفحه ای یه قالبی دارد و من با این کد ها در هر قسمت امکانات سایت
Index::settitle('دندان پزشکی');
Index::setkeywords('e');
Index::setscript('theme/script.js');
Index::setstyle('theme/style.css');
Index::setbody('theme/index.php');
Index::content();
عنوان صفحه را عوض میکنم و تم و استایل و کدهای قسمت بادی رو از یه صفحه دیگه بگیره مثلا نمیخوام هر صفحه این کد هارا تکرار کنم
 <html><head> و ...
همان طور که گفتیم از هر دو روش می توان به یک هدف رسید، منتها تفاوت کلاس معمولی با کلاس ثابت در موارد زیر است:
- ورودی کلاس معمولی را می توان در یک بار اجرا با مقدار متفاوتی جایگزین و نتیجه متفاوت دریافت کرد، اما کلاس ثابت در یک اجرا یک ورودی ثابت و یک نتیجه ثابت برمی گرداند (می توان پارامترهای جمعی را به صورت یک آرایه نیز به کلاس ثابت وارد کرد، اما این آرایه در طول اجرای کدها قابل تغییر نیست).
- مزیت کلاس ثابت این است که بدون فراخوانی (بدون استفاده از new) می توان در هر کجای کدها که کلاس در دسترس باشد، از آن استفاده کرد.
بهنام
۱۶:۴۱ ۱۳۹۴/۰۵/۱۹
سلام استاد عزیز من یه برنامه ای نوشتم آیا از این روش استاتیک درست و استاندارد است یا خیر؟ اگه خیر روش استانداردش چگونه است؟
<?php
class Index{
private static $_title = '',
$_keywords = '',
$_style = '',
$_script = '',
$_body = '';
public static function Settitle($title){
static::$_title = $title;
}
public static function setkeywords($keywords){
static::$_keywords = $keywords;
}
public static function setstyle($style){
static::$_style = $style;
}
public static function setscript($script){
static::$_script = $script;
}
public static function setbody($body){
static::$_body = $body;
}
public static function content(){
echo "<!doctype html>\n".
"<html>\n".
"<head>\n".
"<meta charset=\"utf-8\">\n".
"<title>".static::$_title."</title>\n";
if(static::$_keywords != '')
echo "<meta name=\"keywords\" content=\"".static::$_keywords."\">\n";
if(static::$_style != '')
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".static::$_style."\">\n";
if(static::$_script != '')
echo "<script language=\"javascript\" type=\"text/javascript\" src=\"".static::$_script."\"></script>\n";
echo "</head>\n\n".
"<body>\n";
require_once(static::$_body);
echo "\n</body>\n".
"</html>";
}
}

Index::settitle('دندان پزشکی');
Index::setkeywords('e');
Index::setscript('theme/script.js');
Index::setstyle('theme/style.css');
Index::setbody('theme/index.php');
Index::content();
?>
با تشکر
دقیقا متوجه منظور سوالتان نشدیم! هر نوع متدی در برنامه نویسی معمولا برای یک هدف خاص مناسب تر است، در اینجا نیز از static برای ایجاد مقادیر ثابت و تغییر ناپذیر در طول برنامه استفاده می شود که باید ببینید آیا واقعا در برنامه شما داده ها در طول حیات کد قرار نیست هیچ تغییری کنند؟ (به طور مثال از کلاس در یک حلقه با مقدار ورودی متفاوت استفاده نخواهد شد) اگر اینطور باشد که روش شما صحیح است، اما در حالت معمول با آبجکت های private یا public نیز می توان همان ساختار و خروجی را به دست آورد، با این تفاوت که از یک کلاس با نمونه ورودی های متفاوت و دخل و تصرف بیشتر می توان استفاده کرد، لذا صرفا شرایط و نیاز برنامه مهم است نه خود روش.
نکته: از شیوه static بیشتر زمانی استفاده می شود که بخواهید یک کلاس، بخشی از یک فرآیند ثابت را انجام داده و نتیجه را به کلاس یا تابع دیگری برگرداند، معمولا کلاس های ثابت نقش فرعی در یک برنامه دارند و قسمت عمده فرآیند در کلاس های معمولی (با آبجکت های public و private) انجام می شود که قابل توسعه و استفاده چند باره (multiple-instance) هستند.
مسعود
۰۴:۵۰ ۱۳۹۴/۰۵/۱۱
سلام
من هرچه دنبال اموزش php مناسب برای افراد مبتدی می گشتم، اموزشهای خوبی پیدا کردم ولی تقریبا همه طوری اموزش دادن که گویی آدمی که میخواد اموزش ببینه از قبل یه چیزایی از php بلده به همین خاطر برخی مفاهیم این زبان رو درک نمی کردم اما وقتی نگاهی به اموزش شما کردم دیدم که ساده و اصولی بخش مقدماتی را اماده کردین و از شما خواهشمندم به این رویه درست، ادامه بدین.
ممنون.
سعید
۲۲:۳۳ ۱۳۹۴/۰۴/۲۲
ممنون از راهنمایی تون... اشکال کارمو فهمیدم. تو وارد کردن آدرس مشکل داشتم. آدرس درست رو همونطور که خودتون گقتید وارد کردم اما با خطای Not Found مواجه شدم. البته WampServer هم فعال و سبز بود. آدرس رو به شکل زیر وارد کردم، آیا درسته؟ (my اسم فایل php ام هست)
http://localhost/my.php
در صورتی که فایل my.php مستقیما در فولدر www باشد، آدرس صحیح است، در غیر این صورت نام فولدر یا فولدرها نیز باید در آدرس باشد، به فرض اگر فایل در فولدر test باشد، باید آدرس به نحو زیر تغییر کند:
http://localhost/test/my.php
سعید
۲۰:۰۶ ۱۳۹۴/۰۴/۲۰
WampServer نصب هست و فایل رو تو مسیر
C:\WampServer\www
قرار دادم. وقتی یه دستور هیدر رو مینویسم اجرا میشه و تو بروزر نشون میده اما وقتی دستور php می نویسم هیچ چیزی نمایش نمیده. این دستورایی که نوشتم به این صورته:
<!DOCTYPE html>
<html>
<head>
<title>
Test page
</title>
</head>
<body>
<section>
<article>
<header>
<h2>
Test page
</h2>
</header>
<?php
$text = "Hello";
echo $text;
?>
</article>
</section>
</body>
</html>
دستورات شما هیچ مشکلی ندارند، ابتدا باید دقت کنید که آیکن برنامه WampServer در نوار وظیفه ویندوز به رنگ سبز باشد، سپس باید آدرس فایل را در نوار آدرس مرورگر به صورت نمونه زیر وارد کنید:
http://localhost/your-file.php
اگر با این وجود هیچ چیز روئیت نمی شود، نیاز به بررسی سیستم با TeamViewer دارد و متاسفانه کار دیگری نمی توان کرد.
سعید
۱۳:۴۷ ۱۳۹۴/۰۴/۲۰
با سلام
من اخیرا شروع به یادگیری php کردم و مبتدی هستم، من تو dereamweaver دستور جمع اعداد رو تایپ کردم ولی بعد از ذخیره و اجرای اون هیچ چیزی برای من به نمایش در نیومد! حتی دستور تکست ساده هم تایپ کردم همین اتفاق افتاد. میخواستم بدونم که چرا چیزی نمایش داده نشد و چه باید انجام بدم. ممنون میشم راهنمایی کنید.
این هم لینک عکس که از دریم ویور گرفتم.
http://www.up.farsroid.com/uploads/143660602555421.png
- آیا یک برنامه سرور مجازی مانند WampServer در سیستم خود نصب کرده اید؟
- فایل را به چه روش و آدرسی فراخوانی می کنید؟
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
1 × 6
20 × 20
=