ফর্ম জমা দেওয়ার পরে পিএইচপি $ _POST অ্যারে খালি


100

আমার তৈরি একটি কাস্টম সিএমএস রয়েছে যা আমার ডেভ বাক্সে (উবুন্টু / পিএইচপি 5 + / মাইএসকিউএল 5 +) পুরোপুরি কাজ করে।

আমি কেবল এটি আমার ক্লায়েন্টের জন্য উত্পাদন বাক্সে সরিয়ে নিয়েছি এবং এখন সমস্ত ফর্ম জমাগুলি খালি missions _POST অ্যারে হিসাবে প্রদর্শিত হচ্ছে।

আমি তথ্যটি যাচাই করার জন্য একটি কৌশল পেয়েছি যা ব্যবহার করে আসলেই পাস করা হচ্ছে file_get_contents('php://input');এবং সেখানে ডেটাটি ঠিক দেখানো হচ্ছে - $_POST/ $_REQUESTঅ্যারেগুলি সর্বদা খালি থাকে।

আমি ফায়ারব্যাগ ( application/x-www-form-urlencoded; charset=utf-8) এর মাধ্যমে কন্টেন্ট-টাইপ শিরোনামগুলিও সঠিক তা যাচাই করেছি ।

AJAX এর মাধ্যমে কোনও ফর্ম জমা দিচ্ছে বা নিয়মিত ফর্ম জমা দেওয়া হচ্ছে না কেন এই সমস্যাটি ঘটছে।

কোন সাহায্য ব্যাপকভাবে প্রশংসা করা হয়!

php  arrays  forms  post 

পোস্ট_ম্যাক্স_সাইজ চেক করুন: মানটি অবশ্যই 8 এমবি হিসাবে সেট করা উচিত, 8 এমবি নয়। সর্বশেষ ক্ষেত্রে, আপনি কোনও ত্রুটি দেখতে পাবেন না, তবে _P _POST আকার 0 এ সেট হবে
সের্গেই কার্পভ

4
সাবধানতা: স্ল্যাশ অনুপস্থিত থাকলে অ্যাপাচি 301 পুনর্নির্দেশ করে।
লায়ানড্রো

উত্তর:


190

আমি জানি যে এই প্রশ্নটি একটি ফর্মের মাধ্যমে পোস্টের বিষয়ে ছিল, তবে জেএসওএন বিষয়বস্তুর ধরণে পোস্ট করার সময় অনুরূপ সমস্যার উত্তর খুঁজতে এখানে এসেছিল। উত্তরটি খুঁজে পেয়েছি এবং এটি ভাগ করতে চেয়েছিল কারণ এতে আমার অনেক বেশি সময় ব্যয় হয়েছিল।

JSON সামগ্রী-টাইপটি ব্যবহার করার সময় $ _POST অ্যারেটি জনবহুল হবে না (কেবলমাত্র আমি বিশ্বাস করি এমন বহু-অংশের ফর্মগুলি সহ)

সমস্যাটি সংশোধন করতে কী কাজ করেছে তা এখানে:

$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);

আশা করি এটি কাউকে সাহায্য করবে!


4
এই কর্মপরিকল্পনাটি উপলব্ধি করে - এটি আমার ব্যাচ-আপডেট
নিয়ামককে ঠিক করেছিল

4
অন্য বিকল্প হ'ল Content-Typeশিরোনামে পরিবর্তন করা application/x-www-form-urlencodedএবং তারপরে আপনার ডেটাটি ক্রমিক করে তোলা $.param(dataObject)। যে সাহায্য করা উচিত।
asukaszBachman

4
@ ŁukaszBachman কিভাবে করবেন যে যদি dataobject ........ ভালো কিছু হয় title=something&body=anything। আমি শিরোনাম এবং বডি এর উপত্যকা পেতে চাই । ডেটাবোজেক্ট ["শিরোনাম"] খালি ফিরে আসে। আমার ক্ষেত্রে $ _POST খালি আছে। এবং ফাইল_জেট_কন্টেন্টস ("php: // ইনপুট") ব্যবহার করে এটি পাওয়ার একমাত্র উপায় ... এটি ছাড়াও এটি জসন এনকোডড নয়।
খুরশিদ আলম

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


88

