i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
parsgreen.com
article

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

php

ایجاد وبسایت های استاتیک با صفحاتی از پیش طراحی شده مدتها است که جای خود را به صفحات داینامیک داده و دیگر کم تر سایتی را می توان یافت که محتوایش خط به خط به شیوه سنتی کدنویسی شده باشد، زبانهایی مثل asp , php و... تحولی نوین در وب ایجاد کرده و رفته رفته گوی سبقت را از دیگران ربودند، اما چرا php را انتخاب کنیم؟ پاسخ به این سوال به عوامل زیادی مربوط می شود چرا که هیچ زبانی کامل نیست ولی با توجه به مزیت ها از جمله رایگانی پی اچ پی، امکانات و قدرتمندی، دسترسی به منابع مختلف، سازگاری با انواع سرورها، استفاده گسترده و... توصیه می کنیم اگر علاقمند به فراگیری علم برنامه نویسی وب هستید پس از آموختن کلیاتی از css, html و javascript حتما دانشتان را با php کامل کنید، درست است که برنامه های مدیریت محتوا (CMS) کار را خیلی راحت کرده اند اما همیشه ایده هایی وجود دارند که در قالب آنها نمی گنجند و یا مشکلاتی پیش می آید که به دلیل مبهم بودن کدنویسی دیگران، ممکن است نتوانید آنها را رفع کنید یا دچار مشکل شوید.

آموزش php


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

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


از آنجایی که php یک زبان سمت سرور (server side) است برای اجرای آن در سیستم خود نیاز به برنامه هایی تحت عنوان سرور مجازی دارید که امروزه به صورت رایگان در دسترس هستند، برای نمونه یکی از بهترین ها در آدرس زیر قابل دسترس است:
www.wampserver.com
همچنین:
www.appservnetwork.com
و همچنین:
www.apachefriends.org
پس از نصب هر یک برنامه های WampServer، AppServ یا XAMPP اکنون شما قادر به اجرای فایل های php روی سیستم خودتان خواهید بود، البته فایلتان را باید در ریشه سرور مجازی که معمولا پوشه ای با عنوان www است کپی نمائید؛ سپس در مرورگرتان به فرض عبارت http://localhost/example.php را بنویسید تا فایل example.php از فولدر www فراخوانی شود، اگر هم که به یک سرور آنلاین دسترسی دارید کار خیلی راحت تر است و کافی است فایلتان را به سرور منتقل کنید.

چند مثال با php


