現在Perlで掲示板などをつくっているのですが
クッキーの記述はPHPも同じなのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

 PHPは使ったことがないんですが、基本的には同じはずです。

もちろん言語差の部分は別ですが。
 これらの言語をインターネットで使う場合、言語はすべて「CGI」という環境下で動かすことになります。
 クッキーの仕様はこのCGIのものですので、やり方自体は同じはずです。

 具体的には、下記のURLをご参照のこと。

参考URL:http://tohoho.wakusei.ne.jp/wwwcook.htm
    • good
    • 0

hederていう関数をつかってperlと同じようにヘッダを出す方法も


ありますけど、setCookieとか便利な関数も用意されてますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qcgi(perl)で掲示板などを作成、ページを分割

掲示板などデータが次々と増えていくもので例えば50件超えたらページが変わるものってありますよね。
あれはどのようにして作成するのでしょうか?
概念だけでも教えてください。

Aベストアンサー

こんにちは。

よく見かけるCGIでも、いざ自分で作るとなると「あれ?どうなってんだ?」というものが結構ありますよね。

早速本題へ。
ログのn番目から指定件数(50件)だけ抜き出して表示する基本機能を作ります。
ログが指定件数以上ある場合は「次ページへ」ボタンが現われるように条件分岐しておき、このボタンで「次はn番目から表示してくださーい」という「n番目」を渡してやります。

<1ページ目>
・n=0で、ログの先頭から50件(0~49)表示。
・「次のページへ」ボタンで次のページの先頭nである「50」を渡してやる。

<2ページ目>
・前ページから2ページ目の先頭n=50が送られてきた。
・n=50で、ログの51番目から50件(50~99)表示。

以降、同じ。
「前ページへ」ボタンも同じ原理です。

ん~、我ながら教え下手だ(笑)。

Q一行掲示板を改行が入る掲示板に改造

どうかお力をお貸しください。

「PetitMsg」を利用させて頂いております。
http://202.248.69.143/~goma/pl/petitmsg.html
こちらは一行掲示板という形なのですが、これを改行の出来る掲示板に改造するアドバイスをお願い致します。

