締切り済みの質問
はじめまして。
どなたかお力になって頂けると有難いです。
htmlファイルを削除する事なく
その中のソースだけを削除(初期化?)する事は可能でしょうか。
a.html(topページ)内にインラインフレームを設置し
そのインラインフレームで
b.html(日記)を表示しようと考えております。
b.htmlには一日分の日記のみを表示したいと考えております。
c.html(日記作成ページ)でb.htmlに日記を記述する所までは
いけたのですが、新しい日記を書いた際古い日記が残ってしまい
一日分のみを表示するのができなくて困っております。
cgiやphpを使えば可能なのか、そもそもhtmlファイルの中身だけを
消すのが無理なのか、ご存知の方おられましたら
どんな事でもかまいませんので助言を頂けないでしょうか。
投稿日時 - 2010-02-06 23:18:10
2人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
>c.html(日記作成ページ)でb.htmlに日記を記述する所まではいけたのですが
ということはc.htmlはcgiか何かを利用しているのですよね?
そうであるなら、そのcgiのスクリプトで、b.htmlファイルの読み書きをするところが追記モードになっているのではないでしょうか?
URLは参考までに。perlによるファイル入出力です。
参考URL:http://www.rfs.jp/sb/perl/02/08.html
投稿日時 - 2010-02-06 23:59:18
補足
回答どうもありがとうございます。
答えの出口が見えた感じがします。
http://easycgi.xrea.jp/perltips/bbs.htm
上記サイトにあります
書き込み用CGIを参考に作成しているのですが
どうもうまくいきません。
#!/usr/bin/perl
#----------#
# 設定 #
#----------#
# bbs.cgi のURL
$url = "http://easycgi.xrea.jp/admin/bbs.cgi";
# デコード
require 'jcode.pl';
read( STDIN, $data, $ENV{ 'CONTENT_LENGTH' } );
@pairs = split(/&/,$data);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\n/<BR>/g;
$value =~ s/\t/ /g;
$value =~ s/\r//g;
&jcode'convert(*value,'sjis');
$FORM{$name} = $value;
}
# 未入力確認
if ($FORM{'name'} eq "") { &nodata('お名前') ; }
if ($FORM{'title'} eq "") { &nodata('件名') ; }
if ($FORM{'body'} eq "") { &nodata('本文') ; }
# データを結合する
$log = "$FORM{'name'}<>$FORM{'title'}<>$FORM{'body'}\n";
# ファイルを開いて書き込み
if (!open(IN,"bbs.log")) { &fileerror; }
flock(IN, 1);
@DATA = <IN>;
close(IN);
if (!open(OUT,">bbs.log")) { &fileerror; }
flock(OUT, 2);
unshift (@DATA,$log);
print OUT @DATA;
close(OUT);
print "Content-type: text/html\n";
print "Location: $url" . '?' . "\n\n";
# 未入力エラー表示
sub nodata {
print "Content-type: text/html\n\n";
print "<CENTER><B>$_[0] が入力されていません!</B></CENTER>";
exit;
}
# ファイルエラー表示
sub fileerror {
print "Content-type: text/html\n\n";
print "<CENTER><B>ファイルが開けません!</B></CENTER>";
exit;
}
このcgiの
if (!open(OUT,">bbs.log")) { &fileerror; }
flock(OUT, 2);
unshift (@DATA,$log);
print OUT @DATA;
close(OUT);
print "Content-type: text/html\n";
print "Location: $url" . '?' . "\n\n";
の部分をさわれば出来そうなのですが
どうもうまくいきません。
お力をお貸し頂けないでしょうか。
投稿日時 - 2010-02-07 00:52:01
お礼
やっとわかりました。
本当に助かりました。
投稿日時 - 2010-02-07 01:14:25