এখানে আরও একটি সম্ভাব্য কারণ রয়েছে - আমার ফর্মটি ডাব্লুডাব্লুডাব্লু ছাড়াই ডোমেন ডটকমকে জমা দিচ্ছিল। এবং আমি "WWW" যুক্ত করতে একটি স্বয়ংক্রিয় পুনর্নির্দেশ সেট আপ করেছি। প্রক্রিয়াটিতে _P _POST অ্যারেটি খালি হয়ে যাচ্ছিল। সুতরাং এটি ঠিক করার জন্য আমাকে যা করতে হয়েছিল তা ছিল www.domain.com এ জমা দেওয়া


25
দামিট, আমার মধ্যে একটি url পুনর্লিখন htaccessPOSTs কাজ না করার কারণ ছিল। আমি সমস্ত ইউআরএলগুলিতে স্বয়ংক্রিয়ভাবে স্ল্যাশ যুক্ত করেছিলাম, তবে অ্যাকশন হিসাবে কোডটিতে আমি কোনও স্ল্যাশ ছাড়াই url ব্যবহার করছিলাম was আপনার উত্তরটি সাহায্য করেছে, কারণ আমি কখনই .htaccess পরীক্ষা করার চিন্তা করিনি। +1
বাইনার

আমার গোডাড্ডি ব্যবহার করে ডোমেন ফরওয়ার্ডিং ছিল (মাস্কিং সহ) এবং এটি সমস্যার উত্স বলে মনে হচ্ছে han ধন্যবাদ!
ক্রিস প্রিন্স

4
আমারও একই সমস্যা ছিল, এটি আমার .htaccessফাইল থেকে আসছে । এটি .phpইউআরএল থেকে এক্সটেনশানটি কেটে POSTফেলছিল এবং আমার ফর্মটি এক্সটেনশানটির সাথে ইউআরএল-এ প্রবেশ করছিল ।
ইমানুয়েল ভিন্টিলি

25

আমারও একই সমস্যা ছিল। সরল ফিক্স হিসাবে পরিণত হয়েছে। আমি যে ফর্ম ছিল

<ফর্ম ক্রিয়া = "ডিরেক্টরি" পদ্ধতি = "পোস্ট">

ডিরেক্টরি যেখানে ডিরেক্টরি ছিল ... ডিরেক্টরি। আমার POST অ্যারে পুরোপুরি খালি ছিল। আমি যখন আমার ব্রাউজারে ইউআরএলটি দেখি, এটি শেষ দিকে একটি ফরোয়ার্ড স্ল্যাশ সহ প্রদর্শিত হয়েছিল।

আমার ক্রিয়াটির শেষে ফরোয়ার্ড স্ল্যাশ যুক্ত করা কৌশলটি করেছে -

<ফর্ম ক্রিয়া = "ডিরেক্টরি /" পদ্ধতি = "পোস্ট">

আমার $ _POST অ্যারে আবার পূর্ণ হয়েছিল!


4
এটি ঠিক করা উচিত নয়, উদাহরণস্বরূপ কেকপিএইচপি-তে, যেটিতে একটি ভাল রাউটিং সিস্টেম রয়েছে, এতে ব্যর্থ হয়েছে, (আমার অর্থ কেক ব্যর্থ নয়), সম্ভবত এই সমস্যার দিকে দৃষ্টিভঙ্গি কাঠামো বা। Php ফাইল নয়, তবে অ্যাপাচে কিছু কনফিগারেশন, আমি এই সমস্যাটির বিষয়ে আরও তদন্ত করতে চাই। এটা বেশ আকর্ষণীয়।
জেমস

অনুরূপ নোটে, আমার ওপি হিসাবে একই সমস্যা ছিল, তবে কেবল যদি <form>ট্যাগটির কোনও nameবৈশিষ্ট্য না থাকে এবং কেবল আইই তে থাকে।
jkt123

14

নিশ্চিত করুন যে, php.ini এ:

  • track_vars (এটি কেবলমাত্র খুব পুরানো পিএইচপি সংস্করণে উপলভ্য) সেট করা আছে On
  • variables_order চিঠি রয়েছে P
  • post_max_size একটি যুক্তিসঙ্গত মান সেট করা হয়েছে (উদাঃ 8 এমবি)
  • (সুহসিন প্যাচ ব্যবহার করা হলে) suhosin.post.max_varsএবং suhosin.request.max_varsএটি যথেষ্ট বড়।

আমি মনে করি আমার দ্বিতীয় পরামর্শটি আপনার সমস্যার সমাধান করবে।