あるいは、埋め込みが可能で、改行を入れることのできる掲示板を知っておられる方がいらっしゃいましたら、ご紹介下さいますようお願い申し上げます。
(WEB素材配布室様 http://web-sozai.seesaa.net/ の埋め込み式掲示板は、何度も設置したのですが、どうしても文字化けや書き込みが反映されなかったりしたので、それ以外でお願い致します)
 
 どうかよろしくお願い致します。

Aベストアンサー

本文をinputからtextareaに変更、あとは改行コードを<br>に置換してあげればよいかと思います。
この説明で分からなければあきらめた方がよいかと。

Qperl/CGIでの自作掲示板のJcode設定??

まだまだperlいじって3,4日の者です。
10日でおぼえる~シリーズの本を買って、現在掲示板を自作しているのですが、
ローカルにApache入れてActivePerlで作ってて、殆ど動作しますし、普通に書き込み
出来るのですが、フォームの文字は普通に出力?されているのですが、
フォームの送信ボタンを押して、下に書きこまれると文字化けして全く読めません…
参考書ではShift_JISで説明が行われていましたが、その通りやってもさっぱり表示が化けて
ネットで色々調べても流石にと言いますかそんな初歩的な事をなかなか見つけられず
困っております。
記述としては


#! c:/perl/bin/perl ↓最初の方で指定して

require "jcode.pl";


#=========================== ユーザー設定 ====
$CHARSET = 'Shift_JIS'; # 文字コード
$DATAFILE = './board.dat'; # 記事ファイル
$PAGEVIEW = 5; # ページ記事数
$MAXLINE = 100; # 最大記事数


#======================= メインプログラム ====
loadFormdata();

# 記事データの読み込み
open(FILE, "<$DATAFILE")
or printErrorPage("記事ファイルが開けません。");
eval{ flock(FILE, 1) };
@DATA = <FILE>;
close(FILE);

if($FORM{'mode'} eq 'write') {
writeArticle(); # 書き込みモード

# 記事データの書き込み
open(FILE, ">$DATAFILE")
or printErrorPage("記事ファイルが開けません。");
eval{ flock(FILE, 2) };
print FILE @DATA;
close(FILE);
}
printPage();
exit;


#========================== 記事ページ出力 ====
sub printPage
{
my $begin = $FORM{'page'} * $PAGEVIEW;
my $end = $begin + $PAGEVIEW;

if($end > @DATA) {
$end = @DATA;
}              埋め込みHTMLは、代入?して ↓   
print <<END;
Content-type: application/xhtml+xml; charset=$CHARSET

<?xml version="1.0" encoding="$CHARSET"?>   ←一応ここも
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head><title>掲示板</title></head>
<body>

 :
:一部割愛


# 記事の出力
my ($i, $nextpage, $nextlink);

for($i = $begin ; $i < $end ; ++$i) {
my ($data, $title, $author, $email, $text)
= split(/\t/, $DATA[$i]);
print "<h2>$title</h2>\n";
if($email) {
print "<strong>";
print "<a href=\"mailto:$email\">$author</a>";
print "</strong>";
}
else {
print "<strong>$author</strong>";
}
print " [ $date ] ";
print "<p>$text</p>";
print "<hr />\n";
}

# 次ページへのリンク
if($end < @DATA) {
$nextpage = $FORM{'page'} + 1;
$nextlink = "$ENV{'SCRIPT_NAME'}?page=$nextpage";
print "<p><a href=\"$nextlink\">NEXT PAGE</a></p>\n";
}

print <<END;
</body>
</html>
END
}

                :
                : 一部割愛
                :

#=============== フォームデータ取り込み =====
sub loadFormdata                   ←取り込み全文     
{                                 ↓
my ($query, $pair);

if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}

foreach $pair (split(/&/, $query)) {
my ($key, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F] [0-9a-fA-F])/chr(hex($1))/eg;

$value = jcode::sjis($value); ←出来ればeucに直したい(基本サイトをeuc-jpで作成)
$value =~ s/&/&amp;/g;      直す以前に化けてますが…
$value =~ s/</&lt;/g;              この最後で指定をしてます。
$value =~ s/>/&gt;/g;
$value =~ s/\x0D\x0A/<br>/g;
$value =~ tr/\t/ /;

$FORM{$key} = $value;
}
}
cgiの一番最後の方に書いてあるのですがこの本にはこれしか書いて無くて、
他のサイト様だと何だか全く違う表現が一般的?jcode::convert(\$value,'euc');
これでもさっぱりダメでした…
ちなみにブラウザもしっかりとHTMLに指定しているeuc-jpで表示しております。
あと既に送信してから仮保存ディレクトリの中のだんかいで既に文字化けしております。
このプランしか知らないものでどこをどういじれば良いのかがさっぱりわかりません…
使用エディタはTeraPadで、euc-jp書き出し、保存に設定しています。
良い解決策が有ればよろしくお願い致します

まだまだperlいじって3,4日の者です。
10日でおぼえる~シリーズの本を買って、現在掲示板を自作しているのですが、
ローカルにApache入れてActivePerlで作ってて、殆ど動作しますし、普通に書き込み
出来るのですが、フォームの文字は普通に出力?されているのですが、
フォームの送信ボタンを押して、下に書きこまれると文字化けして全く読めません…
参考書ではShift_JISで説明が行われていましたが、その通りやってもさっぱり表示が化けて
ネットで色々調べても流石にと言いますかそんな初...続きを読む

Aベストアンサー

No.1のkmeeさんが言及されてますように、コードの例がちょっと古いですね。

use strict;
use warnings;

のないコードはまず古いですね。レキシカル変数を使ってスコープを限定しないコードも古いです。リファレンスで済むところを型グロブを使うコードも古いです。

私の所有している本は以下です。

CGIプログラミング
http://www.amazon.co.jp/dp/4873110440

これも古いのですが、まだ通用する本でお薦めです。
ただ、少し難しいかもしれません。

初心者用の良い書籍を紹介できないのが残念ですが、

サンプルコードによるPerl入門
http://d.hatena.ne.jp/perlcodesample/

