解決済みの質問
お聞きしますがチャット等で<input type="submit" value="入室" name="submit">で入室できますがこれだと自分のフレーム内からはみ出してしまいます。
CGIを組まないで外部からHTMLだけでやりたいのですが無理でしょうか?
ちなみに
<form method="post" action="http://" name="enter">
名前<input type="text" name="user" value="名前">
<input type="submit" value="入室" name="submit">
</form>
こんな感じで、これだと
<frameset rows="100,*">
<frame src="1.html" name="1">
<frame src="2.shtml" name="2">
</frameset>
で、1が先程の入室画面で2を発言後の画面で3を発言画面だとします。
1から3に飛ばし、発言した言葉を2に送るようにしたいのですが1で入室画面を押すと、元の本チャットへ戻ってしまうので困ります。
後、<frameset>の中の背景等を強制的に他の色にしてみせる事はできませんでしょうか?
投稿日時 - 2005-12-14 17:02:03
勘違いしていたらすいません。
もしかして、
「自分のサイトから他のチャットサイトにCGI等を使用せずにログインできないか?」
ということでしょうか?
そういうことなら可能かもしれませんが、著作権の問題が絡んできます。
実装方法としては
<form method="post" action="http://" name="enter">
の部分を
<form method="post" action="【対象サイトの入室のaction】" name="enter">
とするだけで可能です。
【具体例】
対象チャットの「入室」のところにある「action」が「in.cgi」でそのサイトへのふるパスが「http://hoge.ne.jp/chat/in.cgi」であったすると、自分のサイトの「action」に「http://hoge.ne.jp/chat/in.cgi」と書いてやればよいことになります。
この場合、自分のサイトにCGI実行環境が無くてもチャットを実施することが可能です。
ただし、その場合には相手のサイトが「他サーバからのCGI実行」を許可している必要がありますが、ほとんどの場合は許可されていませんので無理でしょう。。。
あと、著作権の問題についてですがWeb上では「他サイトのコンテンツを自サイトのコンテンツとして使用する」という行為が問題になります。
いろいろしがらみがある問題なので、もし「他サイトへ入室」したいならもろもろの調査をすることをお勧めします。
投稿日時 - 2005-12-19 09:48:03
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(4件中 1~4件目)
一応、#3 補足で提示された先ですが、
ここでの「入室」って、発言ページへの遷移だけですけど・・・???
当然「発言」はCGIの呼び出しですが。
まぁこの間でのデータの保持方法ですが、端末側での動的ということでスクリプト(JavaScript)の採用となります。
フォームデータの送信を GET で行う事によりデータは URL の一部となります。
後は受けての方で JavaScript により URL の取得,編集により付加していたデータを取り出します。
取り出した後に HTML へ値を編集(変更)します。
別にクッキーを用いても可能です。送信時に送信データをクッキーとして保持し受信側でクッキーを取得・・・。
後は同じく取得したデータで HTML へ値を編集(変更)します。
さらにフレームを利用しての方法も提示しましたが、これは各ファイルのドメインが違ったりとセキュリティの問題で扱えない場合がありますので注意・・・。
で、方法ですが、フレームの枠側のファイルは個々のページが遷移している時でも変わっていません。
これを利用して枠側のファイルにデータを保持してもらう方法です。
window.top なり window.parent で子から親が扱えます。(制限はありますので、個々の処理に注意。ただ今回の変数でのデータ保持程度は可だったと思います。)
この様にデータを保持・溜め込む事は可能です。
ただし、サーバではそのデータは届いていなかったり届いていても使われていません。
つまり「入室」しても当人以外にはなんの変化もないという事です。
チャットでよくみる「○○さん、いらっしゃい。」という定型の自動文句はCGIでないと無理です・・・。
それで、「書き込む」という言葉がポイントに!
サーバに「書き込む」という処理をCGIと言います。
先に説明しました。
端末側の処理は、HTML や JavaScript です。
端末が CGI でというのは言葉として成立しません。
次にサーバ側ですが、HTML や JavaScript は何もしません。端末が要求するのは、そのファイルを送れという要求です。
サーバ側でなんらかの処理をする物があったら、それはCGIです。というか、しつこい様ですがサーバでの処理のことをCGIと言う訳ですから・・・。
という事で、HTMLのみでという発言は、サーバにて何の処理もしないという事なのですが・・・・・。
>CGIで出力していますが無理矢理HTMLのみで送りたいのです。
これを言葉通り言うと、単にリンクを貼れば良いだけなのですが???
で、目的が達成できないという場合は、判っていると言いつつ判っていないという事なのですけどぉ~
宿題とか仕掛けが問題なら話は別ですが、
利用するという目的がなんらかある場合は
何をしたいのかが本当に見えているのか不明です。
本当に「入室」とは何か自分としてまとまっているのか。
「入室」によってどの様な変化を求めているのか。
「チャット」とは何か自分として明確化しているのか。
望む動作を実現するには、どの様な情報が必要か洗い出されているか・・・・・。
で、「CGI」とは何か。
サーバとは端末(クライアント)とは・・・等々、理解,イメージできているか・・・。
CGI絡みの事ですから、結構大変だと思いますがぁ・・・。
投稿日時 - 2005-12-17 05:25:07
>CGIのチャットをHTMLタグを使って外部から書き込みたいわけです。
非常に疑問なのですが、何を以って書き込みとするのでしょうか?
言葉をそのまま説明すると、書き込む,読み込むなどの動的処理をする物をCGIと言うのですが・・・。
また、閲覧側が接しているのはCGIが出力したHTML等だったりで・・・。
JavaScript によって、情報の溜め込みは可能です。
アドレスの一部として保持しまわるなりクッキーを使うなりフレームを利用しての他ファイルでの変数での保持などいろいろ考えられます。
ただいずれもその操作している端末に閉じた世界での事です。
チャット(別々の端末で会話)と考えると、情報を共有しないと無理という事で、サーバ側でのデータ処理,保持が必要でしょう。で、その様なサーバ側の処理の仕掛けをCGIというのですが・・・。
逆に言ってしまえば、CGIを組まないという事はサーバ側で処理しないという事でデータの共有がないという事なのですが・・・・・。
(CGIは特定の言語の事でなくて仕組みの事です。)
参考URL:http://e-words.jp/w/CGI.html
投稿日時 - 2005-12-16 04:21:45
補足
>非常に疑問なのですが、何を以って書き込みとするのでしょうか?
>言葉をそのまま説明すると、書き込む,読み込むなどの動的処理をする物をCGIと言うのですが・・・。
>また、閲覧側が接しているのはCGIが出力したHTML等だったりで・・・。
えっとそれは分かってますよ。
CGIで出力していますが無理矢理HTMLのみで送りたいのです。
>JavaScript によって、情報の溜め込みは可能です。
>アドレスの一部として保持しまわるなりクッキーを使うなりフレームを利用しての他ファイルでの変数での保持などいろいろ考えられます。
>ただいずれもその操作している端末に閉じた世界での事です。
>チャット(別々の端末で会話)と考えると、情報を共有しないと無理という事で、サーバ側でのデータ処理,保持が必要でしょう。で、その様なサーバ側の処理の仕掛けをCGIというのですが・・・。
情報の溜め込みとはどういうことでしょうか?
こんな感じです。
http://kochi.the-ninja.jp/
(一応、許可はもらっています)
投稿日時 - 2005-12-16 15:59:05
本来の問題点がもしかして違うのかなぁと感じちょっと・・・
>入室画面を押すと、
>元の本チャットへ戻ってしまうので困ります。
非常に気になるこの一文ですが、
そもそも「入室」って何と考えていますか?
単に発言画面へ遷移したいだけなら form の action を変えれば良いだけ・・・。
入力値(名前)も引き渡したいなら発言画面の方で自分の URL に付加されている文字列を取得,編集すればよし・・・(method が GET だったか POST だったか覚えていませんが・・・)
ただしその時点ではサーバ側に情報は伝わっていません。
そこで「入室」をどうとらえているのかが・・・。
投稿日時 - 2005-12-15 07:37:32
補足
CGIのチャットをHTMLタグを使って外部から書き込みたいわけです。
何処のチャットでも名前を入れて入りますよね?
その名前等をHTMLタグを使って引渡したいわけです。
「入室」をした時点でHTMLタグで自分のサーバー内の3に情報と共に引き渡したいのです。
投稿日時 - 2005-12-15 13:56:15
少し質問の意図がわかりづらいので間違っていたらすいません。
要は「CGIなどの動的な仕組みを使わないでJavaScriptとかだけでなんとかならないか?」ということでしょうか?
そういう前提で記入します。
結論から言うと無理です。
理由は、JavaScriptとかだと他の端末に情報を送ることができないからです。
自分が開いているブラウザ内だけで自問自答するなら話は別ですが。
投稿日時 - 2005-12-14 17:16:22
補足
確かに質問の内容が分かりづらいですね。
申し訳ございません。
>要は「CGIなどの動的な仕組みを使わないでJavaScriptとかだけでなんとかならないか?」ということでしょうか?
はい。そういう事です。
やはり無理ですか・・・。
分かりました。
有難う御座います。
投稿日時 - 2005-12-14 17:19:49
OKWaveのオススメ
おすすめリンク