4
মিঃমেজকে ধন্যবাদ, আপনার অন্তর্দৃষ্টি প্রশংসা করুন এবং সেইগুলি ইনই সেটিংস চেক আউট করবেন এবং যদি সেই কৌশলটি করেন তবে আপনাকে জানাতে হবে। ধন্যবাদ!

4
"পোস্ট_ম্যাক্স_সাইজ" সেটিংটি আমার শোস্টোপার। আমি ফর্ম জমা দেওয়ার সময় একটি বড় ফাইল আপলোড করছিলাম এবং এই সেটিংটিতে কম মান রয়েছে। আমি ফর্মটি জমা দেওয়ার সময় আমি একটি খালি পোস্ট অ্যারে পাচ্ছি।
শশী কাঁথ

9

আমি খুঁজে পেয়েছি যে HTTP থেকে HTTPS এ পোস্ট করার সময়, $_POSTখালি আসে the ফর্মটি পরীক্ষা করার সময় এটি ঘটেছিল, তবে আমি বুঝতে না পারছি না took


5

আমি একটি অনুরূপ এখনও কিছুটা আলাদা সমস্যা পেয়েছি এবং সমস্যাটি বুঝতে 2 দিন সময় নিয়েছে।

  • আমার ক্ষেত্রে POST অ্যারেও খালি ছিল।

  • তারপরে ফাইল_জেট_কন্টেন্টস ('পিএইচপি: // ইনপুট') দিয়ে পরীক্ষা করা হয়েছে; এবং এটিও খালি ছিল।

পরে আমি দেখতে পেলাম যে ব্রাউজারটি পোস্ট জমা দেওয়ার পরে লোড হওয়া পৃষ্ঠাটি রিফ্রেশ করে যদি ফর্ম ডেটা পুনরায় জমা দেওয়ার জন্য নিশ্চিতকরণ জিজ্ঞাসা করে না। এটি সরাসরি পৃষ্ঠা রিফ্রেশ ছিল। তবে যখন আমি ফর্মের URL টি অন্যরকম পরিবর্তিত করেছি তখন এটি POST যথাযথভাবে পাস করছিল এবং পৃষ্ঠাটি রিফ্রেশ করার চেষ্টা করার সময় ডেটা পুনরায় জমা দেওয়ার জন্য বলেছিল।

তারপরে আমি সত্যিকারের ইউআরএলটি দিয়ে কী ভুল তা পরীক্ষা করে দেখলাম। ইউআরএল-তে কোনও দোষ ছিল না, তবে এটি ইউআরএল-এ সূচিপত্র ছাড়া কোনও ফোল্ডারের দিকে ইশারা করছিল এবং আমি সূচক.পিএফ-তে POST পরীক্ষা করছিলাম।

এখানে আমি / to /index.php থেকে পুনঃনির্দেশে সন্দেহ করেছিলাম যার ফলে পিওএসটি ডেটা নষ্ট হয়ে যায় এবং ইউআরএলকে সূচিপত্র.এফপি যুক্ত করার সাথে ইউআরএল পরীক্ষা করা হয়।

দ্যাট ওয়ার্কড

এটি এখানে পোস্ট করেছেন যাতে কেউ এটির সহায়ক মনে করে।


4
আমার একই সমস্যা ছিল, ইউআরএল শেষে '/' ব্যতীত $ $QQUEST তে কিছুই বিদ্যমান না, তবে '/' বা '/index.php' সহ সমস্ত পোস্ট করা ডেটা $ $QQUEST এ বিদ্যমান। এটি আমার nginx সেটিংস বা অন্য কিছু হতে পারে!
মোহামাদ

5

enable_post_data_readingসেটিংস অক্ষম থাকার কারণে এটি ঘটবে। ডকুমেন্টেশন অনুযায়ী:

সক্ষম_পোস্ট_ডেটা_পঠন

এই বিকল্পটি অক্ষম করার ফলে $ _POST এবং $ _FILES জনবসতিপূর্ণ হবে না। পোস্টডেটা পড়ার একমাত্র উপায় তারপরে হবে পিএইচপি: // ইনপুট স্ট্রিম মোড়কের মাধ্যমে। এটি প্রক্সি অনুরোধগুলির জন্য বা কোনও স্মৃতি দক্ষ ফ্যাশনে পোষ্ট ডেটা প্রক্রিয়া করতে দরকারী be


5

আপনি যদি কোনও ডিরেক্টরিতে কোনও সূচী.পিএইচপি ফাইলটিতে পোস্ট করেন তবে /api/index.php আপনার ফর্মটিতে নিশ্চিত হন যে আপনি ফাইলের সম্পূর্ণ ডিরেক্টরিটি নির্দিষ্ট করেছেন

