পিওএসপি পোস্টের ডেটা দিয়ে পুনর্নির্দেশ


241

আমি এই বিষয়ে কিছু গবেষণা করেছি, এবং এমন কিছু বিশেষজ্ঞ আছেন যারা বলেছিলেন যে এটি সম্ভব নয় , তাই আমি বিকল্প সমাধান চাইব।

আমার অবস্থা:

পৃষ্ঠা এ: [চেকআউট.এফপি] গ্রাহকরা তাদের বিলিংয়ের বিশদটি পূরণ করে।

পৃষ্ঠা বি: [প্রক্রিয়া.এফপি] একটি চালান নম্বর উত্পন্ন করুন এবং গ্রাহকের বিবরণ ডাটাবেসে সঞ্চয় করুন।

পৃষ্ঠা সি: [তৃতীয় পক্ষ ডটকম] তৃতীয় পেমেন্ট গেটওয়ে (কেবলমাত্র পোষ্টের ডেটা গ্রহণ করুন)।

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

তৃতীয় পক্ষের পেমেন্ট গেটওয়ে আমাদের এপিআই নমুনা দিয়েছে, নমুনাটি গ্রাহকের বিবরণ সহ চালান নম্বরটি পোস্ট করুন। আমরা চাই না যে সিস্টেমটি অযাচিত চালান সংখ্যা বাড়িয়ে তুলুক।

এটির জন্য কি কোন সমাধান আছে? আমাদের বর্তমান সমাধানটি গ্রাহকের পক্ষে পৃষ্ঠা এ-তে বিস্তারিত পূরণের জন্য, তারপরে পৃষ্ঠা বিতে আমরা সেখানে অন্য সমস্ত গ্রাহকের বিবরণ প্রদর্শন করে একটি অন্য পৃষ্ঠা তৈরি করব, যেখানে ব্যবহারকারীরা পৃষ্ঠা সি-তে পোস্ট করার জন্য একটি কনফার্ম বোতামটি ক্লিক করতে পারেন where

আমাদের লক্ষ্য গ্রাহকদের কেবল একবার ক্লিক করতে হবে।

আশা করি আমার প্রশ্ন পরিষ্কার হয়েছে :)


আমি এর জন্য সদৃশ বলে মনে করি না, কারণ আমার লক্ষ্যটি পিএইচপি পৃষ্ঠার ভিতরে রয়েছে, পোষ্টের ডেটা পাস করুন এবং এটি পুনর্নির্দেশ করুন। সিআরএল আমি এটি করা সম্ভব বলে মনে করি না। কেবলমাত্র এর জন্য বিকল্পের জন্য বিশেষজ্ঞের সন্ধান করুন
শিরো

8 308 পুনর্নির্দেশ কোড?
ব্যবহারকারী 2284570

উত্তর:


212

সমস্ত প্রয়োজনীয় ডেটা এবং ক্রিয়া পৃষ্ঠা সিতে সেট করে পৃষ্ঠা বিতে একটি ফর্ম তৈরি করুন এবং পৃষ্ঠা লোডে জাভাস্ক্রিপ্টের সাথে জমা দিন। আপনার ডেটা ব্যবহারকারীকে খুব ঝামেলা ছাড়াই পৃষ্ঠা সি তে প্রেরণ করা হবে।

এটি করার একমাত্র উপায়। পুনঃনির্দেশ হ'ল একটি 303 এইচটিটিপি শিরোনাম যা আপনি http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html এ পড়তে পারেন , তবে আমি এর কয়েকটি উদ্ধৃত করব:

অনুরোধের প্রতিক্রিয়াটি ভিন্ন ইউআরআইয়ের অধীনে পাওয়া যায় এবং সেই উত্সটিতে জিইটি পদ্ধতি ব্যবহার করে পুনরুদ্ধার করা উচিত। এই পদ্ধতিটি প্রাথমিকভাবে একটি পোস্ট-সক্রিয় স্ক্রিপ্টের আউটপুটটিকে ব্যবহারকারী এজেন্টকে একটি নির্বাচিত সংস্থায় পুনঃনির্দেশ করার অনুমতি দেওয়ার জন্য বিদ্যমান। নতুন ইউআরআই মূলত অনুরোধ করা সংস্থার বিকল্প বিকল্প নয়। 303 প্রতিক্রিয়া ক্যাশে করা উচিত নয়, তবে দ্বিতীয় (পুনঃনির্দেশিত) অনুরোধের প্রতিক্রিয়া ক্যাশেযোগ্য হতে পারে।

