(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-85215037-1', 'auto'); ga('send', 'pageview');

آموزش زبان برنامه نویسی php , html , css , تجربیات یک برنامه نویس

دانلود،نصب و تغییر پوسته های زیبا برای ویرایشگر phpstorm

تم phpstorm

 

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

و مراحل زیر رو مرحله به مرحله پیش برید :

1 -  دانلود فایل قالب با پسوند  icls

2 - انتقال فایل دانلود شده به مسیر مقابل :      C:\Users\YourName\.PhpStorm2016.2\config\colors

3 - راه اندازی مجدد نرم افزار phpstorm

4 - رفتن به مسیر مقابل در نرم افزار و انتخاب تم مورد نظر :  File > Settings > Editor > Colors & Fonts

 

 

یکی از سایتهای معروفی که این پوسته ها رو ارائه میده در زیر آورده شده :

 

www.phpstorm-themes.com

 

 

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

چاپ ثابت ها درون یک رشته بدون الحاق

این پست هم یک تجربه جدید بهتون آموزش میده
شاید شماهم مثل خود من سعی کردین که بتونید داخل یک رشته از نام یک ثابت هم استفاده کنید ولی دیدید که بجای مقدار داخل ثابت اسم ثابت چاپ شده و مجبور شدید از روش الحاق استفاده کنید ولی اگه دوست دارید بجای الحاق از راهکارهای دیگری استفاده کنید میتونید از دو روش زیر یکی رو انتخاب نمائید :

روش اول : استفاده از تابع sprintf 

این تابع از شما یک رشته میگیره که توی این رشته محل هایی که میخواهید مقداری از یک جایی خونده بشه رو بصورت علامت s% لابلای رشته مشخص میکنید بعد در پارامترهای بعدیش نام ثابت ها رو به ترتیب از چپ به راست مینویسید:

<?php

    define('Name1','Mehdi');
    define('Name2','Reza' );
    echo sprintf( ' %s and %s are students'  ,  Name1 , Name2) ;
    
?>

خروجی دستور بالا در زبان php بصورت زیر خواهد شد :

Mehdi and Reza are students

روش دوم : تبدیل ثابت به متغیر

<?php

    define( 'ANIMAL','monkey');
    $var1 = 'constant';
    echo "I like {$var1('ANIMAL')}";
?>

خروجی دستور بالا در زبان php بصورت زیر خواهد شد :

I like monkey
 
۲۸ مرداد ۹۵ ، ۱۲:۴۲ ۰ نظر موافقین ۱ مخالفین ۰
مهدی حسامی

پشتیبان گیری خودکار روزانه از دیتابیس و نگهداری آن بر فضای امن ابری

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

متاسفانه فعلا چنین سرویسی در ایران از طرف شرکتهای ایرانی ارائه نمیشه ولی می توانید از این سرویس خوب شرکت های خارجی برای حفاظت از داده ها و اطلاعات وبسایت تون بهره مند شوید که معمولا این شرکتها تا یک حدی از فضای دیسک برای نگهداری فایلهای پشتیبان رو بصورت رایگان ارائه می دهند و فضاهای بیشتر برای دیتابیسهای حجیم رو در طرح های پولی عرضه می کنند.

روال کار این سایتها به این صورته که شما وارد این سایتها می شوید و بعد از ثبت نام از طریق پنلی که در اختیارتون قرار داده میشه می تونید آدرس و مشخصات سرور دیتابیس تون به همراه نام کاربری و رمز عبور دیتابیس تون رو وارد کنید و زمان مورد نظری که میخواهید سایت برایتان پشتیبانگیری خودکار انجام بده رو هم مشخص می کنید (مثلا هر روز صبح ساعت 9:00 یا هر روز 5 بار در فلان زمانها) سپس این سامانه تحت وب در زمانهای مشخص شده به دیتابیس شما وصل شده و از اون پشتیبانگیری خودکار انجام میده که در صورت خرابی کامپیوتر شرکت میزبان سایت شما و حتی نابودی کل شرکت هاستینگ هم شما براحتی می توانید از فایل پشتیبان ذخیره شده در هار دیسک های ابری این شرکتها رو دانلود کنید و به سرور جدیدتون وارد نمائید.

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

 

www.gobitcan.com

امیدارم مفید بوده باشه

نظرات شما باعث دگرمی ما در ارائه مطالب و تجربیات بیشر خواهد شد.

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

ابزار بررسی سایت طراحی شده

اعتبارسنجی سایت

 

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

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

 

مشاهده ابزار بررسی سایت

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

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

نکته ای هست که باید بدونید:
وقتی از یک فرمی اطلاعاتی رو به یک صفحه ارسال می کنید تمامی این اطلاعات بصورت رشته ارسال می شوند (در هر دو روش ارسال POST و GET )
پس حواستون باشه وقتی یک داده عددی ارسال می کنید و در سمت سرور اگر با توابع php چک کنید که آیا این یک عدد است یا رشته در هر حالت خواهد گفت که این یک رشته است.
اینم بالاخره یک تجربه بود که بنظرم  رسید اگه بگم به دردتون میخوره

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

افزایش امنیت فرم های وب

در این پست میخوام شمارو با مفهومی بنام   " تزریق اس کیو ال "  آشنا کنم:

فکر میکنم هیچ سایت داینامیکی وجود نداشته باشه که داخل صفحاتش فرمی برای ارسال اطلاعات نداشته باشه ، چون اصلا وجود فرم ها در سایت های استاتیک احساس شد که زبانهای سمت سرور پدید اومدن (مثل php)

حالا از حسن این فرم ها که بگذریم ، میتونیم بگیم به ازای هر ورودی که این فرمها دارن یک حفره امنیتی هم به سایت ما باز شده

بنابراین ما باید خیلی حواسمون باشه که ببینیم کاربران سایتمون چه داده هایی رو برامون ارسال میکنند ، از اونجائیکه معمولا پس از دریافت اطلاعات از فرم ها ، ما این اطلاعات رو میریزیم توی دیتابیس ، پس اگر درون صفحات پردازش فرم ها از صحت و درستی داده ها اطمینان حاصل نکنیم ممکنه کاربری به همراه داده یک دستور SQL هم ارسال کنه و چون این مقدار درون رشته کوئری قرار میگیره و به نرم افزار مدیریت بانک اطلاعتی مون ارسال میشه ، پس اونجا کد اس کیو ال نیز  execute (اجرا)  خواهد شد و ممکنه باعث تخریب یا دستکاری داده ها و دیتابیسمون بشه

برای اینکه ما جلوی ارسال داده های مخرب (SQL) رو به دیتابیس بگیریم باید قبل از ارسال اونها به نرم افزار DBMS (نرم افزار مدیریت بانک اطلاعاتی) بایستی اونهارو آماده سازی کنیم و هرگونه کد اس کیو الی رو ازشون حذف کنیم و سپس به دیتابیس بفرستیم.

خوشبختانه در زبان php توابع زیادی برای آماده سازی داده های ارسالی به دیتابیس وجود داره که من یکی از این روشها رو که متعلق به کلاس PDO میباشد رو خدمتتون آموزش میدم : 

(البته برخی از توسعه دهندگان وب میان یک لیست سیاه از کاراکترها رو  تعیین میکنند و اون کاراکتر هارو از ورودی های کاربر حذف میکنند که اصلا مناسب نیست ، چون ممکنه ما کاراکتری رو از یک ورودی محدود کنیم که اصلا نیاز هست تا کاربران برایمان ارسال کنند)

روشی که در اینجا با استفاده از متدهای کلاس PDO میخواهیم انجام بدیم تمام مقادیر رو بصورت پارامتری به دیتابیس میفرسته و این باعث میشه که کاربر وقتی درون یک فیلدی از یک فرم مقدار مثلا یک اسم رو وارد کرده و در انتهاش یک کد اس کیو الی هم نوشته و ارسال کرده ، تمامش به عنوان یک پارامتر متعلق به یک ستون از یک جدول به دیتابیس معرفی بشه و اگر کدی همراه اونا ارسال کرده باشه توسط DBMS اجرا نشه

 

فرض کنید کاربری مثلا برای اینکه به یک سیستم لاگین کنه وارد صفحه لاگین سایت میشه و به جای اینکه مقادیر صحیح نام کاربری و رمز عبورش رو وارد کنه و ارسال کنه تا از دیتابیس استعلام بشه ، میاد کد زیر رو میفرسته !  حالا خودتون ببینید آیا نمیتونه بدون اطلاعات صحیح هم وارد بشه !!!

تزریق اس کیو ال

 

حالا همونطور که در تصویر بالا میبینید کاربر وقتی مقادیر بالا رو وارد کنه به شکل زیر در کوئری قرار میگیرن :

 

sqlinjection

 

برای جلوگیری اینگونه حملات از دو متد کلاس PDO استفاده میکنیم که یکی رشته کوئری رو بدون مقادیر به دیتابیس معرفی میکنه تا دیتابیس از ساختار دستور اس کیو الی ما آگاه بشه  و دومی هم مقادیر رو برای اجرا به دیتابیس میفرسته

اولی متد prepare و دومی هم  execute  هست.

$name=trim($_POST['dname']);
$familly=trim($_POST['dfamilly']);
$mobile=trim($_POST['dmobile']);
$tell=trim($_POST['dtell']);
$email=trim($_POST['demail']);
$address=trim($_POST['address']);
$message=trim($_POST['message']);
$type=trim($_POST['type']);

date_default_timezone_set("Asia/Tehran");
$date=date("Ymd",time());
$time=date("His",time());




    $db=new pdo("mysql:host=localhost;dbname=mydb;charset=utf8","root","");
    $q="INSERT INTO dorders(name,familly, tell, mobile,email,type,address,message,date,time) VALUES (?,?,?,?,?,?,?,?,?,?)";
    $stmt=$db->prepare($q);
    $stmt->execute(array($name,$familly,$tell,$mobile,$email,$type,$address,$message,$date,$time));


    echo "اطلاعات شما با موفقیت در دیتابیس ثبت شد";

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

بهترین ویرایشگر برای php

معرفی نرم افزار ویرایشگر برای php :

 JetBrains PhpStorm

طبق تجربه ای که داشتم ، در بین چندین ویرایشگر متنی برای تولید کدهای php در این چند سال ویرایشگری به قدرت JetBrains PhpStorm ندیدم
به جرات میتونم بگم یک محیط فوق کامل برای زبان های html , css , php , js میباشد که کد زدن داخل این محیط واقعا لذت بخش هست و بنده خودم واقعا در این محیط خسته نمیشم و کدنویسی برای یک تفریح میشه
آخرین نسخه JetBrains PhpStorm هم اکنون که من این متن رو مینویسم با نام 2016.2 قابل دانلود هست که در نسخه های قبلی با شماره ای مشخص میشد ولی در این نسخه احتمالا خواستن که یه تنوع اساسی به نوع نامگذاری نسخه هاشون بدن و اومدن اولش نام سال میلادی رو نوشتن و بعدش هم یک شماره که نشون دهنده میزان تغییرات هست ( البته اینا مهم نیست) شما میتونید دانلود کنید و از این محیط لذت ببرید.


من لینک دانلود نسخه JetBrains PhpStorm 2016.2 رو از سایت soft98.ir براتون میذارم ولی خودتون هم میتونید سرچ کنید:

دانلود با لینک مستقیم با حجم 216 مگابایت

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

افکت گذاری روی عناصر با css3

css3 animation effects

 

در این پست چندتا سایت معرفی میکنم که در زمینه افکتهای انیمیشنی css3 شمارو کمک میکنه و شما میتونید از کدهای آماده این سایتها برای افکت دهی به تصاویر و لینکهاتون استفاده کنید:

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

ux چیست؟

در این پست خیلی خیلی کوتاه میخوام به شما بگم که اصلا ux چی هست !

در طراحی برنامه های کامپیوتری معمولا برنامه نویسان بایستی صفحات یا فرمهایی رو که حاوی عناصر مختلف هست طراحی کنند تا کاربران بتونن با استفاده از آن عناصر گرافیکی با برنامه ارتباط برقرار کنند.

وقتی میگیم ارتباط برقرار کنند یعنی اینکه بتونن از امکاناتی در آن وجود داره استفاده کنند ، به خاطر همین هست که رابط کاربری ، یعنی رابط بین کاربر و کدهای عملیاتی برنامه  که به این طرح ui میگن

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

ترسیم ستاره با حلقه while در php

در این پست یک شکل با ستاره ایجاد می کنیم که برای اینکار از دو حلقه استفاده کرده ایم ، حلقه بیرونی برای کنترل تعداد خط و حلقه داخلی برای کنترل تعداد چاپ * در هر خط میباشد :

 

    $= 0;
    $= 0;
    while($a<30)
    {
        while($b<30-$a)
        {
             echo "*";  
             $b++; 
        }
        $b = 0;
        echo "<br>";  
        $a++;      
    }

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