এই

<form method="post" action="/api/index.php"> 
</form>

বা

<form method="post" action="/api/"> 
</form>

কাজ করে।

তবে এটি ব্যর্থ

<form method="post" action="/api"> 
</form>

আমি আসলে ঠিক বিপরীত আছে। আমি আবিষ্কার করেছি যে /my_uriকাজ করবে কিন্তু না /my_uri/
14

4
একই সমস্যা ছিল। দেখে মনে হচ্ছে অ্যাপাচি বা এনগিনেক্স / এপি থেকে / এপিআই / এআইপি / এ পুনর্নির্দেশ যোগ করেছে
জন স্মিথ

স্ল্যাশ অনুপস্থিত থাকলে অ্যাপাচি 301 একটি স্বয়ংক্রিয় পুনঃনির্দেশ করে। আপনার উত্তরের জন্য ধন্যবাদ এবং মন্তব্যগুলিও দরকারী।
লেয়ানড্রো

4

এই মুহুর্তে একটি চমত্কার সমাধানের দরকার নেই তবে এই সমস্যার সম্মুখীন হওয়া অন্যদের ভবিষ্যতের রেফারেন্সের জন্য আমার অনুসন্ধানগুলি ভাগ করতে চেয়েছিলেন। সমস্যার উত্সটি একটি .htaccess ফাইলে 2 ওভারডিডেন পিএইচপি মান ছিল। আমি ডিফল্ট 8 এমবি থেকে ফাইল আপলোডের ফাইলসীম সীমা বাড়ানোর জন্য এই 2 টি মানকে কেবল যুক্ত করেছিলাম - আমি লক্ষ্য করেছি যে এইচটিচেসি ফাইলগুলিতে কেবল এই 2 টি মানই ডিফল্টর চেয়ে বড় বা ছোট যাই হোক না কেন সমস্যাটি সৃষ্টি করে ।

php_value post_max_size xxMB
php_value upload_max_filesize xxMB

আমি আশা করি সমস্ত সুহসিন.পস্ট.এক্সএক্সএক্স / সুহসিন.আপলোড.এক্সএক্সএক্স ওয়ার্সের সীমা বাড়ানোর জন্য অতিরিক্ত পরিবর্তনশীল যুক্ত করেছি তবে দুর্ভাগ্যক্রমে এগুলির সাথে এগুলির কোনও প্রভাব ছিল না।

সংক্ষেপে, আমি এখানে "কেন" সত্যিই ব্যাখ্যা করতে পারি না, তবে এর মূল কারণটি চিহ্নিত করেছি। আমার অনুভূতি হ'ল এটি শেষ পর্যন্ত একটি সুসোসিন / এইচটিসেসি সমস্যা, তবে দুর্ভাগ্যক্রমে যেটি আমি উপরের 2 পিএইচপি ওভাররাইড হওয়া মানগুলি সরিয়ে নেওয়া ছাড়া অন্য কোনও সমাধান করতে সক্ষম হই নি।

আশা করি এটি ভবিষ্যতে কাউকে সহায়তা করবে যেহেতু আমি কয়েক ঘন্টা ধরে এটি বের করেছিলাম killed যারা এটির জন্য আমাকে সাহায্য করতে সময় নিয়েছে তাদের সকলকে ধন্যবাদ (মিঃমেজ, অ্যান্ড্রু)


এটি সার্ভারফল্টে এই প্রশ্নটি জিজ্ঞাসা করার উপযুক্ত হতে পারে, বিশেষত যদি সমস্যাটি সার্ভারে সেট আপ / এইচটিচেসে থাকে।
ডেভিড বলেছেন মনিকা

4
যদি আমার ভুল না হয় তবে আকারটি 'xxM' এর মতো নির্দিষ্ট করা উচিত, এবং 'xxMB' নয়, তাই আমি ভাবছি যে এর সাথে এর কিছু আছে কিনা ...
জেসি ইনাসিও

4

ডিফল্ট হিসাবে "টেক্সট / প্লেইন" হওয়ায় আমি এনটিটাইপ = "অ্যাপ্লিকেশন / x-www-form-urlencoded" ব্যবহার করে সমস্যার সমাধান করতে পারি। আপনি যখন ATA ডেটা পরীক্ষা করে দেখেন সেপ্রেটারটি "পাঠ্য / প্লেইন" এর জন্য একটি স্থান এবং "urlncoded" এর জন্য একটি বিশেষ অক্ষর।

