Category Archives: PHP

  • 0

قسمت دوم ایجاد صفحه لاگین در فریم ورک yii

به نظر من یکی از موارد جذاب فریم ورک Yii روت و مسیریابی خودکار این فریم ورک هست در این آموزش تنظیمات اولیه  و کار با کنترلر ها  و نمایش پیام به کاربر را یاد میگیریم

اگر به فولدر فریم ورک مراجعه کنید می بینید فولدری به اسم config  می بینید وارد فولدر بشید و فایل db.php را باز کنید . در این فایل اطلاعات دیتابیس را وارد میکنیم

حالا لازمه کمی قسمت route را دستکاری کنیم به مثال زیر توجه کنید وقتی شما فریم ورک yii را نصب میکنید url های آن به این فرمت قابل فراخوانی هستند

http://hostname/index.php?r=site/index

اما ما میخواهیم url هایمان به این شکل مسیر دهی شوند

http://hostname/site/index

براین این کار داخل فولدر config فایل web.php را تغییر میدهیم و کد زیر را

'urlManager' => [
    				'class' => 'yii\web\UrlManager',
    				// Disable index.php
    				'showScriptName' => false,
    				// Disable r= routes
    				'enablePrettyUrl' => true,
    				'rules' => array(
    						'<controller:\w+>/<id:\d+>' => '<controller>/view',
    						'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
    						'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    				),
    		],

داخل ارایه components آن اضافه کنید و فایل را ذخیره کنید

حالا نحوه کار با کنترلر ها را برسی میکنیم وارد فولدر controllers می شویم و فایل SiteController.php را باز می کنیم می خواهیم تابعی بنویسیم که وقتی url زیر در مرورگر فراخوانی شد عبارت hello در صفحه مرورگر نشان داده شود

http://localhost/site/go

تابه زیر را به کنترلر اضافه می کنیم

function actionGo(){
 echo 'hello';
}

حال اگر به جای چاپ عبارت hello بخواهیم بک صفحه html را لود کنیم ازاین کد به جای echo استفاده می کنیم

return $this->render('say', ['message' =>'hello nitrocode.ir']);

در این کد فایل به اسم say در فولدر view لود می شود  . ما برای مثال یک پارامتر هم به صفحه html خود ارسال کردیم درواقع متغیری به اسم message و با محتوای hello nitrocode.ir را به فایل ارسال کردیم که در انجا می توانیم از این متغیر استفاده یا ان را به کاربر نمایش دهیم در آموزش های بعدی در این مورد بیشتر صحبت خواهیم کرد


  • 0

قسمت 1 مقدمه شروع کار با فریم ورک Yii

چند وقتی هست که با فریم ورک Yii برای انجام پروژه ای کار میکنم و تصمیم گرفتم آموزش کار با این فریم ورک رو همراه با انجام پروژ خودم بنویسم ( اگر تازه کار هستید و می خواهید php رو تازه یاد بگیرید می تونید تو قسمت نظرات درخواست بدید تا آموزش مبتدی PHP رو هم بنویسیم ) برای درک این آموزش باید آشنایی اولیه با PHP داشته باشید .

اما چرا باید از فریم ورک Yii استفاده کنیم . فریم ورک های زیاد و خوبی برای زبان PHP ساخته شده و Yii یکی از فریم ورک های کامل و نسبتا سریع هست ( از لاراول سریع تر و منابع کم تری استفاده میکند )

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

ابتدا باید فریم ورک را با استفاده از Composer نصب کنیم

اگر Composer روی سیستم شما نصب نیست روی نصب Composer کلیک کنید و آن را از سایت دانلود و نصب کنید

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic basic

با اجرای دستور بالا در cmd ویندوز یا ترمینال لینوکس فریم ورک شروع به نصب میشه شما می توانید به جای کلمه basic اسم پروژه خودتون رو بنویسید برای مثال من اسم nitrocode.ir رو انتخاب میکنم : 

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic nitrocode.ir

پس از نصب به محل نصب فریم ورک مراجعه کنید می بینید که یک فولدر به اسم nitrocode.ir ساخته شده 

بعد از نصب مسیر نصب فریم ورک رو توی مرورگرتون وارد کنید این آدرس برای من به این صورته

http://localhost/test/nitrocode.ir/web

** من فریم ورک رو داخل فولدری به اسم test نصب کردم این آدرس با توجه به محل نصب برای شما ممکنه متفاوت باشه **


  • 0

ارسال ایمیل از پی اچ پی با استفاده از جیمیل

در این پست با استفاده از فریمورک f3 یا همان ( FatFree ) می خواهیم با کمک سرویس جیمیل از طریق php ایمیل ارسال کنیم

از تابع زیر برای مقدادهی smtp استفاده میکنیم :

 $smtp = new SMTP ( 'smtp.gmail.com',465,"ssl",$gmail_username,$password );

به جای $gmail_username آدرس ایمیل خود و به جای $password رمز عبور حساب خود را بنویسید اما قبل از ادامه کار باید به چند نکته توجه کنید شما در حالت عادی نمتوانید از طریق سرور از gmail استفاده کنید ابتدا باید تایید دو مرحله ای را روی اکانت ایمیل خود فعال کنید بعد وارد تنظیمات جیمیل خود شوید و از تب pop/imap گزینه ‘فعال کردن IMAP’ رو فعال کنید و تنظیمات رو ذخیره کنید

حالا لینک زیر را باز میکنیم

https://myaccount.google.com/security?utm_source=OGB&utm_medium=app

در صفحه ای که برای شما باز می شود روی گزینه app password کلیک کنید بعد از وارد کردن دوباره رمز عبور وارد صفحه مورد نظر میشویم در این صفحه باید select app را روی  Mail و select device را روی other قرار دهید پس از انجام این تنظیمان گوگل یک رمز عبور به شما می دهد از این روز عبور باید برای ارسال ایمیل از روی سرور خود استفاده کنید و ان را به جای $password بنویسید.

کد کامل ارسال ایمیل به این صورت نوشته میشه :

$smtp = new SMTP ( 'smtp.gmail.com',465,"ssl",'youracademy.ir@gmail.com','cjaqrgnpygsfwfqx' );
 
 try{
 //echo $smtp->set('Errors-to', '<bluehole@fatfreeframework.com>');
 $smtp->set('From', '"name" <youremail@gmail.com>');
 $smtp->set('To', '"Contact Name" <sendemail@gmail.com>');
 $smtp->set('Subject', 'test for send email Nitrocode.ir');
 
 $send_result=$smtp->send ($text,true );
 
if($send_result==true){
echo 'successful send email';
}
 else{
echo 'can not send email'
}
 }catch (Exception $e){
 echo $e;
echo $smtp->log();
 }

برای مشاهده پروژه ها و نمونه کارهای ما اینجا کلیک کنید


تنظیمات سرور : اگر در سرور شما دسترسی ارسال ایمیل فعال نباشد با پیام Permission denied مواجه میشیم برای رفع این مشکل باید کد زیر را از طریق ssh وارد کنیم

setsebool -p httpd_can_networck_connect 1
setsebool -p httpd_can_sendmail 1

  • 0

معرفی فایل منیجر تحت وب نیترو

Free and simple and lightweight File Managar For Server or Website

NitroFM یک برنامه مدیریت فایل تحت ساده سبک و رایگان است که به سادگی میتوان آن را روی سرور و هاست نصب کرد کار کردن با این فایل منیجر  و نصب آن بسیار ساده است .

برای ساخت این فایل منیجر از فریمورک fat-free استفاده شده که یک فریمورک جدید و پرسرعت در عین حال کم حجم است می توانید این فایل منیجر را در لینک زیر مشاهده و دانلود کنید

https://github.com/parsgit/NitroFM

بعد از دانلود پروژه و قرار دادن ان در فولدری روی سرور باید ابتدا یک دیتابیس برای آن بسازید و به صورت زیر میتوانید وارد صفحه نصب آن شوید

http://yourSiteName.com/nitrofm/install

در اینجا برای مثال پروژه درون فولدری با نام nitrofm قرار دارد  بعد از مشاهده صفحه نصب می توانید اطلاعات دیتابیس را وارد کنید در مرحله بعد هم یک اکانت میسازید و نصب تکمیل میشود حال می توانید با وارد کردن اطلاعات اکانتی که ساختید وارد فایل منیجر شوید


  • 0

آموزش نصب دیتابیس ماریا

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

در این پست apache و php نسخه 7 و MariaDB و phpMyAdmin رو نصب میکنیم (LAMP)

این اموزش برای سیستم عامل ابونتو هست

یادآموری : در سیستم عامل ابونتو هرجا که عملیاتی در حال اجرا بود و میخواستید عملیاتی رو لغو کنید کافه دکمه ctrl + c  ویا ctrl + z رو بزنید

برای نصب اپاچی کد های زیر رو در ترمینال وارد می کنیم :

sudo apt-get update
sudo apt-get install apache2
sudo a2enmod rewrite
sudo service apache2 restart

برای افزودن قابلیت ssl کد های زیر رو در ترمینال وارد میکنیم :

sudo a2enmod ssl 
sudo a2ensite default-ssl.conf
sudo systemctl restart apache2.service
sudo netstat -tlpn
sudo systemctl enable apache2

به وسیله کد sudo netstat -tlpn میتونیم برسی کنیم که پورت 443 فعال شده است یا نه حالا اگر ip سرور رو وارد کنید می توانید صفحه خوش آمدگویی اپاچی را مشاهده کنید

برای نصب php هم از این کد ها استفاده میکنیم :

sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-xml php7.0-gd

برای نصب MariaDB :

sudo apt install php7.0-mysql mariadb-server mariadb-client

حالا برای کانفیگ MariaDB و مثلا تغییر رمز root و … از این کد استفاده میکنیم

sudo mysql_secure_installation

به سوالاتی که در طول مراحل کانفیگ پرسیده میشه جواب Yes بدهید

برای فعال سازی سرویس دیتابییس هم به این صورت عمل میکنیم

sudo systemctl restart mysql.service 
// یا کد زیر
sudo service mariadb restart

و برای نصب phpMyAdmin :

sudo apt install php-gettext phpmyadmin

در هنگام نصب سوالاتی را از شما میپرسه که جواب میدید و نصب تکمیل میشه اگر نیاز داشتید phpMyAdmin را دوباره کانفیگ کنید از کد زیر استفاده کنید

sudo dpkg-reconfigure phpmyadmin

خب کار تمام است و سرور ما امادست

اگر mariadb اجرا نمیشد و موقع فعال سازی آن ارور execute time out داد کد زیر را وارد میکنیم

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

سایت MariaDB , منابع بیشتر


  • 0

معرفی ویرایشگر کد php

یک محیط کد نویسی مناسب یا همون IDE می تونه در نوشتن یک برنامه بسیار تاثیر گذار باشه برای مثال شما می تونید کد های php خودتون رو توی نوت پد هم بنویسید ولی خب کار مشکلیه و برسی کد ها و همین طور نوشتن کد رو برای شما سخت میکنه

کد ادیتور های زیادی برای php وجود داره اما میخوایم 2 تا برنامه معرفی کنیم که هم کاملا رایگان هستند و تقریبا همه ویژگی های یه IDE خوب رو دارن و از همه مهمتر روی تمامی سیستم عامل ها قابل دسترس هستند

eclips

eclips یک IDE کامل است شما به وسیله آن می توانید برنامه های جاوا php و یا حتی اپلیکیشن اندروید بسازید ( البته برای برنامه نویسی اندروید بهتره از اندروید استادیو اسفاده کنید )

لینک برنامه : دانلود اکلیپس

اکلیپس نسخه های مختلفی داره که با توجه به نیاز خودتون می تونید یکی رو دانلود کنید برای برنامه نویسی php بهتره نسخه PDT رو دانلود کنید اما اگر نسخه های دیگه اون رو دانلود کردید و دید که قابلیت ایجاد پروژه php رو نداره میتونید زبان php رو به این صورت اضافه کنید:

از منوی Help گزینه Installation New Software رو انتخاب کنید و در قسمت Work with ادرس Neon – http://download.eclipse.org/releases/neon رو انتخاب کنید صبر کنید تا برنامه اطلاعات رو در کادر پایین اون نشون بده بعد توی قسمت Type filter text عبارت PDT رو بنویسید به سری پلاگین بهتون نشون میده گزینه های توی بخش Language رو تیک بزنید اسمایی شبه به این دارن : PDT Develop Tools

و بعد هم نصبشون کنید بعد از نصب اکلیپس رو یکبار ببندید و دوباره اجرا کنید حالا اگر new project می تونید گزینه php رو ببینید خب بعد از ساخت اولین پروژه php از قسمت Project Explorer روی فولدر پروژتون راست کلیک کنید و از منوی Configure گزینه Convert To php رو انتخاب کنید و کار تمومه حالا می تونید از برنامه نویسی php لذت ببرید

Visual Studio Code

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

ویژال استادیو کد برنامه ای کم حجم و سبک و تقریبا سادست شاید به اندازه اکلیپس قوی نباشه اما ویرایشگر خوب و کار رابندازیه 🙂

لینک : دانلود ویژال استادیو کد

بعد از نصب و اجرا از منو سمت چپ گزینه Extensions را انتخاب کنید و در کادر search عبارت PHP Extension Pack رو بنویسید و نصبش کنید یک بار برنامه رو ببندید و دوباره اجرا کنید حالا برنامه برای کد نویسی php اماده شده


  • 0

ساخت ربات تلگرام با fat-free

پیاده سازی و ساخت ربات تلگرام با فریم ورک fat-free بسیار ساده است البته واسه برنامه نویسا 🙂

خب بعد از پیاده سازی fat-free framework برای راحتی کار با ربات باید sdk مربوط به ربات رو به فریم ورک اضافه کنیم

“Read More”


  • 0

توابع مهم و کاربردی php قسمت اول

در این پست یک سری از توابع مهم و پرکاربرد php را قرار دادیم

این تابع بیشتر به درد پارسی زبان ها می خوره با قرار دادن یکی از کد های کلمات فارسی به شکل صحیح خودشون نشان داده می شوند و متن ها را به صورت utf-8 نمایش می دهد

header('Content-type: text/plain; charset=utf-8');

header('Content-Type: application/json ; charset=utf-8 ');

 

برای تبدیل ارایه به رشته جیسون

echo json_encode($myArray,JSON_UNESCAPED_UNICODE);

چند مثال ساده:

$myArray['site']='Nitro Code';
$myArray['name']='Benyamin';
//خروجی \/
{"site":"Nitro Code","name":"Benyamin"}
//--------------------------------------
$myArray[]="blue";
$myArray[]="red";
$myArray[]="white";
// خروجی
{"blue","red","white"}

این تابع یک ورودی دریافت می کند و اگر ورودی ما تماما از عدد تشکیل شده باشد مقدار true و در غیر این صورت false را بر می گرداند

$bool=is_numeric($value);

 

برای بدست اوردن زمان ایران از سرور از تابع زیر استفاده می کنیم

public function getIranTime(){
        date_default_timezone_set("Asia/Tehran");
        return date('Y/m/d H:i:s');
    }

 

برای تولید رشته های تصادفی از تابع زیر استفاده می شود

public function generateRandomString($length = 10)
    {
    return substr(sha1(rand()), 0, $length));
    }

