2012-04-08 16 views
1

私の最初の投稿は...私はルールを制動しないことを願っています。 1つのフィールドを持つ単純なフォームのPHP:名前URLを変更せずにページをロードして相対パスを維持する

ユーザーは彼/彼女の名前を入れて送信します。ファイルb.phpはフォームのアクションフィールドにあり、フォームを取得します。

b.phpは、ユーザーの入力に応じてスライドショーを読み込む必要があります。フォルダ "clients"があり、フォルダJohnとMaryがあるとしましょう。これらのフォルダのそれぞれには、インデックスファイル、イメージ、CSS、JSなどのサブフォルダがあります。インデックスファイルは、./images/pic1.jpg ./display.cssなどのサブフォルダへの相対パスを持ちます。

ここに私の問題があります: xyz.com/b.phpになるURLを変更せずにJohn/index.htmlを読み込みたい iFrameを使用すると、xyz.com/clients/がソースコードに表示されますJohn/index.htmlが読み込まれ、PHPのインクルード( "xyz.com/clients/John/index.html")を使用すると、John/index.htmlにある相対パスは機能しません。

私はスライドショーの物理的な場所を隠そうとしているので、ユーザーが見る限り同じURLの下でいつでもそれらを提供できます。相対パスを絶対パスに変更すると、私が隠そうとしているすべてのものが奪われるため、動作しません!

問題を説明するためにフォーム、フォルダ名などを簡略化しました。誰もが解決策を提案することができます。

+0

ようこそ! –

+0

http://stackoverflow.com/questions/136458/change-the-url-in-the-browser-with-loading-the-new-page-using-javascriptを参照してください –

+1

あなたの相対URLは公開されているので、その内容を隠す別の方法であなたの考えを良くする。 ユーザーがスライドショーから画像を右クリックし、「別のタブで画像を開く」を選択すると、絶対パスが公開されると考えられます。 セキュリティ上の理由から非表示にする場合は、PHPプロキシ(パラメータを受け取って正しい画像を出力するスクリプト)を使用して画像を表示する方がよいでしょう。 – LawfulHacker

答えて

2

私は質問を完全に理解していませんが、<base>が役に立ちます。ページがロードされた場所ではなく、別のURLを基準にして、ページからのすべてのリンクを作成するようにブラウザに指示します。

+0

Juan、ありがとうファイルの場所を隠すという私の問題を完全に解決するわけではありません。実際の解決策は、セルジオとガブリエルが提案したようなものかもしれません。 – Rasul

関連する問題