زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی |
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
اجتناب از 10 اشتباه ناخواسته در زبان پی اچ پی Are You Making These 10 PHP Mistakes?
اجتناب از 10 اشتباه ناخواسته در زبان پی اچ پی Are You Making These 10 PHP Mistakes
One of the best things about PHP is that it’s a great language to just “dive into”, thanks to its wide-ranging popularity. Anyone with the ability to hit “Search” on Google can quickly create a program. However, this also lends to a major criticism of PHP: it’s almost too easy to find and reproduce bad code. Here are 10 PHP mistakes that any programmer, regardless of skill level, might make at any given time. Some of the mistakes are very basic, but trip up even the best PHP programmer. Other mistakes are hard to spot (even with strict error reporting). But all of these mistakes have one thing in common: They’re easy to avoid
Take the time and make sure that your PHP is secure, clean and running smoothly by checking your site for these common PHP blunders.
------------------------------------------------------
اشتباهات رایجی وجود دارند که گاها برنامه نویس های مبتدی حواسشون نیست و برنامه شون دچار اشکال میشه
که بعضا تقصیر خود برنامه نویس هم نیست بنابراین بهتره که به بعضی از رایج تریناش اشاره بشه
مثلا شما فرض کنید که توی پی اچ پی نسخه 4 و 5 در مورد کارکرد تابع
empty()
تفاوت هست مثلا :
کد PHP:
class Foo { function Foo() { } function bar() { } } $foo = new Foo(); if (empty($foo)) { // this code executes in PHP4 (but NOT in PHP5)! }
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید
|
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
Single quotes vs double quotes PHP
1. Single quotes, double quotes
It’s easy to just use double quotes when concatenating strings because it parses everything neatly without having to deal with escaping characters and using dot values. However, using single quotes has considerable performance gains, as it requires less processing. Consider this string:
کد PHP:
# $howdy = 'everyone'; # $foo = 'hello $howdy'; # $bar = "hello $howdy";
$foo outputs to “hello $howdy” and $bar gives us “hello everyone”. That’s one less step that PHP has to process. It’s a small change that can make significant gains in the performance of the code.
اگر میخواهید مقدار متغیر هاتون در رشته جایگزین بشه از دابل کوتیشن استفاده کنید در غیر اینصورت میتونین با استفاده از سینگل کوتیشن علامت $ رو در رشته چاپ کنید و دنبال مقدار متغیر نخواهد بود .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
Semicolon after a While عدم استفاده از سیمی کالن بعد از حلقه
2. Semicolon after a While
It’s funny how one little character can create havoc in a program, without even being reported to the PHP error logs! Such as it is with semicolons and While statements. Codeutopia has an excellent example of this little error, showing that these nasty errors don’t even get reported (even to E_ALL!), as it quietly falls into a silent loop.
کد PHP:
$i = 0; while($i < 20); { //some code here $i++; }
Omit the ; after the while statement, and your code is in the clear.
بدون هیچ پیغام خطایی برنامه میره رو هوا
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
استفاده از سیستم های کش دیتابیس در برنامه های php 3. Using database caching
استفاده از سیستم های کش دیتابیس در برنامه های php
نقل قول:
What is Memcached?
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its APIis available for most popular languages.
|
3. NOT Using database caching
If you're using a database in your PHP application, it is strongly advised that you at least use some sort of database caching. Memcached has emerged as the most poplar caching system, with mammoth sites like Facebook endorsing the software. Memcached is free and can provide very significant gains to your software. If your PHP is going into production, it's strongly advised to use the caching system.
کارشناسا توصیه اکید میکنند که حتما از یکی از سیستم های کش دیتابیس استفاده کنید
لیست مشتری های مثال فوق برق رو از سر ادم میپرونه ! .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
Missing Semicolon After a Break or a Continue - PHP
4. Missing Semicolon After a Break or a Continue
Like #2, a misused semicolon can create serious problems while silently slipping off into the shadows, making it quite difficult to track the error down. If you're using a semicolon after a "break" or "continue" in your code, it will convince the code to output a "0" and exit. This could cause some serious head scratching. You can avoid this by using braces with PHP control structures (via CodeUtopia).
البته من بدون سیمی کالن تست کردم خطا میگیره .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
فعال کردن سیستم گزارش خطا در پی اچ پی PHP Using E_ALL Reporting
فعال کردن سیستم گزارش خطا در پی اچ پی PHP Using E_ALL Reporting
5. Not Using E_ALL Reporting
Error reporting is a very handy feature in PHP, and if you're not already using it, you should really turn it on. Error reporting takes much of the guesswork out of debugging code, and speeds up your overall development time. While many PHP programmers may use error reporting, many aren't utilizing the full extent of error reporting. E_ALL is a very strict type of error reporting, and using it ensures that even the smallest error is reported. (That's a good thing if you're wanting to write great code.) When you're done developing your program, be sure to turn off your reporting, as your users probably won't want to see a bunch of error messages on pages that otherwise appear fine. (Even with the E_ALL error reporting on they hopefully won't see any errors anyway, but mistakes do happen.)
تمام جزئیات خطا ها رو نشون میده و هیچ چی رو جا نمیذاره و میتونین استفاده مفیدی ازش داشته باشین که عموما ازش غافل هستند .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
استفاده از محدودیت حداکثر زمان پاسخ و اجرا صفحات پی اچ پی php Setting Time Limits On PHP Scripts
استفاده از محدودیت حداکثر زمان پاسخ و اجرا صفحات پی اچ پی php Setting Time Limits On PHP Scripts
6. Not Setting Time Limits On PHP Scripts
When PHP scripts run, it's assumed that they'll eventually finish in a timely manner. But every good programmer knows that nothing should be assumed in a piece of code. Nothing makes a program crankier than an unresponsive script.
You can get around this issue by simply setting a time limit on the script (set_time_limit). While it may seem like a trivial thing, it's always clever to prepare for the worst.
خب یه صفحه پی اچ پی حتما باید نهایتا تا یک زمان خاصی اجراش خاتمه پیدا بکنه و بیش از حد خاصی منتظر باقی نمونه به همین خاطر میتونین از تابع فوق به شکل زیر استفاده کنین :
کد PHP:
set_time_limit(20);
همچنین دو تابع زیر نیز میتونه در موارد مختلف مورد استفاده قرار بگیره
فقط اینکه هیچ کدام از این توابع در حالت safe mode کار نمیکنند .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-17-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
محافظت از آی دی جلسه در پی اچ پی - محافظت از مشخصه نشست Not Protecting Session ID's php
محافظت از آی دی جلسه در پی اچ پی - محافظت از مشخصه نشست Protecting Session ID's
7. Not Protecting Session ID's
A very common PHP security mistake is not protecting session ID's with at least some sort of encryption. Not protecting these Session ID's is almost as bad as giving away a user's passwords. A hacker could swoop in and steal a session ID, potentially giving him sensitive information. MT Soft an example of how to protect Session ID's with sha1:
کد PHP:
if ($_SESSION['sha1password'] == sha1($userpass)) { // do sensitive things here
}
</span>
Adding the shai1 to the ($userpass) gives an added bit of security to the session. Sha1 isn't a bulletproof method, but it's a nice barrier of security to keep malicious users at bay.
همچنین میتونین برای مشاهده سایر اشتباهات امنیتی رایج در پی اچ پی به این مقاله مراجعه کنین
The 7 most common PHP security mistakes
بهتره که حتما سشن (نشست - جلسه ) رو رمز کنید
کد PHP:
if ($_SESSION['password'] == $userpass) { // do sensitive things here }The above code is not secure, since the password is stored in plain text in a session variable. Instead, use code more like this:if ($_SESSION['sha1password'] == sha1($userpass)) { // do sensitive things here }
خصوصا نوشته شده که هیچگاه برای یک یوزر ولید شده اجازه تغییر پسورد رو بدون وارد کردن پسورد قبلی خودش ندین چون یک هکر میتونه با دستکاری سشن خودش بعد از لاگین و ولید شدن پسورد کس دیگه ای رو عوض کنه .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
ویرایش توسط دانه کولانه : 05-18-2013 در ساعت 12:01 AM
|
05-18-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
جلوگیری از ورود داده های غیر معتبر و خطرناک توسط کوکی ها به برنامه php Validating Cookie Data
جلوگیری از ورود داده های غیر معتبر و خطرناک توسط کوکی ها به برنامه php Validating Cookie Data
How much trust do you put into cookies? Most people don't think twice about the seemingly-harmless bit of data that's passed by a cookie. The name "cookie" itself is associated Milk, nap time and Santa, for crying out loud! How could a cookie possibly harmless?
خب یه برنامه نویس مبتدی میدونه که حتما اطلاعاتی که از طرف یوزر توسط فرم ها و باکسهای ورودی یا متغیر های پست و گت برای برنامه ارسال میشه باید حتما ولیدیت بشه اگر کد مخربی داخل اون هست با توابع مشخصی مثل htmlspecialchars() هرس بشه
اما شاید خیلی کم به این نکته توجه داشته باشیم که یکی دیگه از راه های ورود اطلاعت به صفحه ما همون کوکی هایی هستند که خود برنامه تولید کرده اما هکر روی کامپیوتر خودش میتونه اطلاعات اون رو عوض و کدهای مخرب رو در اون وارد کنه .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
05-18-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
جلوگیری از ورود داده های غیر مجاز و مخرب Escaping Entities
جلوگیری از ورود داده های غیر مجاز و مخرب Escaping Entities
9. Not Escaping Entities
Many times PHP programmers are too trusting with data, especially data generated by user. It's imperative to sanitize data before it goes into any sort of storage, like a database. Source Rally shows us how to correctly escape entities in things like forms. Instead of using this:
کد PHP:
echo $_GET['username'];
You can validate the data by using htmlspecialchars() (or htmlentities()) like so:
کد PHP:
echo htmlspecialchars($_GET['username'], ENT_QUOTES);
در پست قبلی در این مورد توضیح دادم .
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|
کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
|
|
مجوز های ارسال و ویرایش
|
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید
اچ تی ام ال غیر فعال می باشد
|
|
|
اکنون ساعت 12:39 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.
|