2012-01-26 7 views
0

ユーザメッセージを受け取り、それを受信者に送信するフォームがあります。 PHP側では、私は3つの変数:$senderid,$recipientidおよび$messageidを持っています。これまでのところ、私はAjaxのスクリプトにそれを渡すために残りのようにVAR SENDERID = $('#senderid').val();を使用しています例PHP変数を隠された入力なしでAjaxに渡します。

<input type="hidden" id="senderid" value="<?php echo $senderid; ?>" /> 
<input type="hidden" id="recipientid" value="<?php echo $recipientid; ?>" /> 
<input type="hidden" id="messageid" value="<?php echo $messageid; ?>" /> 
<textarea id="message" name="message" rows="5" cols="10"></textarea> 

のために、しっかりと上の隠し入力を使用してきました。これは正常に動作します。私が気に入らないのは、隠された入力が隠されていても変更できるということです。誰かが$senderid,$recipientid$messageidの値をFirebugで変更できます。もし誰かがそれをしたら、それは私のメッセージシステムを完全にねじ込むでしょう。隠れた入力を使わずにAjaxに変数を渡す方法はありますか?

+4

クライアントは常にHTML/JavaScriptを編集できます。サーバー側の検証を実装する必要があります。 – spidEY

+0

なぜセッション変数を使用しないのですか? – YonoRan

+2

クライアント側から来るものは、チェックしないとシステムが壊れる可能性があります。送信者が誰であるかを確認する必要がある場合は、変数はサーバー側、おそらく$ _SESSION変数にとどまる必要があります。 – Andri

答えて

1

これを行う簡単な方法はありません。あなたはjavascriptの変数、または何らかの形でハッシュされたイベントなどを渡すことができます。シャー機能付き。しかし、あなたのやり方を考え直すことをお勧めします。例えば

これは、他のユーザーへのメッセージフォームのようなものされている場合、あなたは以下のことができた:

  • senderid、私はあなたがセッションからこれを取ることができるように、ユーザーにログインし、これが現在のものであると仮定します。
  • recipientidこれは隠された入力にすることができますが、現在のユーザーが実際に受信者にメッセージを送信できるかどうかを確認できます(たとえば、受信者が友人の場合リスト)。

とにかく、ブラウザから送信されたデータは信頼できません。

+0

ありがとうございます。 – sam

関連する問題