Category Archives: PHP

  • 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”


  • 0

آموزش نصب و راه اندازی فریم ورک فت فری

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

ما ساختار معماری 3 لایه یا همون mvc رو در این فریم ورک پیاده سازی خواهیم کرد برای نصب fatfree موارد زیر را باید انجام دهیم

  1. نصب برنامه git و Composer
  2. دانلود fatfree
  3. پیاده سازی فریم ورک

کاربران ویندوز هم می توانند با کلیک روی لینک های بالا وارد سایت مورد نظر بشن و فایل نصب git و composer رو دانلود و به راحتی نصب کنند بقیه مراحل در هر دو سیستم عامل یکسان است

برای نصب git کد زیر را در ترمینال اجرا کنید

sudo apt-get install git

برای نصب Composer

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

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

دانلود fatfree framework

بعد از دانلود فایل را در فولدر مناسبی از حالت فشرده خارج کنید. وارد فولدر fatfree-master شوید و روی پنجره فولدر راست کلیک کنید و open Terminal رو بزنید حالا کد زیر رو با حالت ادمین در ترمینال اجرا کنید و منتظر بمونید تا نصب کامل بشه ممکنه کمی زمان بر باشه

کاربران ویندوز در cmd باید دستور زیرو وارد کنند

composer install

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

http://localhost/sample/fatfree-master/

حالا میخواهیم پروژه خود را به صورت MVC ساختار دهی کنیم فولدری به نام app بسازید حال به درون فولدر app رفته و 3 فولدر به نام های controllers و file و views بسازید

حالا به ریشه اصلی پروژه یعنی همان فولدر fatfree-master می رویم درون این فولدر فایل index.php را باز کنید کد های درون ان را به کلی پاک کنید و کدهای زیر را درون آن قرار دهید و ذخیره کنید

<?php

require_once("vendor/autoload.php");

$f3 = Base::instance();

$f3->config('config.ini');
$f3->config('routes.ini');

$f3->run();

حالا فایلی به اسم routes.ini بسازید و کد زیر را داخل آن ذخیره کنید .

[routes]

;base routes
GET /=MainController->main
GET /hello=MainController->showHello

باز فایلی به نامconfig.ini بسازید و کد های زیر را درون آن ذخیره کنید

[globals]

DEBUG=3
UI=app/views/
AUTOLOAD=app/controllers/

حال به فولدرcontrollers که ساخته بودیم میریم (app/controllers) و درون آن فایلی به نام MainController.php می سازیم و کد زیر را درون ان ذخیره میکنیم

<?php

class MainController {

    function showHello(){
        echo 'Hello NitroCode.ir :)';
    }
    function main(){
         echo 'OK';
    }

}

خیلی خب کار تمام است حالا با مرورگر خود به مسیر پروژه برید پیام OK برای شما نشان داده می شود(http://localhost/sample/fatfree-master)

حال اگر جلوی ادرس کلمه hello را وارد کنید به این صورت :

http://localhost/sample/fatfree-master/hello

پیام زیر رو به شما نشون میده

Hello NitroCode.ir :)

منبع

مربوط :

مطالب مهم و پایه ای در fatfree

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


  • 0

معرفی و مقایسه فریم ورک های php

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

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

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

framework میزان استفاده از رم وابستگی ها درخواست در ثانیه
phalcon-2.0 0.27 1.0 1,746
fatfree-3.5 0.42 1.6 1106
lumen-5.1 0.95 3.7 412
laravel-5.1 2.76 10.7 91

منبع اطلاعات جدول: https://github.com/kenjis/php-framework-benchmark/

laravel : طبق این بنچ مارک فریم ورک لاراول تنها 91 درخواست در 1 ثانیه را جواب داده و همین طور که مشاهده می کنید مصرف رم ان از بقیه فریم ورک ها بیشتر است البته کار با لاراول بسیار ساده است و شاید یکی از دلایل محبوبیت این فریم ورک در میان برنامه نویسان باشه.

lumen : درواقع یک میکرو فریم ورک است که در زیر مجموعه ی لاراول قرار می گیرد این میکرو فریم ورک بیشتر برای ساخت API مناسب است سرعت آن از لاراول بیشتر و میزان رم مصرفی آن کم تر است

fatfree : با توجه به جدول بالا این فریم ورک سرعت بسیار بالاتر و مصرف رم کم تری دارد و در 1 ثانیه به 1106 درخواست پاسخ داده است به اختصار به این فریم ورک f3 هم می گویند. حجم بسیار کمی دارد.

phalcon : این فریم ورک را به عنوان سریع ترین فریم ورک php می شناسند دلیل سرعت بالای آن استفاده این فریم ورک از کتابخوانه های زبان c است اما بنظر میرسد که پیاده سازی آن کمی مشکل است و شاید در هاست های اشتراکی نتوان از آن استفاده کرد

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