পিএইচপি সর্বোচ্চ_ ইনপুট_ভারস


85

আমি একটি max_input_varsত্রুটি বার্তা পাচ্ছি ।

আমি বুঝতে পারি যে একটি php.iniসেটিংস রয়েছে যা 5.3.9 সংস্করণ দিয়ে এটি শুরু করতে পারে তবে আমি সংস্করণ 5.1.6 চালিয়ে যাচ্ছি।

আমি যখন আমার 5.1.6 সার্ভারের জন্য কনফিগারেশন তথ্য দেখি এটির max_input_varsমান 1000 হয়।

আমার প্রশ্নটি: যদিও আমি 5.1.6 চালাচ্ছি, আমি এই সেটিংটি দেখছি phpinfo()তবে এটি php.iniফাইলটিতে নেই। এর মানে কি এই যে পিএইচপি এর এই সংস্করণে মানটি হার্ড কোডড এবং পরিবর্তন করা যায় না?


4
আমি max_input_varsপিএইচপি 5.1.6 উত্স কোডে মোটেও কোনও রেফারেন্স দেখতে পাচ্ছি না সুতরাং আপনি কীভাবে phpinfo () আউটপুটে এটি দেখছেন তা আমি নিশ্চিত নই। যতদূর আমি জানি,
5.3.9 এর

4
অনেকগুলি প্যারামিটারের ডিফল্ট থাকে যা হার্ড-কোডড হয় তবে আপনি এখনও একটি নতুন মান নির্ধারণ করতে পারেন। কিছু php.in.in এ সুস্পষ্টভাবে সেট করা হয়নি এর অর্থ এই নয় যে আপনি এটি পরিবর্তন করতে php.ini ব্যবহার করতে পারবেন না।
অক্টোবর

আপনি কোন ত্রুটি বার্তা পাবেন? আপনার প্রশ্নের সাথে এটি যুক্ত করুন।
হ্যাক্রে


এর থেকে আপগ্রেড করার পরে আমি এই ত্রুটির 5.1.6 -> 5.3.3দিকে দৌড়লাম, তারপরে আবার ডাউনগ্রেড হব 5.1.6। আমাকে ছুঁড়েছে কারণ সেই বিকল্পটি 5.1.6 php.iniফাইলটিতে নেই। আমি লাইনটি যুক্ত করেছি, সংখ্যাটি ধাক্কা মেরে ফেলেছি, এবং আমার ত্রুটি / সমস্যা চলে গেছে।
JoshP

উত্তর:


48

আপনি এটি php.ini এ যুক্ত করতে পারেন এবং এটি কাজ করা উচিত - কেবল এটি পিএইচপি 5.3.6 এ পরীক্ষিত।


ধন্যবাদ, এটি জানার মতো, যদিও আমি 5.3.3 এ আছি এবং কোনও আনন্দ নেই।
ভাউনী

এই সুস্পষ্ট পয়েন্টারটির জন্য ধন্যবাদ, গুরুত্ব সহকারে - আমি এক ঘন্টা ধরে এই সেটিংটির সন্ধান করছিলাম .... যতক্ষণ না আমি এটি দেখেছি, এটি ডামি যুক্ত করুন!
jamesTheProgrammer

4
@ ওয়াঘানি আপনি নোট করুন যে আপনি যদি বিটনামির স্ট্যাকের উপরে থাকেন তবে যদি আপনি এটি ব্যবহার করছেন তবে আপনাকে পিএইচপি-এফএমপি পুনরায় চালু করতে হবে। কেবল অ্যাপাচি পুনরায় চালু করা সাহায্য করবে না এবং এমনকি /opt/bitnami/php/etc/php.ini এ পরিবর্তন করার পরেও প্রয়োজন হবে না
শ্রেনিক

101

পিএইচপি নেটে রেফারেন্স:

http://php.net/manual/en/info.configration.php#ini.max-input-vars

দয়া করে নোট করুন, আপনি রান-টাইমে ফাংশন সহ এই নির্দেশিকাটি সেট করতে পারবেন না ini_set(name, newValue)eg

ini_set('max_input_vars', 3000);

এটি কাজ করবে না.

ডকুমেন্টেশনে বর্ণিত হিসাবে, এই নির্দেশিকাটি কেবলমাত্র ডিরেক্টরি স্কোপ অনুযায়ী সেট করা যেতে পারে, যার অর্থ .htaccess ফাইল, httpd.conf বা .user.ini (পিএইচপি 5.3 থেকে)।

Http://php.net/manual/en/configration.changes.modes.php দেখুন

Php.ini এ নির্দেশিকা যুক্ত করা বা htaccess এ নিম্নলিখিত লাইনগুলি স্থাপন করা কাজ করবে:

php_value max_input_vars 3000
php_value suhosin.get.max_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000

