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

۱۰ مطلب با موضوع «PHP» ثبت شده است

شنبه, ۲۳ مرداد ۱۳۹۵، ۱۰:۲۳ ب.ظ محمد ایرانی
ریجکس بررسی فارسی بودن رشته

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

ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:

/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u

و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:

/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
۲۳ مرداد ۹۵ ، ۲۲:۲۳ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی
يكشنبه, ۳ مرداد ۱۳۹۵، ۰۶:۲۸ ب.ظ محمد ایرانی
هش کردن پسورد در php

هش کردن پسورد در php

روش مناسب هش کردن کلمه عبور

الگوریتم ها و تابع های زیادی برای hash کردن وجود داره و همچنین نکاتی هستن که در زمان Hash کردن باید به اون ها توجه کرد، مثل افزودن salt.

یکی از توابع pssword_hash() هست که کار کردن با اون بسیار آسون هست و همچنین از الگوریتم bcrypt استفاده میکنه که یکی از قوی ترین الگوریتم های موجود هست.

نکته جالب در مورد این تابع اینه که خودش بصورا خودکار salt رو تولید میکنه.

برای مقایسه رشته هش شده با رشته اصلی باید از تابع password_verify() استفاده بشه.

ادامه مطلب...
۰۳ مرداد ۹۵ ، ۱۸:۲۸ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

چرا از Composer استفاده کنم؟

مزیت استفاده از Composer موقعی نمایان می شود که وب اپ شما وابسته به پکیج ها (کتابخانه ها) ی متفاوتی است که احتمال زیاد هر کدام از آن پکیج ها وابسته به پکیج های دیگری هستند. در این حالت اگر خودتان بخواهید آن ها را بگیرید - و از آنجایی که ممکن است نسخه ی خاصی هم از یک پکیج مورد نیاز باشد - دردسر شما برای دانلود و قرار دادن هر پکیج داخل وب اپتان کم نیست. اینجا Composer کار شما را راحت می کند. علاوه بر دانلود پکیج ها، به صورت خودکار نیز آن ها را در پروژه ی تان بارگذاری می کند (autoload) یعنی هر موقع که نیاز به کلاسی داشته باشید مثل قبل از آن استفاده می کنید و Composer در صورت
 نبود کلاس در نیم اسپیس فعلی، آن را برای شما include می کند. برای همین Composer در دسته بندی مدیریت وابستگی ها یا Dependency manager قرار دارد.

 

همچنین برای همه ی ما استفاده از یک کامند در ترمینال که پکیج ها را نصب کرده و یا به روز رسانی و حذف کند بسیار راحت تر از دردسر های انجام دستی آن هاست.

۰۸ تیر ۹۵ ، ۱۷:۴۴ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

ساخت کد کپتچا با Securimage

Securimage چیست؟

secureimage یک کتابخانه open source برای ساختن کپتچا هست که روش کار با اون بسیار ساده هست.

برای استفاده از این باید افزونه GD روس سرور شما نصب باشه که خوشبختانه این افزونه در اکثر هاست ها فعال هست.

 

روش استفاده

اول باید این کتابخانه رو دانلود کنید و فایل securimage.php رو اینکلود کنید، بعد یک شی از Securimage بسازید.

include_once './securimage/securimage.php';

$securimage = new Securimage();

برای ساختن تصویر باید فایل securimage_show.php در تگ img فراخوانی کنید

<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA">

ادامه مطلب...
۲۶ خرداد ۹۵ ، ۱۸:۵۵ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

گرفتن آدرس ip واقعی کاربر

هرچند گرفتن آی پی واقعی کاربر همیشه موفقیت آمیز نیست اما میتوان با استفاده از تابع زیر احتمال گرفتن IP واقعی کاربر را افزایش داد.

 

  //get user real ip 
  function getUserIP(){
        $client  = @$_SERVER['HTTP_CLIENT_IP'];
        $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
        $remote  = $_SERVER['REMOTE_ADDR'];

        if(filter_var($client, FILTER_VALIDATE_IP)){
            $ip = $client;
        }elseif(filter_var($forward, FILTER_VALIDATE_IP)){
            $ip = $forward;
        }else{
            $ip = $remote;
        }
        return $ip;
    }
۲۵ خرداد ۹۵ ، ۱۷:۱۳ ۰ نظر موافقین ۱ مخالفین ۰
محمد ایرانی

اندازه گیری مدت زمان اجرای اسکریپت

برای این که بفهمیم اجرای یک اسکریپت چه مقدار طول کشیده از تابع microtime() استفاده میکنیم.

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

 

نمونه کد:

<?php

$timeStart = microtime(true);

$i = 1;
while ($i < 30000000){
    $i++;
}

$timeEnd = microtime(true);
$time = $timeEnd - $timeStart;

echo 'execute in ' . round($time, 3) . ' seconds';
?>

 

تابع round() هم برای این که فقط تا 3 رقم اعشار رو در خروجی نشون بدیم.

۳۰ بهمن ۹۴ ، ۱۸:۵۹ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

دستورات PDO

دستورات پر کاربرد PDO

ادامه مطلب...
۲۲ بهمن ۹۴ ، ۱۱:۲۸ ۱ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

ارسال داده با ajax و jquery

ارسال داده به سمت سرور با ایجکس چندین روش داره که اینجا یکی از اون ها رو بیان میکنیم که میشه به سادگی از طریق اون درخواست های GET و POST رو به سرور فرستاد.

 

 

کد html که قصد داریم محتویات فیلد ها رو سمت سرور بفرستیم

<input type="text" id="name"><br>
<input type="text" id="last"><br>
<button id="show">SEND</button>

<div id="tables"> </div>


ادامه مطلب...
۲۸ دی ۹۴ ، ۲۱:۰۸ ۴ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

فریم ورک های کوچک php

یکی از اهداف اصلی فریمورک ها اغلب ساده کردن کار هست، در این پست با چند فریمورک کوچک php آشنا میشید که هر کدوم در زمینه خاصی به کار میاد.

 

1- ImageWorkshop

همونطور که از اسمش معلومه فریمورکی برای کار با تصاویر هست، از جمله امکاناتش میشه به تغییر اندازه، برش، تصویر بند انگشتی و watermark اشاره کرد.

 

2- Faker

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

برای این که بیشتر متوجه بشید به این کد توجه کنید:

// use the factory to create a Faker\Generator instance
$faker = Faker\Factory::create();

// generate data by accessing properties
echo $faker->name;
  // 'Lucy Cechtelar';

ادامه مطلب...
۱۹ دی ۹۴ ، ۲۰:۳۱ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

مشکل با فارسی در pdo

اگر موقع خوندن اطلاعات با pdo کاراکتر ها بصورت ? نمایش داده میشن بعد از این که کانکشن رو ایجاد کردیم از کد زیر استفاده میکنیم:

<?php
$connectionName->exec('SET NAMES utf8');

به همین سادگی smiley

 

البته باید کولیشن (collation) جدول utf8 یا utf8mb4 باشه که اگر نبود موتونید از کوئری های زیر استفاده کنید.

برای کل دیتابیس:

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

برای جدول:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
۱۷ دی ۹۴ ، ۱۴:۱۷ ۶ نظر موافقین ۱ مخالفین ۰
محمد ایرانی