আপনি যা করছেন তা অর্জনের একমাত্র উপায় হ'ল মধ্যবর্তী পৃষ্ঠা যা ব্যবহারকারীকে পৃষ্ঠা সি তে প্রেরণ করে আপনি এখানে কীভাবে তা অর্জন করতে পারেন তার একটি ছোট / সাধারণ স্নিপেট এখানে:

<form id="myForm" action="Page_C.php" method="post">
<?php
    foreach ($_POST as $a => $b) {
        echo '<input type="hidden" name="'.htmlentities($a).'" value="'.htmlentities($b).'">';
    }
?>
</form>
<script type="text/javascript">
    document.getElementById('myForm').submit();
</script>

জাভাস্ক্রিপ্টবিহীন ব্যবহারকারীরা আপনার পরিষেবাটি ব্যবহার করতে সক্ষম হবেন তা নিশ্চিত করার জন্য আপনার কোনও নোসক্রিপ্ট ট্যাগের ভিতরে একটি সাধারণ "নিশ্চিত" ফর্ম থাকা উচিত।


2
আমার লক্ষ্য পৃষ্ঠা এ -> পৃষ্ঠা সিতে রয়েছে, পৃষ্ঠা বি হ'ল নিয়ন্ত্রক (ব্যবসায়িক যুক্তি) চালান নম্বর উত্পন্ন করে। সিস্টেম ভিউ থেকে পৃষ্ঠা এ-> পৃষ্ঠা বি-> পৃষ্ঠা সি, তবে ব্যবহারকারীর দৃষ্টিভঙ্গি থেকে পৃষ্ঠা এ-> পৃষ্ঠা বি হওয়া উচিত, তাদের কখনও পৃষ্ঠা বি উপস্থিত থাকতে হবে না।
শিরো

3
@ পিটার: স্মার্ট পরামর্শ +1। শুধুমাত্র সমস্যাটি হল এই যে যখন পৃষ্ঠার সি ধাক্কা ব্যাক বোতাম ব্যবহারকারী পাতা সি পুনরায় জমা হয় তাছাড়া আপনি এনকোড করতে ভুলে গেছি হয় $aএবং $bব্যবহার করে htmlentities/htmlspecialcharsদেখুন stackoverflow.com/questions/6180072/php-forward-data-post/...
মার্কো Demaio

8
এখানে প্রশ্ন জাভাস্ক্রিপ্ট ক্লায়েন্ট উপর অক্ষম করা হয় কি? পৃষ্ঠাগুলি বি পৃষ্ঠায় সি পুনর্নির্দেশ করবে না, তাই না?
ইমরান ওমর বুখশ

24
<noscript><input type="submit" value="Click here if you are not redirected."/></noscript>এর মধ্যে<form>
nullability

3
languageঅ্যাট্রিবিউট নিন্দা করা হয়েছে, এটি হওয়া উচিত<script type="text/javascript">...</script>
অ্যালেক্স ডব্লিউ

34
/**
 * Redirect with POST data.
 *
 * @param string $url URL.
 * @param array $post_data POST data. Example: array('foo' => 'var', 'id' => 123)
 * @param array $headers Optional. Extra headers to send.
 */
public function redirect_post($url, array $data, array $headers = null) {
    $params = array(
        'http' => array(
            'method' => 'POST',
            'content' => http_build_query($data)
        )
    );
    if (!is_null($headers)) {
        $params['http']['header'] = '';
        foreach ($headers as $k => $v) {
            $params['http']['header'] .= "$k: $v\n";
        }
    }
    $ctx = stream_context_create($params);
    $fp = @fopen($url, 'rb', false, $ctx);
    if ($fp) {
        echo @stream_get_contents($fp);
        die();
    } else {
        // Error
        throw new Exception("Error loading '$url', $php_errormsg");
    }
}

