سؤال

كنت أتساءل عما إذا كان أي شخص يعرف الطول الإجمالي الذي يمكن أن يكون عليه المنشور العالمي. على سبيل المثال:

$_POST['formInput'] = "hello world, how long can i be?";

أقوم بإنشاء موقع يدخل فيه شخص ما كمية غير معروفة من chars في نص ، لذلك يمكن أن يكون صفحتين على مستند Word. لذلك إذا كان أي شخص يعرف أي طرق أخرى لكيفية القيام بذلك بصرف النظر عن استخدام منشور عالمي؟ (لا يمكن حفظه في ملف ، لأن بياناته المهمة التي لا أريد أن يجدها الآخرون) والتي ستكون مفيدة للغاية.

شكرًا

هل كانت مفيدة؟

المحلول

تحقق من php.ini post_max_size. هذا عادة ما يكون حوالي 8 ميغابايت افتراضيًا ، ولكن إذا كنت في استضافة مشتركة ، فقد يختلف ذلك بالتأكيد.

; Maximum size of POST data that PHP will accept.
post_max_size = 8M

عليك استخدام $_POST إذا كنت ترغب في إرسال كميات كبيرة من البيانات إلى الخادم. لمزيد من الدراسة ، أقترح التحقق تحميل طريقة النشر في الوثائق.

نصائح أخرى

$_POST يتم ملؤها من جسم HTTP-Request. نظرًا لعدم وجود قيود على حجم HTTP-Request ، لا توجد قيود في طبقة البروتوكول. ومع ذلك ، لدى PHP بعض القيود على مقدار الإدخال الذي ستقرأه. يمكنك التحكم في هذا مع وضع INI post_max_size

يمكن أن تكون هناك مشكلة أخرى هي الحد الافتراضي في php.ini للتوجيه max_input_vars (الافتراضي 1000) ، وليس فقط post_max_size. إذا كان لديك نموذج كبير جدًا مع آلاف مربعات الاختيار ، فستكون صفيف $ _post تحتوي على 1000 مفتاح فقط.

إذا كنت تريد بعض البيانات الكبيرة المرسلة من المتصفح إلى الخادم ، فسيتعين عليك استخدام طريقة نشر HTTP - مما يعني أنه سيتم استلام البيانات ، على جانب PHP ، في $_POST صفيف superglobal ليس هناك الكثير مما يمكنك فعله حيال ذلك.

توجيه التكوين post_max_size يحدد الحد الأقصى للمبلغ من البيانات التي يمكن استلامها باستخدام طريقة POST - قد تحتاج إلى تعيين ذلك بقيمة أعلى من القيمة الافتراضية ، اعتمادًا على احتياجاتك.

وكما قيل في توثيق post_max_size, ، القيمة المحددة ل memory_limit يمكن أن يكون لها أهميتها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top