দয়া করে ফ্র্যাঙ্ক


4
<form action="test.php" method="post">
                        ^^^^^^^^^^^^^

ঠিক আছে, এটি নির্বোধ ছিল এবং আমি নিজেকে জনসম্মুখে প্রকাশ করব, তবে পিএইচপি-তে কিছু করার জন্য আমি যখন একটি সামান্য পরীক্ষার স্ক্রিপ্ট ছুঁড়েছি এবং আমার $_POST কোনও কিছুর জন্য ছুঁড়েছি অ্যারেটি খালি ছিল, স্ট্যাকওভারফ্লো আমি প্রথম দেখলাম এবং আমার প্রয়োজনীয় উত্তর খুঁজে পেলাম না I ।

আমি কেবল লিখেছিলাম

<form action="test.php">

এবং পদ্ধতিটি হিসাবে হিসাবে উল্লেখ করতে ভুলে গেছেন POST !

আমি নিশ্চিত কেউ ছিনতাই করবে, তবে এটি যদি অন্য কাউকে সহায়তা করে যারা একই কাজ করে, তবে আমার আপত্তি নেই! আমরা সকলেই সময়ে সময়ে এটি করি!


বিশ্বাস করতে পারি না আমিও তা ভুলে গেছি! আমি কেবল একটি নতুন সার্ভার চেষ্টা করছি, এবং চেষ্টা করেছি যা কনফিগারেশনের কারণে কিছু ছিল ... যাইহোক, অনুস্মারকের জন্য ধন্যবাদ!
স্যামুয়েল আইয়াল ফেরেরিরা

4

আমার ক্ষেত্রে, HTTP থেকে HTTPS এ পোস্ট করার সময়, $ _POST খালি আসে O সমস্যাটি ছিল, এই ফর্মটিতে এই //example.com এর মতো ক্রিয়া ছিল যখন আমি https://example.com এ url স্থির করেছিলাম তখন সমস্যাটি অদৃশ্য হয়ে গেল।


4
আমি মনে করি যে সার্ভারটি কীভাবে সেটআপ হয় তার সাথে সম্পর্কিত related হোস্ট হিসাবে গোড্যাডি ব্যবহার করে আমার একই সমস্যা হচ্ছে। এই সমাধানটি সমস্যার সমাধান করেনি।
একারলস্টেইন

এই সমাধানটি আমার সমস্যা সমাধান করেছে। আমি একটি সুন্দর মাথাব্যথা ছিল।
gokaysatir

3

এখানে একই ইস্যু!

পোস্টম্যানে পোস্ট অনুরোধের মাধ্যমে আমি আমার স্থানীয় সার্ভার কোডের সাথে সংযোগ দেওয়ার চেষ্টা করছিলাম এবং এই সমস্যাটি আমার অনেক সময় নষ্ট করে!

যে কোনও স্থানীয় প্রকল্প (যেমন পোস্টম্যান) ব্যবহার করে তাদের জন্য: "লোকালহোস্ট" কীওয়ার্ডের পরিবর্তে আপনার আইপিভি 4 ঠিকানা (সেমিডিতে আইকনফিগ টাইপ করুন) ব্যবহার করুন। আমার ক্ষেত্রে:

আগে:

localhost/app/login

পরে:

192.168.1.101/app/login

পোস্টম্যান আমাকে স্ক্র্যাপড জসন মান সহ কয়েকটি সমস্যা দিয়েছে যার উদ্ধৃতি চিহ্ন বা ফাঁকা স্থান রয়েছে। এটি একটি নির্দিষ্ট ফর্ম্যাট আশা করে।
টম অ্যান্ডারসন

2

রেফারেন্স: http://www.openjs.com/articles/ajax_xMLhttp_ using_post.php

পোস্ট পদ্ধতি

আমরা কিছু পরিবর্তন করতে যাচ্ছি যাতে অনুরোধ প্রেরণের সময় পোস্ট পদ্ধতি ব্যবহার করা হবে ...

var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
  if(http.readyState == 4 && http.status == 200) {
    alert(http.responseText);
  }
}
http.send(params);

কিছু পোস্ট শিরোনাম অবশ্যই কোনও পোষ্ট অনুরোধের সাথে সেট করা উচিত। সুতরাং আমরা তাদের এই লাইনে সেট করেছি ...

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