بدست اوردن تعداد عناصر یک ارایه

count($str);

 

برای مقایسه دو رشته با هم از strcasecmp($str1,$str2 ) استفاده می کنیم این تابع بین حروف کوچک و بزرگ حساس نیست

اماتابع Strcmp($str1,$str2) مقایسه را انجام می دهد و نسبت به حروف کوچک و بزرگ حساس است اگر دو رشته کاملا با هم برابر باشند مقدار 0 را بر می گرداند اگر با هم برابر نباشند مقدار -1


  • 0

چند مطلب مهم و پایه ای فریم ورک فت فری

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

در حالت عادی زمانی که شما یک فایل php را در سرور خود قرار میدهید ( فرض میکنیم اسم فایل php ما nitro.php است ) زمانی که می خواهیم این فایل را اجرا کنیم باید ادرس url رو به این صورت وارد کنیم :

http://yoursite.ir/file/nitro.php

یکی از امکانات فریم ورک ها قابلیت مسیردهی ( routing ) انها است که قابلیت انعطاف بالایی به ما می دهد برای مثال به راحتی می توانید به هر شکل که دوست دارید مسیر دهی به فایل php را انجام دهید برای مثال:

http://yoursite.ir/nitro

“Read More”


  • 0

اموزش کار با دیتابیس mysql

در این پست یاد میگیریم که چگونه با دیتابس mysql در فریم ورک fatfree کار کنیم همچنین این کد ها برنامه شمارو در مقابل حملات تزریق SQL یا همون SQL Injection کاملا ایمن میکنه

در کد زیر ابتدا دیتابیس رو مقدار دهی می کنیم بجای mydb نام دیتابیس رو می نویسیم و به جای root نام کاربری و به جای 1234 رمز دیتابیس رو می نویسیم

$db=new DB\SQL(
    'mysql:host=localhost;port=3306;dbname='."mydb",
    "root",
    "1234");

“Read More”