از آنجایی که فلسفه پیدایش php ایجاد صفحات داینامیک و استفاده از آن در وب بوده، لذا قابلیتهای این زبان در کنار کدهای ساده html قابل دسترسی است و این یکی از نقاط قوت آن محسوب می شود؛ برای شروع و آشنایی بیشتر به کدها و مثال های زیر توجه کنید:
<?php
echo "اولین کد php من!";
?>
توضیح:
- کدهای php بین دو تگ علامت سوال ، php و علامت سوال نوشته می شوند (شیوه استاندارد).
- دستور echo مقادیر را به خروجی ارسال می کند.
حال به کد زیر توجه کنید:
<?php
$text = "اولین کد php من!";
echo $text;
?>
پیش نمایش
توضیح:
- در کد بالا عبارت اولین کد php من! به جای پرینت مستقیم، ابتدا به یک متغیر داده شده و سپس آن متغیر به خروجی داده می شود (علامت $ نشان دهنده تعریف یک متغیر است).
حال به مثال زیر توجه کنید:
<?php
$num1 = 20;
$num2 = 50;
$total = $num1 + $num2;
echo $total;
?>
پیش نمایش
توضیح:
- کد بالا مقدار متغیر total را به خروجی خواهد داد و متغیر total برابر است با حاصل جمع دو متغیر num1 و num2 که اعدادی به دلخواه به آنها داده ایم.
- در آینده در رابطه با نحوه استفاده و تعریف متغیر ها بیشتر خواهیم گفت و مثال های بیشتری مطرح خواهیم کرد.
مثالی دیگر:
<?php
$name = 'webgoo.ir';
if ($name == 'webgoo.ir'){
    $hi = 'سلام وبگو!';
}
else{
    $hi = 'سلام ناشناس!';
}
echo $hi;
?>
پیش نمایش
توضیح:
- if (اگر) و else (در غیر اینصورت) برای ایجاد شرط به کار می روند و علامت == نشان دهنده برابری دو طرف آن است.
تقریبا هر آنچه که از وب بخواهید با php دستیافتنی است؛ در ادامه مطالب آموزشی در این باره بیشتر خواهیم گفت.
sectionدسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
» توابع کار با آرایه در PHP - بخش سوم
» آشنایی و کار با متغیر ها (Variables) در php
» توابع کار با آرایه در php - بخش اول
» کار با switch و case در php
» حلقه for و while در php
commentنظرات (۱۰۴ یادداشت برای این مطلب ارسال شده است)
نویسنده: نعمت
زمان: ۰۱:۳۴:۵۷ - تاریخ: ۱۳۹۲/۰۴/۲۵
سلام. ببخشید از php هم میشه برای ساخت نرم افزارهای چند رسانه ای تحت ویندوز هم استفاده کرد. ممنون
پاسخ: 
سلام
خیر، PHP به صورت تخصصی در زمینه برنامه های تحت وب کاربرد دارد؛ در لوکال تنها از طریق سرور مجازی و البته در بستر مرورگر قابل اجرا است.
نویسنده: مهمان
زمان: ۱۲:۴۷:۵۹ - تاریخ: ۱۳۹۲/۰۵/۱۷
سلام عید فطر مبارک می خواستم بپرسم من برنامه نویسی صفحه وب رو با html شروع کردم 1- این کار منطقیه یا با زبان دیگه ای شروع کنم؟ 2-چقدر طول می کشه تا یک صفحه وب عالی طراحی کنم؟
با تشکر
پاسخ: 
سلام
قاعدتا شروع یادگیری هر کاری باید از مقدمات باشد، در مورد وب نیز مقدمه کار یادگیری HTML است، لذا کار شما کاملا منطقی و درست است!
در مورد زمان مورد نیاز، بستگی به استعداد، تمرین و میزان زمانی دارد که برای یادگیری صرف می کنید، در حد HTML و CSS چیزی بین یک تا دو سال، اما در مورد زبان های برنامه نویسی وب مانند PHP و... کمی بیشتر.
نویسنده: SABERI
زمان: ۲۲:۴۶:۴۸ - تاریخ: ۱۳۹۲/۰۶/۰۲
برتریه ‏PHP‏ نسبت بهASP.NET چیه؟
پاسخ: 
پاسخ این سوال معمولا سلیقه ای است و بستگی به نیاز و هدف شما دارد، PHP یک زبان متن باز است و فارق از بسیاری از محدودیت های دست و پا گیر محصولات مایکروسافتی است، شاید همین موضوع از دید برخی یک ضعف محسوب شود (بیشتر آنهایی که به کار با خانواده محصولات مایکروسافت عادت کرده اند یا از نظر کاری صرفا در این حیطه فعالیت می کنند)، برخی از مزیت های واقعی PHP:
- سازگاری با انواع مختلف سرورها (لینوکس، ویندوز و...)
- بسیاری از مشکلات شما در برنامه نویسی از قبل توسط جامعه وسیع کاربران در سراسر دنیا حل شده (صرفه جویی در وقت و جلوگیری از سردرگمی و انصراف از نوشتن برنامه ها).
- syntax روان و قابل فهم در عین قدرتمندی (برنامه نویسی با PHP لذت بخش است!، امکان استفاده کاربران با هر سطحی از آشنایی وجود دارد).
- توابع درونی فراوان برای کار با پروتکل های وب، پایگاه داده، تصاویر گرافیکی و... (PHP به صورت اختصاصی برای وب طراحی شده).
- وجود سایت php.net، مرجعی ارزشمند از توضیحات و راهنمایی هایی که کار آموختن PHP را آسان می کند.
- به روزرسانی و رفع معایب مفسر PHP به صورت متناوب و با نظمی خاص.
- استفاده زیاد بین کاربران (مشتری زیاد برای برنامه نویسان PHP!).
- سرعت اجرای بالای کدها در مقایسه با ASP (هرچند محل اختلاف است، اما در قضاوتی عادلانه PHP کمی سریع تر از زبان های مشابه عمل می کند).
- توابع و امکانات از پیش تعریف شده برای url rewrite و regular expression که در وب بسیار کاربرد دارند.
- امکان تبدیل هر ایده ی عملی تحت وب به واقعیت با PHP (قدرتمندی).
- پشیبانی از برنامه نویسی معمولی و شی گراء.
- وجود برنامه هایی مانند Adobe Dreamweaver، NetBeans IDE و... که کار کدنویسی را بسیار آسان می کنند.
و...
در کل PHP و ASP.NET دو دنیای متفاوت هستند که تنها با تجربه هر دو مورد می توانید زبان بهتر را انتخاب کنید.
نویسنده: masoome
زمان: ۱۹:۵۴:۴۱ - تاریخ: ۱۳۹۲/۰۷/۲۲
سلام من تازه شروع به برنامه نویسی به زبان php کردم، و به مشکل خوردم! وقتی از دستور action در فرم استفاده می کنم و اطلاعات رو به صفحه جدیدی میفرستم متغیرها ناشناخته هستند!
<form method = "post" action = "handleform.php">
first name <input type = "text" name = "FirsName" size = "20"><br>
last name <input type = "text" name = "LastName" size = "40"><br>
comment <textarea name = "Comment" rows = "5" cols = "40" ></textarea><br>
<input type = "submit" name = "Submit" value = "go">
</form>
////////////////////////
<?php
print "$FirstName<br>";
print "$LastName<br>";
?>
در کدهای بالا
$firstname c
را نمیشناسد!
از نرم افزار easyphp استفاده میکنم
پاسخ: 
سلام
باید ابتدا متغیرها را از طریق متد POST دریافت و ست کنید، سپس بتوانید از آنها خروجی بگیرید (رجوع کنید به مبحث نحوه استفاده از متد GET و POST در PHP).
نویسنده: farhad
زمان: ۱۹:۵۹:۰۵ - تاریخ: ۱۳۹۲/۰۷/۲۴
برای طراحی سایت چه نرم افزار لازم است
پاسخ: 
برای زبان های متن باز مانند PHP انتخاب های زیر جزء بهترین ها هستند:
- Adobe Dreamweaver
- NetBeans IDE
نویسنده: masoome
زمان: ۲۰:۱۵:۲۲ - تاریخ: ۱۳۹۲/۰۷/۲۷
سلام
ببخشید من قسمتی که گفتید رو خوندم ولی زیاد نفهمیدم
اگه امکانش هست رو کدی که فرستادم میشه بگید که باید چکار کنم؟ و چطور اطلاعات یک فرم را به صفحه دیگر انتقال دهم؟
با تشکر فراوان
پاسخ: 
سلام
اگر این اطلاعات فرم صفحه اول باشد:
<form method = "post" action = "handleform.php">
first name <input type = "text" name = "FirsName" size = "20"><br>
last name <input type = "text" name = "LastName" size = "40"><br>
comment <textarea name = "Comment" rows = "5" cols = "40" ></textarea><br>
<input type = "submit" name = "Submit" value = "go">
</form>
اطلاعات پس از ارسال در فایل handleform.php به شکل نمونه زیر قابل دریافت هستند:
<?php
$name = $_POST['FirsName'];
$family = $_POST['LastName'];
$comment = $_POST['Comment'];
?>
نویسنده: neda
زمان: ۱۶:۰۳:۱۱ - تاریخ: ۱۳۹۲/۰۷/۲۹
سلام خسته نباشید
آیا میشه برنامه ای به زبان مثلا ++c یا #c داشته باشیم در محیط php بنویسیم یا نه ؟
یه سوال دیگه هم داشتم من یه برنامه به نام komodo IDE نصب کردم که تازگیها پایتون این برنامه داده بیرون چون من یه برنامه پایگاه داده دارم درست می کنم میخواستم از این برنامه که میشه تو محیطش php نوشت استفاده کنم سوال من اینکه میتونم از این محیط برای نوشتن زبان php استفاده کنم؟
پاسخ: 
سلام
امکان ترکیب ++c یا #c با PHP (حداقل به آسانی) وجود ندارد، برای این کار باید یک extension بنویسید که خیلی کار ساده ای نیست، ضمن اینکه زبان های دسته اول برای اپلکیشن های دسکتاپ استفاده می شوند و PHP برای وب، اما از komodo IDE می توانید برای کدنویسی به زبان های PHP, Python, Perl, Ruby و... استفاده کنید.
نویسنده: محمدرضا
زمان: ۰۰:۰۱:۳۴ - تاریخ: ۱۳۹۲/۰۸/۱۴
سلام
خسته نباشید
میخوام وقتی تعداد پست های صفحه مثلا به 21 رسید اولین پست بره صفحه 2 و همینطور وقتی به 22 رسید دومین پست بره صفحه 2 یعنی میخوام تو هر صفحه فقط 20 تا پست نمایش داده بشه و همینطور میخوام صفحه هایی که ایجاد میشه شمارش همون جایی که براش مشخص کردم ظاهر بشه
در واقع میخوام یه چیزی شبیه همین شماره صفحه که تو همین صفحه هست برای سایتم بسازم
میخواستم راهنماییم کنید که چه کد هایی برای php و sql باید بنویسم
اگر ممکنه سورسش رو برام بزارید
ممنون میشم
پاسخ: 
سلام
در قسمت جستجوی سایت عبارت "صفحه بندی" را وارد کنید.
نویسنده: محمدرضا
زمان: ۱۵:۰۳:۴۶ - تاریخ: ۱۳۹۲/۰۸/۲۵
سلام
خسته نباشید
میخواستم بپرسم چطوری میشه متغیر ها رو از یه صفحه php به صفحه دیگه ارسال کرد، مثلا من یه فرم رو با متد post به یک صفحه php ارسال کردم و عملیات اعتبار سنجی رو انجام دادم حالا میخوام اگر اطلاعات غلط بود برگرده صفحه فرم که با این دستور انجام میشه
header("Location: Form.html")
و اگر اطلاعات درست بود متغیر هایی که اطلاعات توشون ذخیره شده مثل
$user=$_POST['user'];
$pass=$_POST['pass'];
$pass2=$_POST['pass2'];
$email=$_POST['email'];
رو بفرسته به یک صفحه دیگه که یه سری عملیات دیگه مثل نمایش روشون انجام بشه یعنی منظورم اینه که میخوام مثلا
$user
رو بفرستم به یه صفحه دیگه مثلا با این آدرس
welcom.php
رو در اونجا echo کنم
echo ("$user");
پاسخ: 
سلام
برای این کار چند راه وجود دارد، راه حل اول و توصیه شده استفاده از session در PHP است که خود بحث مفصلی دارد؛ راه حل دوم ست کردن متغیرها به عنوان پارامتر در آدرس لینک به صورت متد GET است که در لینک مقصد (صفحه باید با فرمت php باشد) قابل دریافت است (برای اطلاعات طولانی یا حساس توصیه نمی شود)، راه حل دیگر استفاده از توابعی مانند CURL است که البته در مورد حالت شما چندان کاربردی ندارد، روش دیگر ذخیره موقت داده ها در دیتابیس و فراخوانی آنها در مواقع مورد نیاز است.
نویسنده: محمدرضا
زمان: ۱۹:۳۲:۳۹ - تاریخ: ۱۳۹۲/۰۸/۲۵
میشه یه سورس ساده قرار بدید که با session چطور این کار رو بکنم؟
خیلی جزئی با session آشنایی دارم
پاسخ: 
بحث سشن از جمله مباحث پیشرفته است، سورس ساده ای برای آن نمی توان مثال زد، باید این بحث را کامل درک کنید، لطفا در وب جستجو نمائید.
نویسنده: یحیی
زمان: ۲۱:۲۴:۱۷ - تاریخ: ۱۳۹۲/۱۰/۰۱
در php با تابع substr می‌توان یک قسمت از رشته را انتخاب کرد ولی با توجه به اینکه تعداد کاراکترهای فارسی درست شناسایی نمیشه چطور باید مثلا 200 کاراکتر اول متن رو انتخاب کرد.
پاسخ: 
مبنای کار تابع substr بر اساس single-byte است نه کاراکتر، چون در زبان فارسی (و در کل UTF-8) کاراکترها multi-byte هستند، لذا باید از تابع mb_substr استفاده کنید، مثال:
<?php
$text = 'این یک متن آزمایشی است';
$result = mb_substr($text, 0, 20, 'UTF-8');
echo $result;
?>
همچنین آموزشی جداگانه در این خصوص در سایت وجود دارد، عبارت "پاراگراف" را در قسمت جستجو وارد کنید.
نویسنده: محمدحسین
زمان: ۱۸:۵۸:۳۸ - تاریخ: ۱۳۹۲/۱۰/۱۲
من دارم یک وبسایت مینویسم که توش از جاوا اسکریپت و سی اس اس در کنار اچ تی ام ال استفاده شده. اما توی صفحه نخستش بخشیش رو نیاز دارم که پی اچ پی بذارم. باید کل صفحه اولم رو پی اچ پی کنم؟ ؟اگه پی اچ پی بشه توی سرعت و حجمش چه تاثیری میزاره تغییری میکنه؟
پاسخ: 
برای اجرای کدهای PHP باید فرمت فایلتان php باشد، در این صورت (چون PHP یک زبان HTML Embed است) می توانید علاوه بر دستورات PHP، کدهای ساده HTML و... را نیز مانند حالت معمولی درج کنید، منتها باید به خاطر داشته باشید که PHP یک زبان سمت سرور است و برای اجرا نیاز به یک سرور (یا سرور مجازی) دارد و صرف فراخوانی مستقیم فایل در مرورگر کفایت نمی کند، از نظر سرعت و... قاعدتا هر چه میزان پردازش ها بیشتر باشد، سرعت نیز کمتر خواهد شد، البته این مسئله در اغلب موارد (بسته به نوع کدنویسی و حجم اطلاعات) آنقدر محسوس نیست که مشکلی به حساب بیاید!، در وب امروز کمتر سایتی را می توان دید که از برنامه نویسی سمت سرور (PHP، ASP و...) استفاده نکند.
نویسنده: شاهین
زمان: ۱۲:۱۲:۲۶ - تاریخ: ۱۳۹۲/۱۰/۲۸
ببخشید من IIS رو فعال کردم فایل رو هم تو پوشه www با پسوند php. ذخیره کردم ولی جواب نمیده خواهشا منو راهنمایی کنین.
پاسخ: 
IIS اساسا برای اجرای کدهای ASP است، برای اجرای PHP در لوکال بهتر است سرور Apache داشته باشید، از برنامه هایی مانند WampServer استفاده کنید.
نویسنده: بهنام
زمان: ۲۰:۱۳:۳۵ - تاریخ: ۱۳۹۲/۱۲/۰۵
سلام خسته نباشید بازم بابت آموزش های مفیدتون ممنونم
من یه همچین کدی نوشتم
<?php
session_start();
if(!isset($_SESSION['adminlog'])){
?>
<form method="post">
<div class="title">
<strong>ورود به پنل مدیریت</strong>
</div>
<table>
<tr>
<td align="left">نام کاربری:</td>
<td align="right"><input type="input" name="user" /></td>
</tr>
<tr>
<td>رمز عبور:</td>
<td><input type="password" name="pass" /></td>
</tr>
</table>
<input class="submit" type="submit" name="sub" value="ورود به پنل مدیریت" />
</form>
<?php
define('USERNAME','chatshitonha@');
define('PASSWORD','admin');
if(isset($_POST['sub'])){
$user = $_POST['user'];
$pass = $_POST['pass'];
if(($user != '' && $pass != '') && ($user == USERNAME && $pass == PASSWORD)){
$_SESSION['adminlog'] = md5(USERNAME);
echo "<script type='text/javascript'>window.location.href = '';</script>";
}else{
echo "<p>نام کاربری یا رمز عبور اشتباه میباشد</p>";
}
}
die();
?>
و آن را به اسم پسورد دات پی اچ پی ذخیره کردم و در تمامی فایل های سایتم آن را اینکلود می کنم
<?php include('../password.php'); ?>
و این ارور را میده
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/chatshit/public_html/jensiat/index.php:1) in /home/chatshit/public_html/password.php on line 2
ولی اما اگر بجای اینکلود اون فایل ها رو کپی کنم ارور رفع میشه ولی من 20 تا فایل دارم و میخواهم اینکلود کنم لطفا راهنمایی کنیم خیلی ممنون
پاسخ: 
سلام
به خاطر داشته باشید:
- در هر بار اجرای کدها تنها یک تابع session start باید اجرا شود.
- کدهای بالاتر از تابع سشن نباید هیچ نوع خروجی داشته باشند، حتی کاراکترهای نامرئی BOM، برای اطمینان فایل های خود را با ویرایشگر ++Notepad باز و از قسمت Encoding گزینه Encode in UTF-8 without BOM را انتخاب کنید.
با توجه به نکته های بالا می توانید فایل هایتان را include کنید.
نویسنده: بهنام
زمان: ۲۲:۲۴:۵۵ - تاریخ: ۱۳۹۲/۱۲/۰۵
سلام
مشکلم حل شد خیلی ممنون بابت کمکتون
من یک عالمه سشن استارت کردم تو سایتم میخوام وقتی یک دکمه رو زد کاربر هرچی سشن هست unset بشن و این تابع خاصی وجود دارد یا خیر؟
مثلا من 20 سشن به نام های مختلف دارم و برای آنست کردنشان باید تک تک با
unset('')
نام سشن ها رو وارد کنم و این باعث کندی میشه میخوام تابعی بهم معرفی کنید که کل سشن های باز شده رو غیر فعال کنه لطفا کمکم کنید
پاسخ: 
سلام
session_unset();
این تابع تمام سشن آی دی های ست شده را باطل می کند.
paged صفحه 2 از 7




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

6 × 9
 refresh
آگهی
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...
پرشین آی تی
Persianit.net

آموزش و دانلود پروژه های برنامه نویسی سی شارپ (#C)