4
অথবা php.ini এ 3 টি সুহসিন নির্দেশনা স্থাপন করা ঠিক আছে।
আলাইন টাইম্বলো

4
আপনার যদি php.ini অ্যাক্সেস থাকে তবে নির্দেশিকা বাক্য গঠন max_input_vars = 3000(+ সমান চিহ্ন)।
প্যারাপ্লুয়াই

@ shorif2000 .user.ini ফাইলটি ব্যবহার করে আইআইএস, পিএইচপি 7 ডাব্লু / উইনক্যাশে আমার একই সমস্যা ছিল। প্রথম সমস্যা ছিল ক্যাশে। অবশেষে কাজ না হওয়া পর্যন্ত আমি .user.ini এ এলোমেলো ক্রমে লাইনগুলি সরিয়ে নিয়েছি moved দ্বিতীয় সমস্যা, 1000 থেকে 2000 পরিবর্তন করার কোনও প্রভাব ছিল না, কিন্তু যখন আমি পুরো লাইনটি অন্য লাইনে স্থানান্তরিত করি তখন এটি কার্যকর হয়েছিল।
রায়ান ব্রিসকল

20

5.3.3 দিয়ে এই ঠিক করার চেষ্টা করেছেন এবং কোনও পরিবর্তন নেই। আশেপাশে গুগলিং আমি এই ওয়েব পৃষ্ঠাটি পেয়েছি http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/ অন্যান্য সেটিংসের বিশদ যা আপনার সার্ভার যদি সুহসিন প্যাচ ব্যবহার করে তবে পরিবর্তনের প্রয়োজন যা আবাচে ডেবিয়ানের অধীনে করে।

সাইটটি ব্যাখ্যা করে:

সুতরাং, আপনি যদি এই সংখ্যাটি বাড়াতে চান, বলুন, ডিফল্ট নম্বরটি যা 1000 এর থেকে 3000, আপনাকে এই php.ini এই লাইনগুলি লিখতে হবে:

সর্বোচ্চ_পিন্ড_ভর্স = 3000 সুহোসিন.পস্ট.ম্যাক্স_ভারস = 3000 সুহসিন.রেকোস্ট.ম্যাক্স_ভারস = 3000

আমি এটি পরীক্ষা করেছি (php.ini এ / etc / php5 / apache2 এবং / etc / php5 / cli উভয় ক্ষেত্রেই সেটিংস যুক্ত করেছি এবং অ্যাপাচি সফলভাবে পুনরায় চালু করেছি) তবে এখনও phpinfo- তে কোনও ম্যাক্স_পিনপ_ভার্স পরিবর্তনশীল নয়।

কয়েকটি সাইট পিএইচপি 5.3.9 এর দিকে প্রথম পিএইচপি সংস্করণ হিসাবে নির্দেশ করবে যেখানে এই পরিবর্তনটি গ্রহণ করবে, সুতরাং আরটিএম সঠিকভাবে না করার জন্য আমার দোষটি প্রথম স্থানে রয়েছে, যদিও আমি লোকেরা 5.3.3 এর উপরে সংস্করণে এটি কাজ করছে তা দেখতে আগ্রহী তবে 5.3.9 এর নিচে।


9

আপনার পিএইচপি.আইএনআই ফাইলটিতে সর্বোচ্চ_ ইনপুট_ভার্স মানটি অসম্পূর্ণ করতে হবে এবং এটি (এক্সপ্রেস 2000) বাড়িয়ে তুলতে হবে, আপনার সার্ভারটি পুনরায় চালু করতে ভুলবেন না এটি এটি 99,99% এর জন্য সহায়তা করবে।


এটি আমার পক্ষে উবুন্টু 12.04 এ কাজ করে নি। এটি 3000 এ সেট করুন এবং ব্যবহৃত sudo service apache2 restart। আমার কি উবুন্টু পুনরায় চালু করা দরকার?
মোটরবাবি

@ মোটারবাবি, আপনি যদি এই মানটি php.ini তে মন্তব্য করেন তবে আপনার কেবল অসুবিধা হবে এবং পুনরায় চালু পরিষেবাগুলি ছিল। পুনঃসূচনা ওএসের দরকার নেই, তবে এটি করা যেতে পারে, তবে আমি এর কোনও অর্থ দেখছি না। যদি আপনার কাছে এটি না থাকে তবে @ lubosdz সমাধানটি ব্যবহার করুন। যদি উভয়ই সহায়তা না করে, তবে আপনি সঠিক জায়গায় পরিবর্তন করছেন কিনা তা পরীক্ষা করে দেখুন, উদাহরণস্বরূপ আপনার কাছে বেশ কয়েকটি php.ini ফাইল রয়েছে। এছাড়াও আপনি পুনরায় লোডিং কনফিগারেশনের জন্য "সুডো সার্ভিস অ্যাপাচি 2 রিলোড" কেবল ব্যবহারের চেষ্টা করতে পারেন
ওলেগ সপিশুকুক

