すいません、アホです。いろいろ調べましたが、まったくみつかりませんでした。この質問をすることは初歩すぎて失礼かとおもいますが、堪忍してくださいませ。
LWPで相互リンクをされているかどうかをCGIファイルの登録ページ後に判断したいプログラムですが、同じCGIファイル内に登録ページがありまして、<INPUT size=30 name=url>のように相手リンクを登録した自分のHTMLを書いてsubmitさせて、
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
で、取り出し、$FORM{'url'}まできます。URLがちゃんと$FORM{'url'}に入っているのは画面で確認できるのですが、下記のように指定した場合、相手HTMLを取得できません。エラーメッセージはでないで、真っ白い画面がでます。
$url = $FORM{'url'};
use LWP::Simple;
$content = get("$url");
print "Content-type: text/html\n\n$content";
下記はちゃんとうつります。
$url = 'http://www.yahoo.co.jp';
use LWP::Simple;
$content = get("$url");
print "Content-type: text/html\n\n$content";
これは$FORM{'url'}のエンコードの問題なのでしょうか?
まことに申し訳ありませんが、その方法をできれば具体的にお教えくださいませ。
何卒、宜しく御願いいたします。m_ _ m
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> エラーメッセージはでないで、真っ白い画面がでます。
ウェブブラウザを変えて試しても同様ですか?
その時にウェブブラウザでソース表示をさせてみましたか?
Internet Explorer の場合は文字エンコードの選択がうまくいかない時や
構文エラーがあると真っ白い画面になることがあります。
(バージョンにもよりますが)
> これは$FORM{'url'}のエンコードの問題なのでしょうか?
$FORM{'url'} が正常にとれているかどうかはこの変数をファイルに吐き
出してみたりしてはどうでしょうか?
open(OUT,">check.txt"); print OUT $FORM{'url'};close(OUT);
まともな URL ではない場合や Not Found や Forbidden などのエラーの
場合には $content になにも入らないと思われるので
> print "Content-type: text/html\n\n$content";
この行で Use of uninitialized value in concatenation (.) or string
などのエラーとなると思われます。
# 環境について何も書かれていないのでなんとも言えませんがサーバへ
# root でログインできるのであれば tcpdump や ethereal や wireshark
# (tethereal や tshark) 等で通信内容をキャプチャしてみても良いかも
# しれません。
この回答への補足
大変もうしわけございません。
3日間この問題でずーと悩み続けたんですが、
再度コードをみていたら、コードのミスが原因でした。
大変失礼を致しました。面目ありません。
申し訳ございませんでした。
このたびはご丁寧にご回答頂きまして、
まことにありがとうございましたm_ _m
ご丁寧に本当に感謝致します。まことにありがとうございます。m__m
>>$FORM{'url'} が正常にとれているかどうかはこの変数をファイルに吐き出してみたりしてはどうでしょうか?
open(OUT,">check.txt"); print OUT $FORM{'url'};close(OUT);
ご指摘がありました上記は試しました、無事に指定のURLが入っていることが確認できました。
>># 環境について何も書かれていないのでなんとも言えませんが
レンタルサーバーでさくらインターネットさんを利用しております。
環境は下記でわかりますでしょうか?
http://www.sakura.ne.jp/rentalserver/matrix.html …
恥を見るのはわかっておりますが、私のヘボプログラムを下記に映しました。
どうかご参照を御願いいたします。
問題の部分は"これが問題です"とわかりやすく記しております。
大体半分より下ぐらいにあります
http://good.saloon.jp/test/lwp/link.txt
下記でやりますと、$contentには何もうつりませんが、
#$FORM{'url'}の中身はhttp://good.saloon.jpと指定のURLが入っているのは確認致しました。
$url = $FORM{'url'};
use LWP::Simple;
$content = get("$url");
print "Content-type: text/html\n\n$content";
下記でやりますと、無事に$contentが表示されております。
$url = 'http://good.saloon.jp';
use LWP::Simple;
$content = get("$url");
print "Content-type: text/html\n\n$content";
まことに再度お手数をお掛けして申し訳ございませんが、何卒お教えくださいませ。m__m
No.1
- 回答日時:
> 下記のように指定した場合、相手HTMLを取得できません。
エラーメッ> セージはでないで、真っ白い画面がでます。
アクセス先のサーバが空のページを返しているとは考えられませんか。
サイトによってはユーザーエージェントを見て、ブラウザ以外のアクセスを
区別しているところがあります。
例えば、google は wget でのアクセスを制限しています。
この回答への補足
大変もうしわけございません。
3日間この問題でずーと悩み続けたんですが、
再度コードをみていたら、コードのミスが原因でした。
大変失礼を致しました。面目ありません。
申し訳ございませんでした。
以後このようなことがないよう、再度注意をしてチェックを心がけるよう努力いたします。
このたびはご丁寧にご回答頂きまして、
まことにありがとうございましたm_ _m
ご親切にまことにありがとうございます。m_ _m
指定のURLは私個人がかりております、レンタルサーバーでございます。さくらインターネットさんをご利用させていただいております。
http://good.saloon.jp
ですが、$url = 'http://good.saloon.jp'
と直接入力すると$contentはうつります。
$url = $FORM{'url'};
print "Content-type: text/html\n\n$url";
use LWP::Simple;
$content = get("$url");
$FORM{'url'}はちゃんとhttp://good.saloon.jpと表示がされます。
しかし$contentは何もはいっておりません。
まことに恥を忍んで私のアホなソースを公開いたします。
何卒、ご参照のほどを御願いいたします。
問題のある箇所は中ごろの少し下にございます。
”問題があります”とわかりやすくしております。
http://good.saloon.jp/test/lwp/link.txt
何卒、宜しく御願いいたします。m_ _m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlにおけるセッションIDについて
-
HTMLからCGIへデータを引き継ぎ
-
サーバーのテキストファイルを...
-
標準入力からデータが読込めない
-
表示を一覧表形式にしたいので...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
[HTML]プルダウンメニューの横...
-
htmlからパラメータで、cgiに渡...
-
携帯用アンケートページを作成...
-
javascript ColorBoxの最大縦幅...
-
ローカルテストサーバーと本番...
-
PHPのlocationについて
-
WEBアプリケーションからフォル...
-
硬質カードケースについて 縦向...
-
htmlのフォームからcgiにデータ...
-
onMouseoverで下線表示したい(...
-
シングルコーテーション(')と...
-
誕生日のカウントダウン日数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
XML::Simpleの使い方について
-
perl の grepで 全角カタカナで...
-
IIS の@INC ERRORについて教えて
-
Mechanizeにおけるボタンクリッ...
-
標準入力からデータが読込めない
-
フォームメール確認用ページ
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
別formのhidden項目を自form値...
-
FORMのselectの選択肢を最初か...
-
VB初心者。小数点以下の表示で...
-
EXCELとの連携
おすすめ情報