17
প্রথমদিকে এটি স্বীকৃত উত্তরের চেয়ে আরও ভাল দেখায়, আমি নোট করেছি যে এটি সরবরাহিত $urlদিকে পুনর্নির্দেশ করে না - এটি কেবলমাত্র পৃষ্ঠার বিষয়বস্তুগুলির সাথে বিদ্যমান পৃষ্ঠার বিষয়বস্তুগুলিকে প্রতিস্থাপন করে $urlগুরুত্বপূর্ণভাবে , $urlপৃষ্ঠায় পিএইচপি কোড মূল্যায়ন করা হয় না।
আইপ্যাডডিফলার ২০১১

@ আইপ্যাড ডেভেলপার ২০১১, ইউআরএলে আপনার পিএইচপি কোড নেই! পিএইচপি কোড ক্লায়েন্টে নয়, সার্ভারে কার্যকর করা হয়।
এডুয়ার্ডো কুওমো

1
redirect_post(), যা সার্ভার সাইড, পিএইচপি কোড, এর জন্য সার্ভারের কাছে একটি অনুরোধ প্রেরণ করে $url। যদি এটি $urlএকটি .phpপৃষ্ঠা হয় তবে আমি নোট করব যে পিএইচপি মূল্যায়ন হয় না - এইচটিএমএল এটি পিএইচপি ট্যাগ সহ এখনও ফিরে আসে। সার্ভার সাইড স্ক্রিপ্টে POST ডেটা পাঠানোর পুরো পয়েন্টটি কী নয়?
আইপ্যাড ডেভেলপার ২০১১

2
@ এডুয়ার্ডো কুমো এই পদ্ধতিটি কেবল অ্যাবসোল্ট ইউআরেলের সাথে কাজ করে, কারণ ফোপন () কীভাবে কাজ করে: php.net/manual/en/function.fopen.php এটি এখনও একটি সুন্দর নিফটির উত্তর ty
ওমন

@ ঠিক আছে! "এটি সম্পর্কিত ইউআরএল নিয়ে কাজ করে না?" একটি প্রশ্ন নয়, একটি বিবৃতি। বিভ্রান্তির জন্য দুঃখিত
এডুয়ার্ডো কুইমো

25

আমার আরও একটি সমাধান রয়েছে যা এটি সম্ভব করে তোলে। এটি ক্লায়েন্ট জাভাস্ক্রিপ্ট চলমান প্রয়োজন (যা আমি মনে করি যে এই দিনগুলিতে একটি ন্যায্য প্রয়োজন)।

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

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

এইচটিএমএল:

<form id="paymentForm" method="post" action="https://example.com">
  <input type="hidden" id="customInvoiceId" .... />
  <input type="hidden" .... />

  <input type="submit" id="submitButton" />
</form>

জেএস (সুবিধার জন্য jQuery ব্যবহার করে তবে খাঁটি জাভাস্ক্রিপ্ট তৈরি করতে তুচ্ছ):

