0

私のコードにはリンクがあります:

 <a href='http://www.anotherpageinmywebsite.com'>Click for the other page</a>

ユーザーがこのリンクをクリックすると、値を PHP セッション変数に保存する必要があります。私はAjaxもiframeもGET変数も使用したくありません(セッション変数は機密データであるため、ユーザーに表示されたくありません)、EDITもページにすべてのリンクを配置したくありませんフォーム内。

それは可能であるように思われます-結局のところ、リンクをクリックすると、新しいページをロードするためにWebサーバーへの呼び出しが生成され、自然な「この新しい Web ページをロードする」要求を Web サーバーに送信するためにリンクが通過する処理を行いますか?

ユーザーがリンクをクリックしてPHPセッション変数を更新するときに、この自然に発生する一連のイベントに「ピギーバック」するにはどうすればよいですか(できればGET変数、ajax、またはiframeを使用せずに)。

4

2 に答える 2

0

ユーザーが Web サーバーにコールバックするリンクをクリックしたときに、ブラウザのデフォルトの動作を利用したかったのです。そのデフォルトの動作に「ピギーバック」して、更新されたセッション変数を送信したかったのです。セッション変数を更新するためにサーバーへの余分な呼び出しを回避しようとしていましたが、「GET 変数は許可されていません」という要件がありました。

最後にパントし、Ajax 呼び出しをコーディングしてセッション変数を設定しました。GET 変数を使用せずにリンクをクリックするというデフォルトの動作に「ピギーバック」する方法を理解できませんでした。

于 2013-07-29T15:05:57.430 に答える
0

PHP ベースのフレームワークを使用していて、URL に従ってページを提供するコントローラーがあると仮定すると、実際には非常に簡単です。

CodeIgniter を使用していると仮定しますが、ロジックはほとんどの MVC で同じです。

<?php

class Web extends Controller {

  // this will fire when you access http://mysite.com/mypage
  function mypage($encoded_value) {
    $decoded_value = decode($encoded_value);

    // although CI has a different way of doing this
    $_SESSION['mypagesessionvar'] = $decoded_value; 

    $this->load->view('mypage'); // this loads the actual page
  }

}
于 2013-07-27T19:17:50.423 に答える