の木本さんが書かれた

かんたんプログラミング CGI/Perl
http://www.amazon.co.jp/dp/4774139289

なら幾分ましかもしれません。
Perlについてなら定評のある結城浩さんの本がいいのではないでしょうか。

新版Perl言語プログラミングレッスン入門編
http://www.amazon.co.jp/dp/4797336803

上記2点の本は拝見したことがないので、はっきりと推薦はできませんが、お持ちの書籍よりはましかと思われます。

以下のオライリーの本は評価が高いです。かなりやる気があるのならこれがお薦めですが、ご自分で中身を確認されてからご検討ください。

初めてのPerl 第5版
http://www.amazon.co.jp/dp/4873114276

書籍を選ぶ最低限のポイントとしてサンプルコードに

use strict;

の記述があるのをお選びください。

余談はこれぐらいにして(Perlカテゴリで似たような質問があったため御託を並べてしまいました)、質問への回答をしたいと思います。
以下2点、ご確認お願いします。

まず、この↓行を削除(コメントアウト)したらどうなりますでしょうか?

$value = jcode::sjis($value); ←出来ればeucに直したい(基本サイトをeuc-jpで作成)

次に、

loadFormdata();

を、

use CGI;
%FORM = CGI->new->Vars;

にしたらどうなりますでしょうか?

No.1のkmeeさんが言及されてますように、コードの例がちょっと古いですね。

use strict;
use warnings;

のないコードはまず古いですね。レキシカル変数を使ってスコープを限定しないコードも古いです。リファレンスで済むところを型グロブを使うコードも古いです。

私の所有している本は以下です。

CGIプログラミング
http://www.amazon.co.jp/dp/4873110440

これも古いのですが、まだ通用する本でお薦めです。
ただ、少し難しいかもしれません。

初心者用の良い書籍を紹介できないのが残念ですが、

サンプ...続きを読む

QPerlでブラウザのようにクッキーデータ送信して、同じデータを見たい。

クッキーをクライアント側から操作したいのですが、
IEなどブラウザがサイトアクセスした時にどのようにクッキーデータを送っているか知りたいです。

GET / HTTP/1.0\n\n
は、わかりますが、クッキーデータはどのタイミングで、どういう形式で送信しているのか、ブラウザのように振舞いたいのですがわかりません。

あるサイトはクッキーを認証として使っているのですが、コマンドラインから情報を取得するperlを書いているのですが、クッキーのため別画面の結果が返ってきます。IEでは正しく見れるのですが、perlからは方法がわからないため、できませんでした。

Aベストアンサー

ブラウザはあるURLにアクセスする時に、そのサイトに関するcookieを持っていれば、GETする時にcookieも一緒にヘッダに載せてリクエストします。

cookieを持ったサイトへアクセスする時のリクエストヘッダ
GET パス HTTP/1.1\n
USER-AGENTとかその他のヘッダ
Cookie:・・・\n
\n

このように、最初からcookieを付けてリクエストするか、
パスワード認証の画面が帰ってきたらパスワードをPOSTするとかすればできるんじゃないでしょうか?

なお、ブラウザとサーバのやりとりを見るのに私はProxomitronを使ってます。
http://www.pluto.dti.ne.jp/~tengu/proxomitron/

Q掲示板さがしてます(質問掲示板)

とほほにある質問掲示板のようなもの、をさがしています。
http://tohoho.wakusei.ne.jp/wwwsoft.htm
とほほいがいで、その類に掲示板を無料でダウンロードできる
サイトを知っていましたら、おしえてください。

Aベストアンサー

またまたhide1978です。さっき追加書き込みしたばかりなのにね・・・すみません。

ずーっと探してたら「TwnLounge Faith edition」というスクリプトを見つけました。これは「とほほさんの質問掲示板を改造したもの」だそうです。かなりカッコイイ感じに仕上がっていますので、ぜひ参考URLを参照してください。これはオススメできます!(^^)

参考URL:http://www.iris.dti.ne.jp/~fuse/cgi/


このカテゴリの人気Q&Aランキング

おすすめ情報