$('#submitButton').click(function(e) {
  e.preventDefault(); //This will prevent form from submitting

  //Do some stuff like build a list of things being purchased and customer details

  $.getJSON('setupOrder.php', {listOfProducts: products, customerDetails: details }, function(data) {
  if (!data.error) {
    $('#paymentForm #customInvoiceID').val(data.id);
    $('#paymentForm').submit();   //Send client to the payment processor
  }
});

1
এই সমাধানটিতে একটি সমস্যা রয়েছে, যদি কেউ এই পৃষ্ঠায় জাভাস্ক্রিপ্ট বন্ধ করে রাখেন, রিফ্রেশ করুন এবং জমা দিন, এটি কোনও কিছু না সঞ্চয় করে পেমেন্ট পেজে যাবে। এটি ফাঁকা হতে পারে।
২২:২।

2
তারপরে জাভাস্ক্রিপ্টের সাহায্যে কেবল পেমেন্টফর্ম অ্যাকশন সেট করবেন? জেএস অক্ষম থাকলে, ফর্মটি জমা দেবে না।
মাইকমুরকো

ব্যবহারকারী জেএস বন্ধ করে দিলে আমাদের কোনও সমস্যা না ঘটানো উচিত - কারণ পেজ বিতে আমাদের যেতে হবে সম্ভবত সম্ভবত একটি আঙুলের ছাপ তৈরি করা বা একটি অর্ডার কোড ইত্যাদি যোগ করা উচিত these এগুলি ছাড়া তৃতীয় পক্ষের পৃষ্ঠা সিটি ব্যর্থ হওয়া উচিত, বা খারাপভাবে, যখন কোনও আদেশ কোড ছাড়াই তৃতীয় পক্ষ থেকে ফলাফল আমাদের কাছে ফিরে আসে তখন আমাদের আদেশটি গ্রহণ করা উচিত নয়। জেএস গ্রহণযোগ্য হলে এটি সামগ্রিকভাবে একটি ভাল সমাধান।
কোডার

19

আপনি জাভাস্ক্রিপ্টের সাথে গোলযোগ করতে না চাইলে $ _SESSION আপনার বন্ধু your

ধরা যাক আপনি একটি ইমেল পাস করার চেষ্টা করছেন:

পৃষ্ঠায় একটি:

// Start the session
session_start();

// Set session variables
$_SESSION["email"] = "awesome@email.com";

header('Location: page_b.php');

এবং পৃষ্ঠা বি তে:

// Start the session
session_start();

// Show me the session!  
echo "<pre>";
print_r($_SESSION);
echo "</pre>";

অধিবেশন ধ্বংস করতে

unset($_SESSION['email']);
session_destroy();

জাভাস্ক্রিপ্ট সংস্করণে কেন আপনি এটি কম সুরক্ষিত বিবেচনা করছেন?
আদম বারানইয়

1
না, আমি জাভাস্ক্রিপ্টের সাথে তুলনা করছি না। কেবলমাত্র সাধারণভাবে $ _SESSION + কুকি বলার চেয়ে কিছুটা কম সুরক্ষিত হতে পারে, যদিও $ _SESSION নিজেই বেশ সুরক্ষিত। এখানে আরও তথ্য: স্ট্যাকওভারফ্লো
রবার্ট সিনক্লেয়ার

এবং কিভাবে অধিবেশন বন্ধ?
সাইয়েদ মুহাম্মদ ইদ্রিস

আপনার কি সেশন বন্ধ করার দরকার আছে?
ইভান পি

6

আপনি পিএইচপিকে একটি পোস্ট করতে দিতে পারেন, তবে তারপরে আপনার পিএইচপি সমস্ত প্রকার জটিলতার সাথে ফিরে আসবে। আমি মনে করি সবচেয়ে সহজ হ'ল প্রকৃতপক্ষে ব্যবহারকারীকে পোষ্টটি করতে দেওয়া।

সুতরাং, আপনি কি পরামর্শ দিয়েছেন দয়া করে - আপনি প্রকৃতপক্ষে এই অংশ পাবেন:

পৃষ্ঠাগুলি এ গ্রাহক বিশদটি পূরণ করুন, তারপরে পৃষ্ঠা বি তে আমরা অন্য পৃষ্ঠা তৈরি করব সেখানে সমস্ত গ্রাহকের বিশদ দেখান, একটি সিএনফিরম বোতামটি ক্লিক করুন তারপরে পৃষ্ঠা সিতে পোস্ট করুন

তবে আপনি প্রকৃতপক্ষে বি পৃষ্ঠায় একটি জাভাস্ক্রিপ্ট জমা দিতে পারেন, তাই ক্লিক করার দরকার নেই। এটিকে লোডিং অ্যানিমেশন সহ একটি "পুনর্নির্দেশ" পৃষ্ঠা করুন এবং আপনি সেট হয়ে গেছেন।


আমরা এখন এটিই করি। আমি ভাবছি এটির সমাধানের জন্য পিএইচপি এর থেকে আরও ভাল যুক্তি আছে কি? ধন্যবাদ। ;)
শিরো

হ্যাঁ, HTTP- র দিকে আরও বেশি, তবে আমি পিএইচপি পরিবেশে কাজ করি, তাই আমার মনে হয় উভয় ট্যাগ। ধন্যবাদ! কর্নেল শ্র্যাপেল
শিরো

6

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে jQuery সহ আমার কাছে আরও একটি বিকল্প সমাধান রয়েছে:

var actionForm = $('<form>', {'action': 'nextpage.php', 'method': 'post'}).append($('<input>', {'name': 'action', 'value': 'delete', 'type': 'hidden'}), $('<input>', {'name': 'id', 'value': 'some_id', 'type': 'hidden'}));
actionForm.submit();

উপরের কোডটি jQuery ব্যবহার করে একটি ফর্ম ট্যাগ তৈরি করতে, লুকানো ক্ষেত্রগুলি পোস্ট ক্ষেত্র হিসাবে সংযোজন করে এবং শেষে জমা দিতে। পৃষ্ঠাটি পোষ্ট ডেটা সংযুক্ত করে ফর্ম টার্গেট পৃষ্ঠাতে ফরোয়ার্ড করবে।

এই ক্ষেত্রে PS জাভাস্ক্রিপ্ট এবং jQuery প্রয়োজন। অন্যান্য উত্তরের মন্তব্যে প্রস্তাবিত হিসাবে, <noscript>জেএস অক্ষম থাকলে ক্ষেত্রে আপনি স্ট্যান্ডার্ড এইচটিএমএল ফর্ম তৈরি করতে ট্যাগ ব্যবহার করতে পারেন ।


5

একটি সাধারণ হ্যাক রয়েছে, পোস্ট করা মানগুলির $_SESSIONএকটি ব্যবহার করুন এবং তৈরি করুন arrayএবং আপনি একবার File_C.phpএটি ব্যবহার করতে পারেন তারপরে এটি প্রক্রিয়াটি নষ্ট করে দেওয়ার পরে।


আপনি যা বলতে চান তার একটি ছোট উদাহরণ সরবরাহ করতে পারেন?
ক্যারো

3
আমার বোধগম্যতা হল, পৃষ্ঠা সি একটি বাহ্যিক উত্স, যা পোস্টের মান গ্রহণ করে তবে সেশন নয়।
নারায়ণ ভান্ডারী

3

আমি জানি যে প্রশ্নটি phpওরিয়েন্টেড, তবে একটি POSTঅনুরোধ পুনর্নির্দেশের সর্বোত্তম উপায় সম্ভবত ব্যবহার করা হচ্ছে .htaccess, যেমন:

RewriteEngine on
RewriteCond %{REQUEST_URI} string_to_match_in_url
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*)$ https://domain.tld/$1 [L,R=307]

