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 - بخش دوم
» توابع کار با آرایه در PHP - بخش سوم
» آرایه (Array) در برنامه نویسی php
» توابع (Functions) در php
» توابع کار با آرایه در php - بخش اول
commentنظرات (۱۰۲ یادداشت برای این مطلب ارسال شده است)
نویسنده: حسین
زمان: ۲۳:۴۴:۵۵ - تاریخ: ۱۳۹۱/۰۹/۳۰
سلام خسته نباشید. یه سوال میشه مستقیم در شرط های if مستقیم کد پی اچ پی نوشت؟
مثلا من می خوام این کد بیاد تو یک شرط باید چه کنم مهندس؟
<?php
@session_start();
$key=$_SESSION['count'];
$imag = $_POST['number'];
$user = md5($imag);
//echo "$imag = = = $key<br>";
//echo("$user");
if($user==$key)
{
ob_start();
$URL="get.php"; header ("Location:$URL");
ob_end_flush();
}
else{
echo "! کد وارد شده اشتباه است<br>
برگشت را زده و دوباره با دقت کد را وارد کن&#1740;د";}
?>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
<title> PARSCMS.NET </title>
<style>
body {
font-family:tahoma;
font-size: 12px;
background :#eee;
}
a {
text-decoration: none;
}
</style>
</head>
<center>
<br />
<a href="http://site.com/">برگشت به صفحه اصلی</a>
</center>
پاسخ: 
سلام
برای این مواقع معمولا فایل را به صورت include در صفحه اصلی (درون شرط if) قرار می دهند، به طور مثال اگر کد فعلی در فایل فرضی check.php باشد، می توان به شکل نمونه زیر در صفحه مورد نظر include کرد:
if($your_var == TRUE){
include('check.php')
}
البته چون از سشن در کد استفاده شده باید دقت کنید قبل از دستور if هیچ خروجی دیگری به مرورگر ارسال نشود (حتی کاراکترهای نامرئی BOM).
نویسنده: ehsan
زمان: ۱۴:۱۲:۱۹ - تاریخ: ۱۳۹۱/۱۲/۲۳
دوباره سلام
نمیدونستم این سوال رو کجا بپرسم. من یک فایل دارم که اون رو داخل یک فایل دیگر با دستور include ضمیمه کرده ام حالا نمیخوام کسی به فایل اولی به صورت مستقیم دسترسی داشته باشه، فقط فایل اصلی بتونه ازش استفاده کنه.
با تشکر
پاسخ: 
سلام
برای این کار چند روش وجود دارد، در ابتدای فایل اصلی، با استفاده از define یک مقدار تعریف کنید، به طور مثال:
<?php
define('Index', TRUE);
include('example_file.php');
?>
و سپس در فایل include شده وضعیت متغیر فوق را بررسی کنید، اگر وجود داشت محتوای آن در دسترس باشد:
<?php
if(defined('Index')){
//محتوای فایل
}
else{
//دسترسی غیرمجاز
}
?>
روش دیگر استفاده از htaccess است که البته به طور کلی دسترسی به فایل به صورت مستقیم غیر ممکن می شود، بدین منظور در یک فایل htaccess. نمونه دستورات زیر را قرار دهید:
RewriteEngine On
RewriteRule ^(example_file\.php) - [F,L,NC]
این دستور تمام درخواست هایی که در قسمتی از آن عبارت example_file.php باشد را بلاک می کند.
نویسنده: ehsan
زمان: ۱۳:۵۰:۲۲ - تاریخ: ۱۳۹۱/۱۲/۲۵
سلام
میخواستم ببینم چطوری اطلاعات رو میشه به این روش از پایگاه داده خوند.
section/آموزش-مقدماتی/html
من همیشه با گرفتن اطلاعات به روش get اطلاعات رو از پایگاه داده میخوندم.
مثلا:
catagory.php?id=4
بعد با کمک ای دی اطلاعات مربوط به رکورد رو نمایش میدادم.
پاسخ: 
سلام
باید با نحوه کار فایل htaccess. و دستورات url rewrite (دوباره نویسی لینک ها) در آن آشنا باشید، بدین منظور می توانید از قسمت جستجوی سایت، عبارت url rewrite را جستجو کنید.
نویسنده: سرباز
زمان: ۱۴:۵۲:۳۱ - تاریخ: ۱۳۹۲/۰۱/۲۳
سلام
یه ؟ داشتم
وقتی صفحه های پیش نمایش رو می بینم در کد صفحه نتیجه نهایی به صورت کد نوشته شده...
مگه نباید فقط برنامه پی اچ پی نوشته بشه و نتیجه نهایی بدون نوشتن کد مجدد در صفجه نمایش داده بشه؟
پاسخ: 
سلام
در پیش نمایش، تنها به قسمت خروجی دقت کنید، کدهایی که ملاحظه می کنید جهت راهنمایی بیشتر و با نمایشی کردن تگ های PHP درج شده اند.
نویسنده: zahra
زمان: ۱۲:۵۷:۴۰ - تاریخ: ۱۳۹۲/۰۲/۱۵
سلام
من یه فرم با html طراحی کردم که یوزر و پسورد میگیره و
با زدن دکمه submit گفتم محتوای تکست باکس یوزر رو در همون صفحه نمایش بده
مشکلم اینه که وقتی دوباره وارد صفحه وب میشم محتوای قبلی تکست باکس رو روی صفحه میبینم
خواهش میکنم کمکم کنید این مشکل رو رفع کنم
پاسخ: 
سلام
برای انجام این کار از چه روشی استفاده می کنید؟
لطفا نمونه کدی قرار دهید.
نویسنده: zahra
زمان: ۱۳:۳۲:۲۹ - تاریخ: ۱۳۹۲/۰۲/۱۵
از php html
<html>
<head>
<title>ورود</title>
</head>
<body>
<table border=2 height=100% width=100%>
<tr >
<td colspan=3 height=15% width=100% align="center" bgcolor=red>
<font size=10 color=ffffff><B> گل ها وگیاهان خانگی </b> </font>
</td>
</tr>
<tr>
<td height=100% width=10% align=center>
</td>
<td height=100% width=75% >
<align=right> : برای ورود نام کاربری و رمز عبور خود را وارد کنید </right>
<form method="post" action="homework.php">
<left>نـــام کـاربری : <input type="text" name="username"> <br><br>
<left>رمـــز عبـــور : <input type="password" name="pass"><br>
<center>
<input type="submit" value="submit">
</form><hr>
<?php

$user=$_POST['username'];
print $user ;

$_POST['username']=NULL;

?>
</td>
<td height=100% width=10% align=center>

</td>
</tr>
<tr >
<td colspan=3 height=10% width=100% align="center">
بـــا تشکــر از شـمــا
</td>
</tr>
</table>
</body>
</html>
پاسخ: 
کد تست شد، چنین مشکلی وجود ندارد!
متغیر user مقادیرش را از متد POST می گیرد و این مقادیر تنها زمانی وجود دارد که فرم ارسال شده باشد، کد شما خروجی دیگری چاپ نمی کند!
شاید منظور سوال شما این است که بعد از بازگشت مجدد، نام کاربر را نمی بینید؟
نویسنده: zahra
زمان: ۱۵:۳۲:۴۲ - تاریخ: ۱۳۹۲/۰۲/۱۵
ممنون از اینکه وقت گذاشتید
منظورم اینه که وقتی مقدار یوزر رو وارد تکست باکس میکنم مثلا زهرا مقدارش روی صفحه چاپ میشه
اما وقتی صفحه رو refresh میکنم هنگام بالا اومدن صفحه مقدار زهرا رو نمایش میده و من میخوام این اتفاق نیفته
امیدوارم تونسته باشم منظورم رو بیان کنم
پاسخ: 
کد شما در صورتی خروجی چاپ می کند که مقادیر فرم به نحوی برای آن ارسال شود، به طور مثال هنگامی که یک بار فرم را ارسال می کنید، با رفرش صفحه در همان لحظه، مرورگر یک بار دیگر نیز مقادیر قبلی را برای کد شما ارسال خواهد کرد، (البته این حالت در همه مرورگرها وجود ندارد)، برای اطمینان، بعد از ارسال فرم، پنجره را بسته و مجددا امتحان کنید، نباید هیچ خروجی در این صورت چاپ شود، در غیر این صورت ممکن است مشکل از موارد دیگری باشد، به طور مثال تنظیمات PHP یا استفاده از توابعی دیگر که در نمونه کد قرار نداده باشید و...
سعی کنید از سربرگ های html استاندارد به همراه متاتگ نیز استفاده کنید (هر چند این نمی تواند دلیل مشکل باشد)، باید ببینید متغیر شما از چه طریقی مقداردهی می شود، متد POST یعنی از طریق ارسال پارامتر از یک فرم.
نویسنده: zahra
زمان: ۲۰:۵۲:۲۲ - تاریخ: ۱۳۹۲/۰۲/۱۵
بازم ممنون که توجه کردید
وقتی صفحه رو میبندم و دوباره باز میکنم این پیغام رو میده
Notice: Undefined index: username in C:\wamp\www\homework\homework.php on line 25
پاسخ: 
این یک پیام از نوع توجه بیشتر (Notice) است و در واقع معمولا خطای کلیدی نیست، دلیل آن هم این است که مقادیر متغیر user در حالتی که فرم هنوز ارسال نشده، خالی است، برای جلوگیری از نمایش این پیام، در مقابل این متغیر علامت @ قرار دهید، مثال:
@$user=$_POST['username'];
ضمن اینکه قسمت زیر در کد شما لزومی ندارد و به نظر زائد است:
$_POST['username']=NULL;
نویسنده: zahra
زمان: ۲۱:۰۹:۴۰ - تاریخ: ۱۳۹۲/۰۲/۱۵
خیلی خیلی ممنون
لطف کردین
نویسنده: vahid
زمان: ۲۰:۵۱:۲۴ - تاریخ: ۱۳۹۲/۰۲/۱۶
سلام من پی اچ پی در حد کم بلدم یعنی با دستورات اون اشنا هستم و میخوام بیشتر و دقیقتر یاد بگیرم چکار باید کنم
ایا منبعی سراغ دارید؟؟
پاسخ: 
منبع خاصی را نمی توان معرفی کرد، اگر با آموزش از طریق کتاب میانه خوبی دارید، می توانید در بازار، کتب مختلف را بررسی و هر کدام که به نظرتان دارای سرفصل های بهتری بود انتخاب کنید، در وب نیز چه به زبان فارسی و چه انگلیسی منابع بسیار خوبی وجود دارد، ما نیز در قسمت آموزش مقدماتی این زبان سعی می کنیم ساده، کاربردی و تقریبا کامل مباحث را عنوان کنیم.
نویسنده: zahra
زمان: ۱۵:۴۴:۵۹ - تاریخ: ۱۳۹۲/۰۲/۱۸
سلام خسته نباشید
من میخوام روی قطعه کدی که قبلا براتون فرستادم تغییراتی بدم به این صورت که بعد از اینکه کادر پسورد محتوا گرفت با زدن دکمه submit به جای حروف دریافتی در تکست باکس پسورد ستاره و به جای اعدادعلامت # را روی صفحه چاپ کند و نیز امکان تغیر یوزر به صورت دستی و در نوار آدرس نباشد
من کدنویسی به زبان php رو بلد نیستم و قبلا از راهنمایی شما استفاده کردم لطفا مجددا راهنماییم کنید
باتشکر
پاسخ: 
سلام
سعی کنید بخشی از کدها را خودتان بنویسید یا اگر آشنایی ندارید از مقدمات شروع کنید، با راهنمایی ما شاید مشکل فعلی حل شود اما در ادامه مجددا با مشکلات دیگری روبرو خواهید شد، به هر صورت کافی است مقادیر را از تابع زیر عبور دهید، مثال:
<?php
//تابع
function StrNum($value){
$leng = strlen($value);
for($i = 0; $i <= $leng; $i++){
$alpha = @$value[$i];
if(is_numeric($alpha) || $alpha == '*'){
$value = str_replace($alpha, '*', $value);
}
else{
$value = str_replace($alpha, '#', $value);
}
}
return $value;
}
//دریافت اطلاعات از فرم
@$pass = $_POST['pass'];
//خروجی
echo StrNum($pass);
?>
در اینجا ما مقادیر را از فیلد فرضی pass گرفته ایم و برای گرفتن خروجی آن را از تابع عبور داده ایم.
نویسنده: zahra
زمان: ۲۰:۰۷:۵۲ - تاریخ: ۱۳۹۲/۰۲/۱۸
باز هم از راهنمایی شما تشکر می کنم
اگه به مشکل برخوردم دوباره مزاحمتون میشم امیدوارم خستتون نکنم
نویسنده: zahra
زمان: ۲۰:۱۵:۱۴ - تاریخ: ۱۳۹۲/۰۲/۱۹
سلام خسته نباشید
من بازم به مشکل برخوردم
چطور میتونم صفحه رو به چند قسمت تقسیم کنم و هر قسمت رو در یک فایل جداگانه نوشته و در یک صفحه اونا رو طوری به هم متصل کنم که کادر یوزر و پسورد قسمت وسط باشن و محتوای اونا در بالا
و همچنین میخوام امکان تغییر یوزر در نوار آدرس نباشه
خواهش میکنم بازم راهنماییم کنید ممنون
پاسخ: 
سلام
متاسفانه امکان نوشتن کد و راهنمایی بیشتر وجود ندارد، لطفا وقت بگذارید و آموزش های مقدماتی را فرا بگیرید.
نویسنده: امیر
زمان: ۱۴:۰۶:۴۱ - تاریخ: ۱۳۹۲/۰۴/۰۷
سلام
یه متغیر داریم مثل
$mytext
حالا میخوایم موقع echo فقط 20 کاراکتر اول رو چاپ کنه چیکار کنم؟
مثلا خروجی زیر فقط 20 کاراکتر اولو نشون بده:
<?
$mytext = 'مثل بسیاری از زبان های برنامه نویسی، php نیز از قوانین و عملگرهای خاصی جهت محاسبه و مقایسه مقادیر استفاده می کند';
echo $mytext;
?>
پاسخ: 
سلام
در مطلبی مجزا تحت عنوان "نمایش قسمتی از متن و پاراگراف با PHP" در این خصوص صحبت شده، از قسمت جستجوی سایت عبارت "پاراگراف" را وارد کنید.
زمان: ۰۹:۳۵:۱۰ - تاریخ: ۱۳۹۲/۰۴/۱۰
یه نفر به من بگه که چطوری از تابع define داخل تمامی صحفه ها استفاده کنیم
ممنون می شوم
پاسخ: 
استفاده از تابع define خیلی پیچیده نیست، ابتدا در صفحه اصلی (یا صفحه ای که سایر فایل ها در آن include می شوند) مقادیر مورد نظر را به یکی از روش های نمونه زیر تعریف می کنیم:
define('STRING', 'your string');
define('DEFINED', TRUE);
سپس با توجه به نوع به کاربری (تعریف یک مقدار یا در نظر گرفتن TRUE یا FALSE) می توانیم در ادامه کدها از مقادیر تعریف شده به روش های زیر استفاده کنیم، اگر مقادیر به صورت متنی تعریف شده بود، کافی است مقدار را استفاده کنید، به طور مثال:
echo STRING;
//خروجی: your string
اما اگر به صورت TRUE یا FLASE بود، به فرض می توان در عارات شرطی if و else از ان استفاده کرد:
if(DEFINED == TRUE){
//انجام فرآیند مورد نظر
}
paged صفحه 1 از 7




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

8 × 8
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

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