人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在Ajaxを利用した簡単なノートパットを作成しています。保存の際にAjaxの機能を利用し、リアルタイムで保存できるようにしたのですが、サーバーとのやり取りが分けありでGETメソッドです。

そうなってくると、途中で & が含まれてしまうと&以降のデータ送信がうまくいきません。

そこで質問です。はてなのブックマークエントリでは&を含んだURLでもしっかりと取得できるようになっています。これはどのようにしてやっているのしょうか?言語はPHPにて方法を教えてください。

*%26をつかうは無しで。

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Ajax PHP URL のし はてな
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● jp_ben
●15ポイント

%26をつかうは無しで。とありますが、

あえて、URLエンコードして対処することを提案します。

というよりも、そうしないと日本語などは正常に処理できないことがあるのではないだろうか?

と危惧します。

ブラウザ依存のURLエンコードが不安であればJavaScriptでブラウザに依存しないURLエンコードの方法もあります。

http://user1.matsumoto.ne.jp/~goma/js/utf.html

ご存知だとはおもいますが、GETメソッドの文字数制限にはご注意ください。

ノートパッドということなのでおそらく文字数を制限するか、複数回に分けた送信を行うかすることになるのだろうと思います。

◎質問者からの返答

でも、はてなのエントリはエンコードしていません。この方法を知りたいのです。


2 ● jp_ben
●15ポイント

はてなのエントリというのがどのことかよく分かっていませんが、もしこの送信フォームのことでしたら、ポストで送られているように見受けられます。

GETデータ受信した段階では&で分かれたりしていません。

その後サーバー側のプログラムで分割する処理があるはずです。

それを止めるだけで実現可能だとおもいます。

もし、perlを利用されているのであれば

http://jsgt.org/ajax/ref/test/json/getpost/test3.htm

この辺を参考にされてはいかがでしょうか。


また、URLエンコードを利用しないということはそれ以外送信パラメーターが複数あった場合それを処理するための決まりごとを自身で作成しなければいけないことになりかねません。

(URLエンコードされているために、&や=が処理記号だと判断できる)

特に、ノートパッドということでどんな文字が入力されるか予測が付きにくい状況ではデータを複数種類送ることは困難を極めるのではないかと思います。

URLエンコードの処理は、

クライアント側が、フォームのGETでデータを送るなら、プログラムゼロ行、JavaScriptで送る場合プログラム1行

サーバー側が3行程度のプログラムになると思いますが、

それを回避することで、対処しなければいけなくなる処理は比べ物にならないほど大きなものになると思います。

◎質問者からの返答

エントリとは http://b.hatena.ne.jp/entry/http://www.hereticanthem.com/webtool... です。 entry/の後にブックマークされたURLが入力されているのですが、このURLに&が含まれていても最後まで正しく読み込まれます。

ですのでエンコードせずに送信したいのです。今回はJavascriptの質問ではなくサーバーサイドの技術に関する質問と思ってください。


3 ● くりす
●50ポイント ベストアンサー

PHPのサーバサイドでリクエストのURIを取得する方法があります。

$requestUrI = $_SERVER["REQUEST_URI"];

ここで取得した$requestUrlから正規表現で取得したらどうでしょうか?

※ただ、GETでの送信には確か文字列長の制限があったと思うので、ノートパッドのような長文の送信が発生する可能性があるアプリの用途としてはあまり向いていない気がします。

◎質問者からの返答

なるほど。その手がありましたか。検討してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