ব্যাখ্যা:

ডিফল্টরূপে, আপনি যদি পোস্টের ডেটা দিয়ে অনুরোধটি পুনর্নির্দেশ করতে চান তবে ব্রাউজারটি এটি জিইটি-এর মাধ্যমে পুনর্নির্দেশ করে 302 redirectএটি অনুরোধের সাথে যুক্ত সমস্ত পোষ্ট ডেটাও ড্রপ করে । পিওএসটি লেনদেনের যেকোন অনিচ্ছাকৃত পুনঃ-জমা দিতে বাধা দেওয়ার জন্য সাবধানতা হিসাবে ব্রাউজার এটি করে।

তবে আপনি যদি এর ডেটা দিয়ে যেভাবেই পোষ্ট অনুরোধটি পুনর্নির্দেশ করতে চান তবে কী হবে? HTTP 1.1 এ এর ​​জন্য একটি স্থিতি কোড রয়েছে। স্থিতি কোডটি 307অনুরোধ করে যে অনুরোধটি একই HTTP পদ্ধতি এবং ডেটা দিয়ে পুনরাবৃত্তি করা উচিত । সুতরাং আপনি যদি এই স্থিতি কোডটি ব্যবহার করেন তবে আপনার পোস্টের অনুরোধটির ডেটা সহ পুনরাবৃত্তি হবে।

কি SRC


2

আমি পোষ্ট অনুরোধের সাথে একই ধরণের সমস্যার মুখোমুখি হয়েছিলাম যেখানে জিইটি রিকুয়েস্ট আমার ব্যাকএন্ডে ভাল কাজ করছিল যা আমি আমার ভেরিয়েবলগুলি পার করছি The

সুতরাং আমি এটির কাজটি করার একমাত্র উপায় হ'ল পৃষ্ঠাটি লোড হওয়ার পরে একটি লুকানো ফর্ম রাখা এবং একটি পোস্ট জমা দিয়ে মানগুলিকে চাপ দেওয়া।