উপরের লাইনগুলি সহ আমরা মূলত বলছি যে ডেটা প্রেরণ করা ফর্ম জমা দেওয়ার ফর্ম্যাটে। আমরা যে পরামিতিগুলি প্রেরণ করছি তার দৈর্ঘ্যও আমরা দিই।

http.onreadystatechange = function() {//Call a function when the state changes.
  if(http.readyState == 4 && http.status == 200) {
    alert(http.responseText);
  }
}

আমরা 'প্রস্তুত রাষ্ট্র' পরিবর্তন ইভেন্টের জন্য একটি হ্যান্ডলার সেট করি। এটি জিইটি পদ্ধতির জন্য আমরা একই হ্যান্ডলারটি ব্যবহার করেছি। আপনি এখানে http.responseText ব্যবহার করতে পারেন - অভ্যন্তরীণ এইচটিএমএল (এএএএএচএইচ) ব্যবহার করে একটি ডিভের মধ্যে সন্নিবেশ করুন, এটি (জেএসএন) বা অন্য কোনও কিছু আবিষ্কার করুন।

http.send(params);

অবশেষে, আমরা অনুরোধ সহ পরামিতিগুলি প্রেরণ করি। প্রদত্ত ইউআরএল কেবল এই লাইনটি কল করার পরে লোড হয়। জিইটি পদ্ধতিতে প্যারামিটারটি একটি নাল মান হবে। কিন্তু পোষ্ট পদ্ধতিতে, প্রেরণের জন্য ডেটা প্রেরণের ফাংশনের যুক্তি হিসাবে প্রেরণ করা হবে। প্যারাম ভেরিয়েবলটি দ্বিতীয় লাইনে ঘোষিত হয়েছিল lorem=ipsum&name=binny- সুতরাং আমরা দুটি প্যারামিটার প্রেরণ করি - যথাক্রমে 'ইপসাম' এবং 'বিন্নি' মান সহ 'লোরেম' এবং 'নাম'।


2

আমি জানি এটি পুরানো, তবে আমার সমাধানটি ভাগ করে নিতে চেয়েছিলেন।

আমার ক্ষেত্রে সমস্যাটি আমার .htaccess এ ছিল কারণ আমি আমার পিএইচপি-র সর্বোচ্চ আপলোডের সীমা বাড়াতে ভেরিয়েবল যুক্ত করেছি। আমার কোডটি এরকম ছিল:

php_value post_max_size 50MB
php_value upload_max_filesize 50MB

পরে আমি লক্ষ্য করেছি যে মানগুলি xxM পছন্দ করতে হবে xxMB নয় এবং যখন আমি এটিকে পরিবর্তন করেছি:

php_value post_max_size 50M
php_value upload_max_filesize 50M

এখন আমার $ _POST আগের মতো ডেটা ফিরিয়ে দিয়েছে। আশা করি এটি ভবিষ্যতে কাউকে সহায়তা করবে।


1

আমার ক্ষেত্রে এটি ছিল কারণ আমি ফর্মটি জমা দেওয়ার জন্য jQuery ব্যবহার করার ঠিক আগে পৃষ্ঠায় সমস্ত ইনপুট অক্ষম করতে jQuery ব্যবহার করছিলাম। সুতরাং আমি আমার "প্রতিটি ইনপুট এমনকি 'গোপন' প্রকারগুলি অক্ষম করুন" পরিবর্তন করেছি:

$(":input").attr("disabled","disabled"); 

"শুধুমাত্র 'বোতাম' টাইপ ইনপুট অক্ষম করতে":

$('input[type=button]').attr('disabled',true);

এটি এমনটি ছিল যাতে ব্যবহারকারী দুর্ঘটনাক্রমে দু'বার 'গো' বোতামটি টিপতে না পারায় এবং আমাদের ডিবিটিকে হোস আপ করতে পারেন! দেখে মনে হচ্ছে আপনি যদি 'অক্ষম' বৈশিষ্ট্যটি কোনও 'লুকানো' টাইপ ফর্ম ইনপুটটিতে রাখেন তবে ফর্মটি জমা দিলে তাদের মান পাঠানো হবে না!


1

আমার জন্য, মোড_উইরাইট ইনস্টল না করা অবস্থায় .htaccess পুনঃনির্দেশ করছিল। Mod_rewite ইনস্টল করুন এবং সব ঠিক আছে।

বিশেষত:

<IfModule !mod_rewrite.c>
  ErrorDocument 404 /index.php
</Ifmodule>