লাইন ছিল। আমি ;মানটি সরিয়ে 3000 এ পরিবর্তন করেছি likely সমস্যাটি সম্ভবত ব্রাউজারের ক্যাশে। পিএইচপিএমইএডমিন বন্ধ করে একটি নতুন ট্যাবে খোলা হয়েছে এবং এটি এখন কাজ করে। ধন্যবাদ!
মোটরবাবি

7

এটি এখনই 2018 Aআমি যখনই আমাকে অনুরোধ পাঠিয়েছি যা এর চেয়ে বেশি হবে আমি তখনই এই সমস্যায় আটকে গিয়েছি max_input_vars। এবং আমি এমন একটি সমাধান নিয়ে এসেছি যা আমার মতো নতুনরা পরম পরিবর্তনের পরে পিএইচপি এফএমপি পরিষেবা পুনরায় চালু করতে ভুলে গিয়েছিল max_input_vars। কারণ আমি কেবল apache2পরিষেবাটি পুনরায় চালু করার চেষ্টা করেছি , তবে পিএইচপি এফএমপি নয়

  1. আপনার ইচ্ছানুসারে অবিরাম কোড /etc/php/7.0/fpm/php.iniএবং নম্বর সেট করুন
    max_input_vars = 4000
  2. পিএইচপি এফএমপি পরিষেবা পুনরায় চালু করুন, যেমন আমি পিএইচপি 7 ব্যবহার করি Therefore
    sudo service php7.0-fpm restart

আশা করি এটি
পরীক্ষা করাতে সহায়তা করে Debian Stretch,php7.0


আমি কীভাবে পরিবর্তনগুলি প্রয়োগ করা হয় এবং কীভাবে এতগুলি সমাধান পড়তে পারি তা নিশ্চিত করার চেষ্টা করে একটি পুরো দিন নষ্ট করেছি। এগুলি সবগুলি php.ini এ পরিবর্তন করার পরে উল্লেখ করা হয়েছে আপনার অ্যাপাচি পুনরায় চালু করা উচিত, যা কোনও পার্থক্য করেনি। এই সমাধান হিসাবে উল্লিখিত হিসাবে php7.2-fpm পুনরায় চালু করা সমস্যার সমাধান!
নাইট্রেইন

3

এই নির্দেশের ব্যবহার হ্যাশের সংঘর্ষগুলি ব্যবহার করে এমন পরিষেবা আক্রমণগুলিকে অস্বীকার করার সম্ভাবনা হ্রাস করে। এই নির্দেশের দ্বারা বর্ণিত চেয়ে আরও ইনপুট ভেরিয়েবলগুলি থাকলে, একটি E_WARNING জারি করা হয় এবং অনুরোধ থেকে আরও ইনপুট ভেরিয়েবলগুলি কেটে দেওয়া হয়।

আমি অনুরোধটি সিরিয়াল করে অ্যাপ্লিকেশন কার্যকারিতা বাড়িয়ে দিতে বা ব্লকগুলির মাধ্যমে অনুরোধটি প্রেরণ করে ডিফল্ট মানটি 1000 না বাড়ানোর এবং প্রস্তাব দিতে পারি। অন্যথায়, আপনি এটি প্রয়োজন কনফিগারেশন প্রসারিত করতে পারেন।

এটি অবশ্যই php.ini এ সেট আপ করা দরকার


3

মনে রাখবেন যে আপনাকে এটি সেন্টোস 6-এ কাজ করতে ব্যবহৃত "php.ini" এর পরিবর্তে Centos7 "" .user.ini "ফাইলটিতে রাখতে হবে। কেবলমাত্র সেই ডিরেক্টরিকে প্রভাবিত করার জন্য আপনি যে কোনও উপ-ডিরেক্টরিতে ".user.ini" রাখতে পারেন।

.user.ini:

max_input_vars = 3000

Centos7 এবং PHP 5.6.33 এ পরীক্ষিত T


2

পিএইচপি_ভ্যালু সর্বাধিক ইনপুট_ভার্স 6000

"এই সাইটের লাইনটি আপনার সাইটের .htaccess ফাইলে রাখুন।"


0

.Htaccess ফাইলটি দেখতে নতুন সিপ্যানেলস ব্লক করে বা আপনি যদি একটি .user.ini যুক্ত করেন তবে আপনি এটি দেখতে সক্ষম হবেন না। তবে সামান্য হ্যাক দিয়ে আপনি এটি কার্যকর করতে পারেন। উদাহরণস্বরূপ wp-config.php সম্পাদনা করুন এবং URL বারে wp-config.php কে .htaccess দ্বারা প্রতিস্থাপন করুন এখন আপনি মানগুলি পেস্ট করতে পারেন এবং সংরক্ষণ করতে পারেন। এখানে চিত্র বর্ণনা লিখুন


