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

ساخت کد کپتچا با 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;
    }
۲۵ خرداد ۹۵ ، ۱۷:۱۳ ۰ نظر موافقین ۱ مخالفین ۰
محمد ایرانی

ساخت انواع نمودار

ابزاری بسیار عالی برای طراحی انواع نمودار از جمله: میله ای، دایره ای، هیستوگرام و...

با قابلیت دریافت لینک اشتراک گذاری

 

Meta-chart

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

ورود مستقیم اطلاعات از جدول

ورود مستقیم اطلاعات از یک جدول به جدول دیگه

 

بر فرض ما جداول table_1 و table_2 رو داریم و قصد داریم داده ها رو از table_2 به table_1 وارد کنیم.

نمونه کد:

insert into table_1(title, area , address , info,karbari) select title, area , address , info,karbari from table_2 where id = 10
۰۲ اسفند ۹۴ ، ۲۲:۰۹ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

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

برای این که بفهمیم اجرای یک اسکریپت چه مقدار طول کشیده از تابع 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 رقم اعشار رو در خروجی نشون بدیم.

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

json viewer

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

 

jsonviewer.stack.hu

www.jsoneditoronline.org

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

دستورات 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;
۱۷ دی ۹۴ ، ۱۴:۱۷ ۶ نظر موافقین ۱ مخالفین ۰
محمد ایرانی