চালাচ্ছিল


1

আমি ঠিক কয়েক ঘন্টা একই ধরণের সমস্যা সমাধান করতে ব্যয় করেছি। আমার ক্ষেত্রে সমস্যাটি ছিল

max_input_vars = "1000"

ডিফল্টরূপে, php.ini এ। আমার আপলোড ছাড়াই সত্যিই বিশাল একটি ফর্ম ছিল। php.ini আপলোড_ম্যাক্স_ফাইলসাইজ = "100 এম" এবং পোস্ট_ম্যাক্স_সাইজ = "108 এম" তে সেট করা আছে এবং এটি অবশ্যই আমার ক্ষেত্রে সমস্যা ছিল না। পিএইচপি আচরণটি ফর্মের মধ্যে 1000 ভেরিয়েবল অতিক্রম করে যখন সর্বোচ্চ_আনপুট_ভারগুলির জন্য একই। এটি ফিরে আসে এবং খালি _POST অ্যারে। আমি আশা করি আমি এটি এক ঘন্টা, এবং ঘন্টা আগে পাওয়া যেত।


0

এমআরমেজের পোস্ট ছাড়াও:

কিছু $_POSTভেরিয়েবল (বড় অ্যারে> 1000 আইটেম সহ) অদৃশ্য হয়ে যাওয়ার সমস্যাটি সমাধান করার জন্য আমাকে এই পরিবর্তনশীলটি সেট করতে হয়েছিল :

suhosin.request.max_vars = 2500

" request", " " নয় postসমাধান ছিল ...


0

সম্ভবত সবচেয়ে সুবিধাজনক সমাধান নয়, তবে আমি এটি বুঝতে পেরেছি যে আমি যদি ফর্মের actionবৈশিষ্ট্যটি মূল ডোমেনে সেট করি তবে index.php অ্যাক্সেস করা যায় এবং পোস্ট ভেরিয়েবলগুলি পাওয়া যায়। তবে আমি যদি ক্রিয়া হিসাবে পুনর্লিখিত URL সেট করি তবে এটি কার্যকর হয় না।


0

এই @icesar কি অনুরূপ সাজানোর বলেন

তবে আমি আমার এপিআই-তে অবস্থিত স্টাফ পোস্ট করার চেষ্টা করছিলাম site/api/index.php, কেবল পোস্টটি পোস্ট করার site/apiপরে এটি index.phpনিজে থেকেই হয়ে যায়। আমার $_POSTউড়ে যাওয়ার সময় শূন্য হয়ে যাওয়ার ফলে এটি আপাতদৃষ্টিতে কিছুটা গোলমেলে পড়েছে । কেবল site/api/index.phpএটির পরিবর্তে সরাসরি পোস্ট করা ।


0

আমার সমস্যাটি হ'ল আমি <base>আমার পরীক্ষার সাইটের বেস URL পরিবর্তন করতে এইচটিএমএল ট্যাগটি ব্যবহার করছিলাম। আমি একবার হেডার থেকে সেই ট্যাগটি সরিয়ে ফেললাম, $_POSTডেটা ফিরে আসল।


0

আমার ক্ষেত্রে (ওভিএইচ মিউটিসিé সার্ভারে পিএইচপি পৃষ্ঠা) enctype="text/plain"কাজ করে না ( $_POSTএবং $_REQUESTএটি খালি রয়েছে), নীচের অন্যান্য উদাহরণগুলিও কাজ করে। `

<form action="?" method="post">
<!-- in this case, my google chrome 45.0.2454.101 uses -->
<!--     Content-Type:application/x-www-form-urlencoded -->
    <input name="say" value="Hi">
    <button>Send my greetings</button>
</form>

<form action="?" method="post" enctype="application/x-www-form-urlencoded">
    <input name="say" value="Hi">
    <button>Send my application/x-www-form-urlencoded greetings</button>
</form>

<form action="?" method="post"  enctype="multipart/form-data">
    <input name="say" value="Hi">
    <button>Send my multipart/form-data greetings</button>
</form>

<form action="?" method="post" enctype="text/plain"><!-- not working -->
    <input name="say" value="Hi">
    <button>Send my text/plain greetings</button>
</form>

`

আরও এখানে: পদ্ধতি = "পোস্ট" এনটাইটেপ = "পাঠ্য / প্লেইন" উপযুক্ত নয়?


0

মোড সুরক্ষা থেকে আমি নিম্নলিখিত ত্রুটিটি পেয়েছিলাম:

Access denied with code 500 (phase 2). Pattern match "((select|grant|delete|insert|drop|alter|replace|truncate|update|create|rename|describe)[[:space:]]+[A-Z|a-z|0-9|\*| |\,]+[[:space:]]+(from|into|table|database|index|view)[[:space:]]+[A-Z|a-z|0-9|\*| |\,]|UNION SELECT.*\'.*\'.*,[0-9].*INTO.*FROM)" at REQUEST_BODY. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "345"] [id "300013"] [rev "1"] [msg "Generic SQL injection protection"] [severity "CRITICAL"]

একবার আমি পরীক্ষার জন্য আমার আধুনিক সুরক্ষা কনফিগারেশন সরিয়ে ফেললাম, এটি সমস্ত প্রত্যাশার মতো কাজ করেছিল worked এখন আমার সুরক্ষার জন্য কেবল আমার নিয়মগুলি পরিবর্তন করতে হবে তবে আমার প্রয়োজনের জন্য যথেষ্ট নমনীয় :)


0

নিশ্চিত হয়ে নিন যে আপনি ইনপুট ট্যাগে নাম = " আপনার_সামান্য_নাম " ব্যবহার করেছেন ।

আমি ভুল করে id = " your_variable_name " ব্যবহার করি ।

আমি বাগটি ধরতে অনেক সময় ব্যয় করেছি।


0

nameপ্রতিটি ক্ষেত্রের সম্পত্তি সংজ্ঞায়িত হয়েছে তা নিশ্চিত করুন ।

এটি আপনাকে পিএইচপি-তে একটি খালি পোষ্ট তৈরি করে

<input type="text" id="Phone">

তবে, এটি কাজ করবে

<input type="text" name="Phone" id="Phone">

আমি মনে করি যে সার্ভারটি কীভাবে সেটআপ হয় তার সাথে সম্পর্কিত related হোস্ট হিসাবে গোড্যাডি ব্যবহার করে আমার একই সমস্যা হচ্ছে। এই সমাধানটি সমস্যার সমাধান করেনি।
একারলস্টেইন

যারা যত্নশীল তাদের জন্য আপনার নিজের সেট করার দুঃস্বপ্নে যেতে হতে পারে .htaccess
একারলস্টাইন

-1

ঠিক আছে, আমি ভেবেছিলাম আমার মামলাটি এখানে করা উচিত .... নির্দিষ্ট ক্ষেত্রে আমি পোস্টের অ্যারেটি খালি পেয়ে যাচ্ছিলাম .. ফর্মটি ভালভাবে কাজ করে তবে কিছু সময় ব্যবহারকারীরা অভিযোগ করেন যে তারা সাবমিট বোতামটি চাপলেন এবং কিছুই ঘটেনি .... কিছুক্ষণ খোঁজার পরে, আমি আবিষ্কার করেছি যে আমার হোস্টিং সংস্থার একটি সুরক্ষা মডিউল রয়েছে যা ব্যবহারকারীদের ইনপুটগুলি পরীক্ষা করে এবং পুরো পোস্ট অ্যারে (কেবলমাত্র দূষিত ডেটা নয়) পরিষ্কার করে যদি এটি আবিষ্কার হয়। আমার উদাহরণে, একজন গণিতের শিক্ষক সমীকরণটি প্রবেশ করার চেষ্টা করছিলেন: dy + dx + 0 = 0; এবং ডেটা সম্পূর্ণ মুছে ফেলা হয়েছিল।

এটি ঠিক করার জন্য, আমি এখনই তাকে পরামর্শ দিচ্ছি পাঠ্য অঞ্চলে ডাই + ডিএক্স + 0 = শূন্য হিসাবে ডেটা প্রবেশের জন্য এবং এখন এটি কাজ করে .... এটি কারও কিছু সময় বাঁচাতে পারে ..


4
ব্যবহারকারীদের ত্রুটিযুক্ত কোডের জন্য ভাতা দেওয়ার অনুরোধ করা একটি স্টার-স্টার্টার নয়।
ফ্রি ওয়ার্ল্ডার

এটি আসলে ত্রুটিযুক্ত কোড নয় তবে আপনি কোনও নতুন হোস্টিং সরবরাহকারী হিসাবে বিবেচনা করতে পারেন। বিকল্পভাবে ইনপুটটি অন্য কোনও আকারে পোস্ট করুন, যেমন HTML ইউআরএল এনকোডিং।
টম অ্যান্ডারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.