0

ওয়ার্ডপ্রেসে মেনু আইটেম যুক্ত করতে ঠিক একই সমস্যা হয়েছিল। আমি উবুন্টু 18.04, পিএইচপি 7.0 এ ওয়ার্ডপ্রেস 4.9.9 ব্যবহার করছি। আমি কেবল নিম্নলিখিত লাইনটি uncommented করে এটিকে 1500 এ বাড়িয়েছি/etc/php/7.0/apache2/php.ini

; How many GET/POST/COOKIE input variables may be accepted<br>
max_input_vars = 1500

তারপরে পরিবর্তনটি প্রভাবিত করতে নিম্নলিখিতটি ব্যবহার করুন:

sudo apache2ctl configtest  #(if it does not return ok Apache will not start)
sudo service apache2 reload

আশা করি এইটি কাজ করবে.


0

"পিএইচপি বার্তা: পিএইচপি সতর্কতা: অজানা: ইনপুট ভেরিয়েবলগুলি 1000 ছাড়িয়ে গেছে ph

এই পিএইচপি কনফিগারেশন প্যারামিটার সর্বোচ্চ_ ইনপুট_ভারগুলি কেবল আপনার জিইটি / পোস্ট / কুকি প্যারামিটারকেই প্রভাবিত করবে এটি আপনার যে কোনও ফর্ম ইনপুটকেও নিয়ন্ত্রণ করে।

এর মান সেট বা পরিবর্তন করতে নীচের পদক্ষেপগুলি অনুসরণ করুন।

1) আপনার php.ini ফাইলটিতে এটি ব্যবহার করে বিদ্যমান সেটিংস / মানটি পরীক্ষা করে php.ini ফাইলটি ব্যবহার করে সনাক্ত করুন

<?php echo getinfo(); ?>

কী নীচে সন্ধান করুন: লোড কনফিগারেশন ফাইল: /etc/php/5.6/fpm/php.ini

2) সম্পাদনাযোগ্য মোডে php.ini ফাইলটি খুলুন এবং সর্বাধিক_পুট_ভারগুলি অনুসন্ধান করুন এই লাইনটি আপনার বিদ্যমান ডিফল্ট সেটিংয়ে 1000 এর ডিফল্ট মান সহ মন্তব্য করা যেতে পারে, তাই সরান; এটিকে নিরঙ্কুশ করতে এবং আপনার উপযুক্ত মান যেমন 2500 দিয়ে এটি সম্পাদনা করতে।

3) ফাইলটি সংরক্ষণ করুন এবং নীচে ব্যবহার করে পিএইচপি এর পরিষেবাদি পুনরায় চালু করুন sudo service php5.6-fpm restart

একইভাবে আপনি আপনার স্বাচ্ছন্দ্যে অন্য কোনও অনুরূপ পিএইচপি কনফিগারেশন আপডেট করতে পারেন।


0

শুধু পরিপূরক। একটি ভাগ করা সার্ভারে mod_suphp ব্যবহার করে আমার একই সমস্যা ছিল।

4 ম্যাক্স_পুট_ভারস (সুহসিন অন্তর্ভুক্ত) ঘোষণা করা, এটি সমাধান হয়নি, এটি কেবল 1000 ওয়ার্স (ডিফল্ট) এ ছাঁটাই করে রেখেছিল, এবং "পিএইচপি_ভ্যালু ম্যাক্স_পিন্ট_ভারস 6000" ঘোষনা করে .htaccess ত্রুটি 500 কে নিক্ষেপ করেছে।

সমাধানটি হ'ল .htaccess এ নিম্নলিখিতটি যুক্ত করা ছিল যা php.ini ফাইলটি পুনরাবৃত্তভাবে সেই পথে প্রয়োগ করে

suPHP_ConfigPath /home/myuser/public_html

-6

হ্যাঁ, এটি php.ini এ যুক্ত করুন, অ্যাপাচি পুনরায় চালু করুন এবং এটি কাজ করা উচিত।

আপনি যদি চান তবে এটি উড়তে পরীক্ষা করতে পারেন ini_set("max_input_vars",100)


8
এটি কাজ করবে না, দেখুন php.net/manual/en/info.configration.php । ইনরি_সেট নয়, প্রতি ডিরেক্টরি ভার্চুয়াল হোস্ট বা htaccess সেট করতে হবে।
লুবসডজ

আমরা ini_set ফাংশনের মাধ্যমে এই পরিবর্তনশীলটি সেট করতে পারি। এই উত্তর কেন ভোট নেমেছে? php.net/manual/en/info.configration.php
আহমদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.