echo
'<body onload="document.redirectform.submit()">   
    <form method="POST" action="http://someurl/todo.php" name="redirectform" style="display:none">
    <input name="var1" value=' . $var1. '>
    <input name="var2" value=' . $var2. '>
    <input name="var3" value=' . $var3. '>
    </form>
</body>';

1

আপনি $_POSTডেটা সংরক্ষণ করতে সেশনগুলি ব্যবহার করতে পারেন , তারপরে সেই ডেটাটি পুনরুদ্ধার করতে এবং $_POSTপরবর্তী অনুরোধে সেট করতে পারেন ।

ব্যবহারকারী /dirty-Submission-url.php করতে অনুরোধ জমা
দিন:

if (session_status()!==PHP_SESSION_ACTIVE)session_start();
     $_SESSION['POST'] = $_POST;
}
header("Location: /clean-url");
exit;

তারপরে ব্রাউজারটি /clean-submission-urlআপনার সার্ভার থেকে পুনঃনির্দেশ করে এবং অনুরোধ করে। এটি দিয়ে কী করতে হবে তা নির্ধারণ করার জন্য আপনার কিছু অভ্যন্তরীণ রাউটিং থাকবে।
অনুরোধের শুরুতে, আপনি এটি করবেন:

if (session_status()!==PHP_SESSION_ACTIVE)session_start();
if (isset($_SESSION['POST'])){
    $_POST = $_SESSION['POST'];
    unset($_SESSION['POST']);
}

এখন, আপনার অনুরোধের বাকী অংশের মাধ্যমে, আপনি $_POSTপ্রথম অনুরোধটি অনুসারে আপনি যেমন পারেন তেমন অ্যাক্সেস করতে পারেন ।


আপনি বিকল্পভাবে ডেটাটিকে $_POSTএকটি ক্যোয়ারী স্ট্রিংয়ে প্রক্রিয়া করতে এবং পরবর্তী পৃষ্ঠায় সেভাবে প্রেরণ করতে পারেন। কিন্তু তারপরে ডেটা খুব ভয়াবহ আকারে বড় হতে পারে না। এবং ফাইল আপলোডগুলি জড়িত থাকলে এটি সম্ভবত কাজ করে না, তবে আমি নিশ্চিত নই।
রিড

0

এটা চেষ্টা কর:

গেটওয়েতে পুনঃনির্দেশ করতে বি পৃষ্ঠায় HT শিরোনাম সহ ডেটা এবং অনুরোধ প্রেরণ করুন

<?php
$host = "www.example.com";
$path = "/path/to/script.php";
$data = "data1=value1&data2=value2";
$data = urlencode($data);

header("POST $path HTTP/1.1\\r\
" );
header("Host: $host\\r\
" );
header("Content-type: application/x-www-form-urlencoded\\r\
" );
header("Content-length: " . strlen($data) . "\\r\
" );
header("Connection: close\\r\
\\r\
" );
header($data);
?>

অতিরিক্ত শিরোনাম:

Accept: \*/\*
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like 
Gecko) Chrome/74.0.3729.169 Safari/537.36

0

এখানে আরও একটি পদ্ধতি রয়েছে যা আমার পক্ষে কাজ করে:

আপনার যদি অন্য ওয়েব পৃষ্ঠায় পুনর্নির্দেশ করতে হয় ( user.php) এবং পিএইচপি ভেরিয়েবল ( $user[0]) অন্তর্ভুক্ত করে:

header('Location:./user.php?u_id='.$user[0]);

অথবা

header("Location:./user.php?u_id=$user[0]");

এই বিকল্পগুলি GET প্রোটোকল ব্যবহার বোঝানো হয়। এটি ক্লায়েন্টের ব্রাউজারে ভেরিয়েবলগুলি প্রকাশ করে। পরিবর্তে ওপি পোষ্টের সাথে একই আচরণ চেয়েছিল।
সার্জিও এ।

-2
function post(path, params, method) {
    method = method || "post"; // Set method to post by default if not specified.



    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}

উদাহরণ:

 post('url', {name: 'Johnny Bravo'});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.