2012-05-12 32 views
0

私はPHPを初めて使いました。私は約3週間前に開始しました。文字列エンコード、配列デコード

$ _POSTで別のページに渡す文字列があり、2番目のページで$ _GETを使用してこれらのURLを取得し、必要に応じて分割します。

私の問題は、私の最初のページでは、私は文字列を使用しています。私はそれを暗号化してプランテキストとして渡すことができます。 2ページ目で私はそれを解読して配列として取得しなければなりません。

$ _POSTと互換性のある暗号化方法や関数があります(私はそれを別のページに送ることができます)。それを配列として解読しますか?

2番目のページが実際にウェブサイトに接続しており、支払い方法であるため、この方法が必要です。だから私は、ユーザーが手作業でURLを編集し、彼らが得る製品のための$の量を減らすことを望んでいない。

あなたの助けを借りてください。

+0

$ _POSTはPOST要求を使用してサーバーに送信されるパラメーターを受信するために使用されます。パラメーターは要求の本体で渡されます。フォームの提出またはajaxリクエストを介して)。 $ _GETは、パラメータがリクエストURLにあるという事実を除いて、実際には同じ概念です(例:www.domain.tld?param1 = value1&param2 = value2&...) – Javaguru

+0

ユーザは常に、 HTTPプロトコルのユーザーの知識の問題です。だからあなたは本当にそのような情報を要求と一緒に渡すべきではありません。 – Javaguru

+0

セッションを使用します。暗号化は、あなたよりも経験豊富な人によってしばしば覆される可能性があります。 – goat

答えて

0

は、ユーザーのカートの中身を渡している(彼がしたいつまり項目注文のように)支払サイトに

<?php 
$items = $_POST['items']; // Array of items .. 
$quantities = $_POST['quantity']; // The array of quantities for each item .. 

// Calculate the total price .. 
$totalPrice = 0; 
foreach($items as $idx => $itemID) { 
    if($quantities[$idx]>0) { 
    totalPrice += getPriceFromDB($itemID) * $quantities[$idx]; 
    } 
} 

echo 'Total Price to pay: '.$totalPrice; 
?> 

:あなたは次のコードを使用してアイテムにアクセスすることができます「/ paymentPage.phpするURL /」ファイル内のサーバーに

<form action="URL/to/paymentPage.php" method="post"> 
<!-- Item 1 --> 
<input type="hidden" name="items[0]" value="productID1"/> 
<input type="hidden" name="quantity[0]" value="quantity1"/> 
<!-- Item 2 --> 
<input type="hidden" name="items[1]" value="productID2"/> 
<input type="hidden" name="quantity[1]" value="quantity2"/> 
<!-- ... --> 
<!-- Item n --> 
<input type="hidden" name="items[n]" value="productIDn"/> 
<input type="hidden" name="quantity[n]" value="quantityn"/> 

<input type="submit" value="Order"/> 
</form> 

: したがって、次のようなフォームを作成する必要があります関数getPriceFromDBは実際にあなたのデータベースや他の場所からID $ itemIDのアイテム/製品の価格を取得します:)

ただし、ユーザアイテムは通常セッションに保存されるため、再び提出する必要があります..;)

3

これは間違っていると思います。あなたは決してユーザーの側から来る情報を信頼します。

たとえば、ユーザーが希望するアイテムを示すフォームを送信する場合は、フォームに価格を含めないでください。代わりに、信頼できるサーバー(データベース)から価格を入手します。

+0

私はこれを言い忘れましたが、もちろん、あなたは絶対に正しいです – Jeroen

+1

@ user1391170、別のページのデータを使用する必要がある場合は、それを '$ _SESSION'に貼り付けてください。セッションデータはサーバー側に格納され、セッションIDクッキーはクライアントに格納されます。 – Brad

0

完全にあなたが達成しようとしているものを理解していないにも関わらず、あなたはBase64エンコードを使用することができますが:あなたはおそらく何をしたいのか

$encoded_string = base64_encode ($string); 

$decoded_string = base64_decode ($encoded_string); 
+0

Base64は暗号ではありません。ほとんど誰もがプログラミングについて何かを知っているので、簡単に表示および編集できます。 –

+0

はい、Emilですが、なぜそれが問題になるのですか?彼はプレーンテキストとして渡したいと思っています。これはbase64を使って行うことができます – Jeroen

+0

「暗号化したい」と「ユーザーが手動でURLを編集して金額を下げないようにする」という質問から、 –

関連する問題