سلام
اطلاعات کاملی در مورد php.infoو htaccessو php.iniمی خوام.می خوام بدونم از این سه گزینه چه استفاده هایی تو تنظیمات سایت و امنیت اون میشه .
ممنون میشم اگه راهنماییم کنید.
سلام
اطلاعات کاملی در مورد php.infoو htaccessو php.iniمی خوام.می خوام بدونم از این سه گزینه چه استفاده هایی تو تنظیمات سایت و امنیت اون میشه .
ممنون میشم اگه راهنماییم کنید.
سلام
در مورد php.ini , info باید گفت که اینا چیزی مثل رجیستری ویندوز هستن. یعنی تنظیمات سایت رو مشخص می کنن
شما اگر هاست بخری که می تونی اینا رو تغییر بدی و با توجه به نیازت تغییر بدی. ولی در سایت های هاست رایگان همچین چیزی بصورت عمومی وجود نداره و سایت میاد محدودیت هایی رو براش می ذاره
به عنوان مثال اگر فرم آپلود داری می تونی تنظیم کنی تا 1000مگ رو هم بگیره. ولی در سایت های رایگان روی 2 مگ تنظیمه و نمی تونی هم تغییرش بدی.
سرچ کنی می تونی به این نتایج برسی
به نام خدا
با سلام
آیا میشه ، تنظیمات php.ini را با فایل های php (منظورم همان توابع php تغییر داد.). اگر پاسختان + است ، لطفا مثال بزنید ، تست شده باشد.(خیلی مهم)
در ضمن من توی ساختار جوملا فایلی با نام php.ini دیدم ، آیا این فایل نیز مانند فایل htaccess (البته با دستورات مربوط به خودش) عمل میکنه، یعنی سرور دستوراتش را پردازش میکنه، اگر نه پس چرا جوملا یه سری تنظیمات توش نوشته!!!
به نام خدا
با سلام
ini_set اصلا کار نمیکنه ، می توانید تست کنید.
اینم لینک از سایت مرجعش http://php.net/manual/en/function.ini-set.php
مهم نیست ، مرجعش چی گفته ، مهم اینکه کار نمیکنه!!!
سلام
من تاحالا ازین استفاده کردم. بازم میگم در هاست های رایگان استفاده از این روش جواب نمیده چون محدودش کردن. ولی در هاست های پولی یا لوکال هاست صد در صد جواب میده. 100%
دوست عزیز، این حرف شما (با عرض معذرت) کمی خودخواهانه و کودکانه هست. قطعاً هاست شما چنین دسترسی خاصی رو برای شما بسته وگرنه این روش 100٪ کار میکنه. بهتره بجای لجبازی، ببینید مشکل از کجاست که این روش برای شما کار نمیکنه وگرنه اگه قرارباشه حرفهای مرجع رسمی تولید PHP رو قبول نکنیم، اونوقت حرف کی قابل قبول خواهد بود؟
هاستم لوکاله باز هم مشکلیه، (یعنی من اول همه چی روی لوکال امتحان می کنم، بعد میبرم روی سرور اونم از نوع پولیش.)
فایل htaccess هر دستوری که بهش میدم ، بدون مشکل اجرا می کنه ، اما تابع ini_set تقریبا هیچ دستوری رو اجرا نمیکنه ، مثلا برای افزایش حجم آپلود نوع htaccess اش کار میکنه ، اما ini_set نه!
البته با این سخنان شما به نظر میرسه شاید دستوری که وارد میکنم ، غلط باشه، چون من عینا دستور php.ini اصلی رو درش وارد میکنم، حالا برای این که تست کنیم ، میشه لطفا دستوری که شما در ini_set برای این کار (افزایش حجم آپلود) را بزارید.
حالا عصبانی بودم ، چه چیزی گفتم.مشکل از کجاست که این روش برای شما کار نمیکنه وگرنه اگه قرارباشه حرفهای مرجع رسمی تولید PHP رو قبول نکنیم، اونوقت حرف کی قابل قبول خواهد بود؟
سلامت باشید.
آخرین ویرایش به وسیله armsoftpc : جمعه 22 اردیبهشت 1391 در 21:36 عصر
این کد رو امتحان کنید ببینید چه خطایی دریافت میکنید:
error_reporting(E_ALL);
ini_set('output_handler', 'mb_output_handler');
هیچ خطایی ، اصلا توی حالت های قبلی هم خطا تولید نمی کرد ، بلکه اصلا اعمال نمیشد.
اگر میشه دستور افزایش حجم آپلود را بذارید.
ini_set('upload_max_filesize', '4M');
مثال فوق، اندازه آپلود رو روی 4 مگابایت تنظیم میکنه.
همین بود که میگفتم کار نمیکنه.
باید دقت کنید که اجرای این دستور در صفحه مقصد فرم فایده ای نداره چون PHP بعد از اینکه فایل آپلود بشه شروع به فعالیت میکنه و اون موقع دیگه برای تعیین حداکثر اندازه فایل دیر شده. بهترین راه استفاده از htaccess. برای تنظیم این مورد هست یا اینکه توی خود فایل فرمتون (نه صفحه مقصدش) با php.ini کار تنظیم کردن حداکثر اندازه مجاز رو انجام بدین. بعلاوه چون فایلها هم با روش post آپلود میشن، باید post_max_size رو هم علاوه بر upload_max_filesize افزایش بدین. در کل این راه رو امتحان کنید:
1- کد زیر رو توی یک فایل با نام php.ini نوشته و در پوشه ریشه سایتتون ذخیره کنید:
memory_limit = 8M
post_max_size = 4M
upload_max_filesize = 4M
2- اگه فایل htaccess. هم دارین، دقیقاً همون کد بالا رو توی اون هم در ابتدای همه کدهاش اضافه کنید.
3- این کد رو هم در ابتدای فایلی که همه جا ضمیمه میشه (مثل config.php) یا خود فایل فرم (نه فایل مقصد فرم) کپی کنید:
ini_set('meemory_limit', '8M');
ini_set('post_max_size', '4M');
ini_set('upload_max_filesize', '4M');
موفق باشید.
دوستان عزیز لطفاً اگه مشکلتون برطرف میشه، تاپیک رو همینطوری رها نکنید و اطلاع بدین تا دیگران هم متوجه بشن و درصورت بروز مشکل مشابه، سریعتر به جواب برسن. موفق باشید.
سلام میشه بگین،چطوری مشخص کنم که به طور مثال حداکثر k فایل دانلود بشه و حداکثر سایز کلی n باشه و اندازه هر کدوم حداکثر mباشه؟
شما سمت کلاینت نهایتاً میتونید یک محدودیت کلی تحت عنوان MAX_FILE_SIZE بگذارین که حجم مجاز برای هر فایل رو مشخص میکنه. حجم کلی هم که میشه تعداد تگهای input از نوع file که گذاشتین، ضربدر MAX_FILE_SIZE
ازطرفی تعدادشون هم که دست خودتونه (چندتا تگ input از نوع file گذاشتین).
البته باز هم سمت سرور باید اعتبارسنجی لازم رو انجام بدین. مثال:
$count = count($_FILES);
$flag = true;
foreach($_FILES as $file)) {
if($file['error'] != 0 && $file['size'] > 1048576)) {
$flag = false;
}
}
if($flag) {
// process files
}