Initial commit.

This commit is contained in:
2026-03-10 21:25:26 +08:00
commit 78739bf725
3089 changed files with 472990 additions and 0 deletions

219
htdocs/wov/cgi-bin/counter.cgi Executable file
View File

@@ -0,0 +1,219 @@
#! /usr/bin/perl -w
# Woman's Voice
# counter.cgi: The visitor counter.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-04-07
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub dont_update();
sub read_counter();
sub update_counter();
sub log_visitor($);
sub counter_cookie();
sub html_image($);
use Fcntl qw(:seek);
use Date::Format qw(time2str);
use GD;
use IO::NestedCapture qw(CAPTURE_STDOUT);
use Net::CIDR::Lite qw();
use constant DATA_FILE => $ENV{"DOCUMENT_ROOT"} . "/magicat/data/counter.dat";
use constant LOG_FILE => "/var/log/apache2/wov/counter.log";
use vars qw($OUR_NETWORKS @FGCOLOR @BGCOLOR $FONT);
# People in our networks will not be counted
$OUR_NETWORKS = Net::CIDR::Lite->new(
qw(127.0.0.1/8 10.0.0.0/8 211.20.30.96/29));
@FGCOLOR = (0, 0, 0); # #000000 Black
@BGCOLOR = (255, 255, 255); # #FFFFFF White
$FONT = gdLargeFont;
use constant TRANSPARENT => 1;
use constant COOKIE_NAME => "counter";
use constant COUNT_ARG => "countme";
use constant IGNORE_ARG => "ignoreme";
initenv( -allowed => [qw(GET HEAD)],
-session => 0,
-dbi => DBI_NONE,
-lastmod => 0,
-multilang => 0);
main;
exit 0;
sub main() {
local ($_, %_);
# If we should not update the counter
if (dont_update) {
# Check last-modified here
my (@tables, @files);
@tables = qw();
@files = (DATA_FILE);
http_304 if not_modified @tables, @files;
html_image read_counter;
# Update the counter
} else {
$_ = html_image update_counter;
# Log the visitor
log_visitor $_;
}
# Set the counter cookie
$NEWCOOKIES{COOKIE_NAME()} = $_ if defined ($_ = counter_cookie);
return;
}
# dont_update: If we should not update the counter
sub dont_update() {
local ($_, %_);
# Find any reason that we should not update the counter
# If this visitor came from our own network
return 1 if $OUR_NETWORKS->find($ENV{"REMOTE_ADDR"});
# If this visitor had been counted
return 1 if exists $COOKIES{COOKIE_NAME()};
# If we are not told to count this visitor
return 1 if !defined $GET->param(COUNT_ARG);
# Well, update it
return 0;
}
# read_counter: Read the counter
sub read_counter() {
return -s DATA_FILE? xfread DATA_FILE: 0;
}
# update_counter: Update the counter
sub update_counter() {
local ($_, %_);
# File exists
if (-s DATA_FILE) {
my $FH;
open $FH, "+<", DATA_FILE or http_500 DATA_FILE . ": $!";
flock $FH, LOCK_EX or http_500 DATA_FILE . ": $!";
$_ = <$FH>;
$_++;
seek $FH, 0, SEEK_SET or http_500 DATA_FILE . ": $!";
truncate $FH, 0 or http_500 DATA_FILE . ": $!";
print $FH $_ or http_500 DATA_FILE . ": $!";
flock $FH, LOCK_UN or http_500 DATA_FILE . ": $!";
close $FH or http_500 DATA_FILE . ": $!";
# Not exists or zero sized -- create a new one
} else {
xfwrite DATA_FILE, ($_ = 1);
}
return $_;
}
# log_visitor: Log the visitor
sub log_visitor($) {
local ($_, %_);
my ($host, $user, $date, $uri, $size, $referer, $ua, $langs, $FD);
$size = $_[0];
# Gather the infomation to log
$host = (defined remote_host)? remote_host: $ENV{"REMOTE_ADDR"};
$user = (exists $ENV{"REMOTE_USER"} && $ENV{"REMOTE_USER"} ne "")?
$ENV{"REMOTE_USER"}: "-";
$date = time2str("%d/%b/%Y:%T %z", time);
$uri = $REQUEST_URI;
$referer = (exists $ENV{"HTTP_REFERER"} && $ENV{"HTTP_REFERER"} ne "")?
$ENV{"HTTP_REFERER"}: "-";
$ua = (exists $ENV{"HTTP_USER_AGENT"} && $ENV{"HTTP_USER_AGENT"} ne "")?
$ENV{"HTTP_USER_AGENT"}: "=";
$langs = (exists $ENV{"HTTP_ACCEPT_LANGUAGE"} && $ENV{"HTTP_ACCEPT_LANGUAGE"} ne "")?
$ENV{"HTTP_ACCEPT_LANGUAGE"}: "-";
# Compose the log record 組合紀錄行
$_ = sprintf "%s - %s [%s] \"%s %s %s\" 200 %s \"%s\" \"%s\" \"%s\" %s %s\n",
$host, $user, $date, $ENV{"REQUEST_METHOD"}, $uri,
$ENV{"SERVER_PROTOCOL"}, $size, $referer, $ua, $langs,
$ENV{"REMOTE_ADDR"}, country_lookup($ENV{"REMOTE_ADDR"});
# Save the log record 儲存記錄
xfappend LOG_FILE, $_;
return;
}
# counter_cookie: Set the counter cookie
sub counter_cookie() {
local ($_, %_);
# Leave our network alone
return if $OUR_NETWORKS->find($ENV{"REMOTE_ADDR"});
# Already set
return if exists $COOKIES{COOKIE_NAME()};
# Count me
return new CGI::Cookie( -name=>COOKIE_NAME,
-value=>"counted",
-path=>$REQUEST_PATH)
if defined $GET->param(COUNT_ARG);
# Ignore me
return new CGI::Cookie( -name=>COOKIE_NAME,
-value=>"ignored",
-path=>$REQUEST_PATH)
if defined $GET->param(IGNORE_ARG);
# Leave it alone
return;
}
# html_image: Make the image from the counter value
sub html_image($) {
local $_;
my ($counter, $image, $width, $height, $fgcolor, $bgcolor);
$counter = $_[0];
# Group the counter with commas at thousand digits.
$counter = fmtno($counter);
# Initialize the image object
# Get the width and height
$width = $FONT->width * (length $counter);
$height = $FONT->height;
# Create an image object
$image = GD::Image->new($width, $height);
# Create the forground/background color objects
$fgcolor = $image->colorAllocate(@FGCOLOR);
$bgcolor = $image->colorAllocate(@BGCOLOR);
# Draw the image
# Set the transparent background
$image->transparent($bgcolor) if TRANSPARENT;
# Paint the background
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
# Write the text
$image->string($FONT, 0, 0, $counter, $fgcolor);
# Output
$CONTENT_TYPE = "image/png";
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
$_ = $image->png;
print $_;
return length $_;
}

View File

@@ -0,0 +1,142 @@
#! /usr/bin/perl -w
# Woman's Voice
# last_update.cgi: The last-update date of the whole web site.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-04-09
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub find_files_in(\@\@);
sub fmttime_local($);
sub html_image($);
use File::Spec;
use GD;
use IO::NestedCapture qw(CAPTURE_STDOUT);
use vars qw(@DIREXCS %RDIREXCS @FGCOLOR @BGCOLOR $FONT);
# Directories to be excluded (no leading and trailing slashes)
@DIREXCS = qw(magicat);
@FGCOLOR = (0, 0, 0); # #000000 Black
@BGCOLOR = (255, 255, 255); # #FFFFFF White
$FONT = gdLargeFont;
use constant TRANSPARENT => 1;
initenv( -allowed => [qw(GET HEAD)],
-session => 0,
-dbi => DBI_NONE,
-lastmod => 0,
-multilang => 0);
%RDIREXCS = map { File::Spec->catfile($DOC_ROOT, $_) => 1 } @DIREXCS;
main;
exit 0;
sub main() {
local ($_, %_);
my (@tables, @files);
@tables = qw();
@files = qw();
@_ = ($DOC_ROOT);
find_files_in(@files, @_);
http_304 if not_modified @tables, @files;
html_image($LAST_MODIFIED);
return;
}
# find_files_in: an easy file finder
sub find_files_in(\@\@) {
local ($_, %_);
my ($files, $dirs, @subdirs, $DH, $ent);
($files, $dirs) = @_;
# Bounce for nothing
return if scalar(@$dirs) == 0;
# Look in these directories
@subdirs = qw();
foreach my $dir (@$dirs) {
$dir =~ s/\/$//;
opendir $DH, $dir or die "$dir: $!";
while (defined($_ = readdir $DH)) {
next if /^\./;
# Using catfile() is better, but a lot slower
$ent = File::Spec->catfile($dir, $_);
#$ent = "$dir/$_";
if (-f $ent) {
push @$files, $ent;
} elsif (-d $ent) {
push @subdirs, $ent
if !exists $RDIREXCS{$ent};
}
}
closedir $DH or die "$dir: $!";
}
# Look in the subdirectories
find_files_in @$files, @subdirs;
return;
}
# fmttime_local: Format the time using my own format
sub fmttime_local($) {
@_ = localtime $_[0];
return sprintf "%04d.%02d.%02d", $_[5]+1900, $_[4]+1, $_[3];
}
# html_image: Make the image from the last-update value
sub html_image($) {
local $_;
my ($last_update, $image, $width, $height, $fgcolor, $bgcolor);
$last_update = $_[0];
# Format the date to my preferred format
$last_update = fmttime_local($last_update);
# Initialize the image object
# Get the width and height
$width = $FONT->width * (length $last_update);
$height = $FONT->height;
# Create an image object
$image = GD::Image->new($width, $height);
# Create the forground/background color objects
$fgcolor = $image->colorAllocate(@FGCOLOR);
$bgcolor = $image->colorAllocate(@BGCOLOR);
# Draw the image
# Set the transparent background
$image->transparent($bgcolor) if TRANSPARENT;
# Paint the background
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
# Write the text
$image->string($FONT, 0, 0, $last_update, $fgcolor);
# Output
$CONTENT_TYPE = "image/png";
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
print $image->png;
return;
}

70
htdocs/wov/cgi-bin/mailto.cgi Executable file
View File

@@ -0,0 +1,70 @@
#! /usr/bin/perl -w
# Woman's Voice
# mailto.cgi: The e-mail hyperlink redirector.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-05-13
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_post();
use Fcntl qw(:seek);
initenv(-allowed => [qw(POST)],
-session => 0,
-dbi => DBI_NONE,
-lastmod => 0);
main;
exit 0;
sub main() {
local ($_, %_);
my $error;
# Only POSTed forms are allowed
$error = check_post;
# If an error occurs
if (defined $error) {
http_400;
# Else, save the data
} else {
http_303 "mailto:" . $POST->param("email");
}
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Run the checker
$checker = new Selima::Checker::MailTo(curform);
$error = $checker->check(qw(email));
return $error if defined $error;
# OK
return;
}

56
htdocs/wov/cgi-bin/search.cgi Executable file
View File

@@ -0,0 +1,56 @@
#! /usr/bin/perl -w
# Woman's Voice
# search.cgi: The web site full-text search.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-28
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
use Fcntl qw(:seek);
initenv(-allowed => [qw(GET HEAD)],
-session => 0,
-dbi_lock => {"nlarts" => LOCK_SH,
"newslets" => LOCK_SH,
"guestbook" => LOCK_SH,
"pages" => LOCK_SH,
"links" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("search, query, full text search")});
main;
exit 0;
sub main() {
local ($_, %_);
my $LIST;
# List handler handles its own error
$LIST = new Selima::wov::List::Search;
html_header $LIST->{"title"}, $LIST->{"etitle"}, $LIST->page_param;
$LIST->html;
html_footer;
return;
}

View File

@@ -0,0 +1 @@
copying.html.xhtml

View File

@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="著作權, 版權" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="." />
<link rel="copyright" type="application/xhtml+xml" href="copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>女聲著作權聲明</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="newsletters/">閱讀女聲</a></span> |
<span><a href="subscribe.html">訂閱女聲</a></span> |
<span><a href="cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="links/">女網牽手</a></span> |
<span><a accesskey="1" href=".">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>女聲著作權聲明</h1>
<h1 class="en" xml:lang="en-us">Authority Announcement</h1>
</div>
<dl>
<dt>女聲著作權聲明</dt>
<dd>
<p>《女聲》電子報除網站留言板外,內文版權所有,歡迎轉載。唯請遵守以下事項:</p>
<ol>
<li><em>必須</em>以下列格式,註明原作者及出處網址:
<pre>作者: [作者名] [完整網址]</pre>
</li>
<li>請註明原作者及出處。</li>
<li>不得作任何更動、添增、刪改。</li>
<li>欲作商業或學術轉載(含論文發表、媒體報導、書刊出版)請事先取得我們同意。</li>
<li>《女聲》網站留言板所有留言著作權與《女聲》電子報無關,另以留言板著作權聲明為準。</li>
</ol>
</dd>
<dt>女聲留言板著作權聲明</dt>
<dd>
<p>《女聲》網站留言板所有留言版權屬各留言人所有,與《女聲》電子報無關。《女聲》著作權聲明不適用於留言板留言。欲轉載、引用任何留言板留言,請事先取得各留言人之同意。若留言人未留任何聯絡資料,一律禁止任何轉載、引用。</p>
</dd>
</dl>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="." title="女聲電子報網站"><img
src="images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

BIN
htdocs/wov/data/wovs.zip Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
301.html.xhtml

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="網址已遷" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 301 網址已遷</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 301 網址已遷</h1>
<h1 class="en" xml:lang="en-us">Moved Permanently</h1>
</div>
<p>本頁已遷址,日後請更新妳的書籤或妳的最愛,並改往<a href="$url">新址</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
303.html.xhtml

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="續往下址" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 303 續往下址</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 303 續往下址</h1>
<h1 class="en" xml:lang="en-us">See Other</h1>
</div>
<p>請續往<a href="$url">後續的網址</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
307.html.xhtml

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="網址暫移" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 307 網址暫移</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 307 網址暫移</h1>
<h1 class="en" xml:lang="en-us">Temporary Redirect</h1>
</div>
<p>請參閱本頁<a href="$url">目前的網址</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
400.html.xhtml

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="語法錯誤" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 400 語法錯誤</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 400 語法錯誤</h1>
<h1 class="en" xml:lang="en-us">Bad Request</h1>
</div>
<!-- errmsg -->
<p>很抱歉,妳的要求語法錯誤,網站看不懂妳的要求。這可能是瀏覽器的問題,或妳輸入的網址有筆誤。請更正妳的筆誤,或請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
<p>若有任何問題,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
401.html.xhtml

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="非請莫入" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 401 非請莫入</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 401 非請莫入</h1>
<h1 class="en" xml:lang="en-us">Unauthorized</h1>
</div>
<p>很抱歉,本頁非請莫入,請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
<p>若有任何問題,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
403.html.xhtml

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="禁止進入" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 403 禁止進入</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 403 禁止進入</h1>
<h1 class="en" xml:lang="en-us">Forbidden</h1>
</div>
<!-- errmsg -->
<p>很抱歉,本頁禁止進入,請回<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
<p>若有任何問題,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
404.html.xhtml

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="找不到網頁" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 404 找不到網頁</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 404 找不到網頁</h1>
<h1 class="en" xml:lang="en-us">Not Found</h1>
</div>
<p>很抱歉,找不到妳想連的那一頁。請檢查妳的網址是否有誤。若妳是由其它地方連上這裡,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
405.html.xhtml

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="要求方式無效" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 405 要求方式無效</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 405 要求方式無效</h1>
<h1 class="en" xml:lang="en-us">Method Not Allowed</h1>
</div>
<p>很抱歉,無法用這個方式連到此頁。請改用以下方式: $allowed 。</p>
<p>若有任何問題,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
410.html.xhtml

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="已刪除, HTTP 410" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 410 已刪</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 410 已刪</h1>
<h1 class="en" xml:lang="en-us">Gone</h1>
</div>
<p>本頁內容已刪,造成不便請見諒。</p>
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
500.html.xhtml

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="網站執行錯誤" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 500 網站執行錯誤</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 500 網站執行錯誤</h1>
<h1 class="en" xml:lang="en-us">Internal Server Error</h1>
</div>
<!-- errmsg -->
<p>很抱歉,網站發生錯誤。這通常是 <abbr title="Common Gateway Interface">CGI</abbr> 程式設計問題,請<a href="mailto:editors&#64;mail.wov.idv.tw">來信告訴我們</a></p>
<p>妳可以回到<a href="/">《女聲》電子報首頁</a>重新瀏覽。</p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
503.html.xhtml

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="網站暫停服務, HTTP 503" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href="/" />
<link rel="copyright" type="application/xhtml+xml" href="/copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="/cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>HTTP 503 網站暫停服務</title>
</head>
<body>
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="/cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="/newsletters/">閱讀女聲</a></span> |
<span><a href="/subscribe.html">訂閱女聲</a></span> |
<span><a href="/cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href="/links/">女網牽手</a></span> |
<span><a accesskey="1" href="/">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="/images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1><abbr title="HyperText Transfer Protocol">HTTP</abbr> 503 網站暫停服務</h1>
<h1 class="en" xml:lang="en-us">Service Unavailable</h1>
</div>
<!-- errmsg -->
<p>很抱歉,網站暫時停止服務。我們正在更新網站,大約要花一個小時左右。請晚點再來,謝謝。</p>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href="/" title="女聲電子報網站"><img
src="/images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="/images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="/images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="/images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="/images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="/copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

BIN
htdocs/wov/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

BIN
htdocs/wov/images/email.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

BIN
htdocs/wov/images/email.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

BIN
htdocs/wov/images/icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
htdocs/wov/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
htdocs/wov/images/logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

BIN
htdocs/wov/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

1
htdocs/wov/index.html.html Symbolic link
View File

@@ -0,0 +1 @@
index.html.xhtml

137
htdocs/wov/index.html.xhtml Normal file
View File

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="Big5" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="keywords" content="女聲電子報, 女性主義, 婦運, 性別, 小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2012 《女聲》電子報。《女聲》電子報保有所有權利。" />
<link rel="start" type="application/xhtml+xml" href="." />
<link rel="copyright" type="application/xhtml+xml" href="copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="cgi-bin/search.cgi" />
<link rel="stylesheet" type="text/css" href="stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>女聲 Woman&rsquo;s Voice</title>
</head>
<body class="home">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div class="title">
<img src="images/logo"
alt="女聲 LOGO" title="女聲 Woman&rsquo;s Voice" />
<h1>女聲</h1>
<h1 class="en" xml:lang="en-us">Woman&rsquo;s Voice</h1>
</div>
<address>
Since 1999.05.02, last updated <img src="cgi-bin/last_update.cgi" alt="last update" />.<br />
妳是第 <img src="cgi-bin/counter.cgi?countme=1" alt="訪客人數" /> 個訪客<!--,目前訂戶
<img src="cgi-bin/subs_counter.cgi" alt="訂戶人數" /> 人-->
</address>
<div class="intro">
<p>發聲就是政治,是權力,是對主體性的要求。</p>
<p>女聲就是女人的聲音。聲音有的好聽,有的不好聽,有的悅耳,有的嘈雜。也許是學者、是政要、是學生、是女兒、是媽媽、是女同性戀、是雙性戀、是女工、是菲傭、是公娼、是私娼、是雛妓、是打工辣妹、是家庭主婦、是心理女性。可能都是,也可能都不是。這些都是女人,她們的聲音都同等重要,在差異中尋求最適合自己的生存策略。</p>
<p>更重要的是,身為女人,是政治行動,不只是天生的命運。</p>
</div>
<div class="bulletin">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="bulletin1">
<h2>誰的言論、誰有自由?!</h2>
<p>西方18世紀哲學家伏爾泰有句名言「雖然我不同意你的觀點但我要以生命捍衛你說話的權利。」現今台灣主流社會顯然沒這種容納異己的雅量。他們容忍的界限大概就是男人講話女人閉嘴大人有性小孩沒性男異性戀可以看裸女男同性戀卻禁止看裸男。</p>
<ul>
<li><a href="newsletters/wov0015.html">《女聲》第十五期</a></li>
</ul>
</div>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<div class="nav1">
<ul>
<li><a href="newsletters/">閱讀女聲</a></li>
<li><a href="subscribe.html">訂閱女聲</a></li>
<li><a href="cgi-bin/guestbook.cgi">妳的女聲</a></li>
<li><a href="links/">女網牽手</a></li>
<li><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></li>
</ul>
<form action="cgi-bin/search.cgi" method="get" accept-charset="Big5">
<div>
<label for="query">全文檢索:</label><br />
<input class="text" id="query" type="text" name="query" value="" />
<input type="hidden" name="charset" value="Big5" />
<input class="submit" type="submit" value="搜尋" />
</div>
</form>
</div>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<p>請將下列 <abbr title="HyperText Markup Language">HTML</abbr> 加入妳的網頁中:</p>
<pre class="linkcode">&lt;div&gt;&lt;a href=&quot;https://www.wov.idv.tw/&quot;
title=&quot;往女聲電子報網站&quot;&gt;&lt;img
src=&quot;https://www.wov.idv.tw/images/icon&quot;
alt=&quot;女聲 Woman&amp;rsquo;s Voice&quot;&quot;&gt;
style=&quot;height: 31px; width: 88px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</pre>
<p>別忘了將女聲加入妳的書籤或妳的最愛中喔!</p>
</div>
<div>
<a href="." title="女聲電子報網站"><img
src="images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a
href="copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
culture.html.xhtml

View File

@@ -0,0 +1,317 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="文學, 藝術, 藝文, 文藝" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>女人文化界</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>女人文化界</h1>
<h1 class="en" xml:lang="en-us">Cultural Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
女人文化界
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>女書店 <span class="en" xml:lang="en-us">Fembooks</span></cite><br />
網址: <a href="http://www.fembooks.com.tw/">http://www.fembooks.com.tw/</a><br />
E-mail <input type="hidden" name="email" value="fembooks at ms27.hinet.net" />
<input type="image" src="../images/email" alt="E-mail" />
fembooks<span>&#64;</span>ms27.hinet.net<br />
地址: 106 臺北市大安區新生南路三段 56 巷 7 號 2 樓<br />
電話: (02) 2363-8244<br />
傳真: (02) 2363-1381<br />
出版、販賣各種女性主義、性別議題相關書籍。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.msmagazine.com/"><img class="linkicon"
src="http://www.msmagazine.com/images/Ms.gif"
alt="Ms. Magazine" /></a><br />
<cite><span class="en" xml:lang="en-us">Ms. Magazine</span></cite><br />
網址: <a href="http://www.msmagazine.com/">http://www.msmagazine.com/</a><br />
E-mail <input type="hidden" name="email" value="info at msmagazine.com" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>msmagazine.com<br />
地址: 20 Exchange Place 22nd floor New York, NY 10005<br />
電話: +1 (212) 509-2092<br />
傳真: +1 (212) 509-2407<br />
美國歷史悠久的女性主義雜誌。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Press</span></cite><br />
網址: <a href="http://www.feministpress.org/">http://www.feministpress.org/</a><br />
E-mail <input type="hidden" name="email" value="jroncker at gc.cuny.edu" />
<input type="image" src="../images/email" alt="E-mail" />
jroncker<span>&#64;</span>gc.cuny.edu<br />
電話: 212-817-7925<br />
傳真: 212-817-1593<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Studies</span></cite><br />
網址: <a href="http://www.feministstudies.org/index.html">http://www.feministstudies.org/index.html</a><br />
E-mail <input type="hidden" name="email" value="sgroves at feministstudies.org" />
<input type="image" src="../images/email" alt="E-mail" />
sgroves<span>&#64;</span>feministstudies.org<br />
待說明。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Women's Studied Resources</span></cite><br />
網址: <a href="http://bailiwick.lib.uiowa.edu/wstudies/">http://bailiwick.lib.uiowa.edu/wstudies/</a><br />
E-mail <input type="hidden" name="email" value="Karla-Tonella at uiowa.edu" />
<input type="image" src="../images/email" alt="E-mail" />
Karla-Tonella<span>&#64;</span>uiowa.edu<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">GODEY'S LADY'S BOOK Online</span></cite><br />
網址: <a href="http://www.history.rochester.edu/godeys/">http://www.history.rochester.edu/godeys/</a><br />
E-mail <input type="hidden" name="email" value="mapi at mail.rochester.edu" />
<input type="image" src="../images/email" alt="E-mail" />
mapi<span>&#64;</span>mail.rochester.edu<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>集合出版社 <span class="en" xml:lang="en-us">Must Muster Publisher</span></cite><br />
網址: <a href="http://www.2her.com.tw/">http://www.2her.com.tw/</a><br />
E-mail <input type="hidden" name="email" value="courious at saturn.seed.net.tw" />
<input type="image" src="../images/email" alt="E-mail" />
courious<span>&#64;</span>saturn.seed.net.tw<br />
地址: 板橋郵政18-113號信箱<br />
電話: 02-22228365<br />
傳真: 02-22225872<br />
以出版女同志正面作品為主的出版社<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminist.cn/"><img class="linkicon"
src="http://www.feminist.cn/images/f9.gif"
alt="女权在线" /></a><br />
<cite>女权在线</cite><br />
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminist at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminist<span>&#64;</span>163.com<br />
電話: 138-16755142<br />
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
feminist.html.xhtml

View File

@@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="女性主義, 婦運, 女權, 性別" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>抗爭的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>抗爭的女人</h1>
<h1 class="en" xml:lang="en-us">Struggling Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
抗爭的女人
</div>
<ol class="linkslist">
<li>
<cite>女學會資訊網</cite><br />
網址: <a href="http://www.feminist.sinica.edu.tw/">http://www.feminist.sinica.edu.tw</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminist.org/"><img class="linkicon"
src="http://www.feminist.org/fmf/graphics/fmfsmall.gif"
alt="Feminist Majority Foundation" /></a><br />
<cite><span class="en" xml:lang="en-us">Feminist Majority Foundation</span></cite><br />
網址: <a href="http://www.feminist.org/">http://www.feminist.org/</a><br />
E-mail <input type="hidden" name="email" value="femajority at feminist.org" />
<input type="image" src="../images/email" alt="E-mail" />
femajority<span>&#64;</span>feminist.org<br />
地址: 1600 Wilson Boulevard, Suite 801, Arlington, VA 22209<br />
電話: +1 (703) 522-2214<br />
傳真: +1 (703) 522-2219<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://sex.ncu.edu.tw/"><img class="linkicon"
src="http://sex.ncu.edu.tw/history/title.gif"
alt="中央性/別研究室" /></a><br />
<cite>中央性/別研究室 <span class="en" xml:lang="en-us">Center for the Study of Sexualities</span></cite><br />
網址: <a href="http://sex.ncu.edu.tw/">http://sex.ncu.edu.tw/</a><br />
E-mail <input type="hidden" name="email" value="sex at ncu.edu.tw" />
<input type="image" src="../images/email" alt="E-mail" />
sex<span>&#64;</span>ncu.edu.tw<br />
電話: (03) 426-2926<br />
傳真: (03) 426-2927<br />
由何春蕤等教授所組成的研究室,持續關注多元性別與性取向的權利。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.msmagazine.com/"><img class="linkicon"
src="http://www.msmagazine.com/images/Ms.gif"
alt="Ms. Magazine" /></a><br />
<cite><span class="en" xml:lang="en-us">Ms. Magazine</span></cite><br />
網址: <a href="http://www.msmagazine.com/">http://www.msmagazine.com/</a><br />
E-mail <input type="hidden" name="email" value="info at msmagazine.com" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>msmagazine.com<br />
地址: 20 Exchange Place 22nd floor New York, NY 10005<br />
電話: +1 (212) 509-2092<br />
傳真: +1 (212) 509-2407<br />
美國歷史悠久的女性主義雜誌。<br />
</div>
</form>
</li>
<li>
<cite>性別與空間研究室</cite><br />
網址: <a href="http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm">http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>財團法人婦女新知基金會 <span class="en" xml:lang="en-us">Awakening Foundation</span></cite><br />
網址: <a href="http://www.awakening.org.tw/">http://www.awakening.org.tw/</a><br />
E-mail <input type="hidden" name="email" value="hsinchi at ms10.hinet.net" />
<input type="image" src="../images/email" alt="E-mail" />
hsinchi<span>&#64;</span>ms10.hinet.net<br />
地址: 104 臺北市大同區長安東路二段 230 號 2 樓之 1<br />
電話: (02) 2711-2814 (02) 2711-2874<br />
傳真: (02) 2711-2571<br />
臺灣第一個婦運團體,目前持續推動民法親屬篇的改革。<br />
</div>
</form>
</li>
<li>
<a href="http://www.now.org/"><img class="linkicon"
src="http://www.now.org/purplgsm.gif"
alt="National Organization for Women (NOW)" /></a><br />
<cite><span class="en" xml:lang="en-us">National Organization for Women (NOW)</span></cite><br />
網址: <a href="http://www.now.org/">http://www.now.org/</a><br />
全美最大的婦運組織,在全美各地當設有分部。<br />
</li>
<li>
<cite>女性主義【自己的房間】BBS站 <span class="en" xml:lang="en-us">Feminism Net BBS &quot;The Room of One's Own &quot;</span></cite><br />
網址: <a href="telnet://bbs.feminism.net/">telnet://bbs.feminism.net/</a><br />
(待撰寫)<br />
</li>
<li>
<cite>豪爽女人何春蕤個人網頁</cite><br />
網址: <a href="http://sex.ncu.edu.tw/members/ho/index.htm">http://sex.ncu.edu.tw/members/ho/index.htm</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">The Center for Reproductive Law and Policy (CRLP)</span></cite><br />
網址: <a href="http://www.crlp.org/">http://www.crlp.org/</a><br />
E-mail <input type="hidden" name="email" value="info at crlp.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>crlp.org<br />
地址: 120 Wall St., New York, NY 10005<br />
電話: +1 (917) 637-3600<br />
傳真: +1 (917) 637-3666<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Abortion Access Project</span></cite><br />
網址: <a href="http://www.repro-activist.org/">http://www.repro-activist.org/</a><br />
E-mail <input type="hidden" name="email" value="info at repro-activist.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>repro-activist.org<br />
地址: 552 Massachusetts Avenue, Suite 215, Cambridge, Massachusetts 02139 USA<br />
電話: +1 (617) 661-1161<br />
傳真: +1 (617) 492-1915<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite><span class="en" xml:lang="en-us">EquityFeminism.Com</span></cite><br />
網址: <a href="http://www.equityfeminism.com/">http://www.equityfeminism.com/</a><br />
(待撰寫)<br />
</li>
<li>
<cite><span class="en" xml:lang="en-us">The National Abortion and Reproductive Rights Action League (NARAL)</span></cite><br />
網址: <a href="http://www.naral.org/">http://www.naral.org/</a><br />
Abortion and Reproductive Rights: Choice For Women<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>日日春</cite><br />
網址: <a href="http://www.taconet.com.tw/Home/">http://www.taconet.com.tw/Home/</a><br />
E-mail <input type="hidden" name="email" value="sfww at ms11.url.com.tw" />
<input type="image" src="../images/email" alt="E-mail" />
sfww<span>&#64;</span>ms11.url.com.tw<br />
台北市公娼自救會網站<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Press</span></cite><br />
網址: <a href="http://www.feministpress.org/">http://www.feministpress.org/</a><br />
E-mail <input type="hidden" name="email" value="jroncker at gc.cuny.edu" />
<input type="image" src="../images/email" alt="E-mail" />
jroncker<span>&#64;</span>gc.cuny.edu<br />
電話: 212-817-7925<br />
傳真: 212-817-1593<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Women's Health Center</span></cite><br />
網址: <a href="http://www.fwhc.org/">http://www.fwhc.org/</a><br />
E-mail <input type="hidden" name="email" value="info at fwhc.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>fwhc.org<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Margaret Sanger Papers Project</span></cite><br />
網址: <a href="http://www.nyu.edu/projects/sanger/">http://www.nyu.edu/projects/sanger/</a><br />
E-mail <input type="hidden" name="email" value="cathy.hajo at nyu.edu" />
<input type="image" src="../images/email" alt="E-mail" />
cathy.hajo<span>&#64;</span>nyu.edu<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminism.cn/"><img class="linkicon"
src="http://www.feminism.cn/images/feminismlogo1.jpg"
alt="女权中国" /></a><br />
<cite>女权中国</cite><br />
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminism at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminism<span>&#64;</span>163.com<br />
中国本土最大的女权主义学术资源网站<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminist.cn/"><img class="linkicon"
src="http://www.feminist.cn/images/f9.gif"
alt="女权在线" /></a><br />
<cite>女权在线</cite><br />
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminist at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminist<span>&#64;</span>163.com<br />
電話: 138-16755142<br />
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
general.html.xhtml

View File

@@ -0,0 +1,237 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="綜合, 入口網站" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>多樣的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>多樣的女人</h1>
<h1 class="en" xml:lang="en-us">Mass Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
多樣的女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Sunshine for Women</span></cite><br />
網址: <a href="http://www.pinn.net/~sunshine/main.html">http://www.pinn.net/~sunshine/main.html</a><br />
E-mail <input type="hidden" name="email" value="sunshine at pinn.net" />
<input type="image" src="../images/email" alt="E-mail" />
sunshine<span>&#64;</span>pinn.net<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite><span class="en" xml:lang="en-us">iVillage.com</span></cite><br />
網址: <a href="http://www.ivillage.com/">http://www.ivillage.com/</a><br />
(待撰寫)<br />
</li>
<li>
<cite><span class="en" xml:lang="en-us">Oxygen.com</span></cite><br />
網址: <a href="http://oxygen.com/">http://oxygen.com/</a><br />
Oxygen Media is a 24-hour cable television network on a mission to bring women (and the men who love them) the edgiest, most innovative entertainment on television.<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminist.cn/"><img class="linkicon"
src="http://www.feminist.cn/images/f9.gif"
alt="女权在线" /></a><br />
<cite>女权在线</cite><br />
網址: <a href="http://www.feminist.cn/">http://www.feminist.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminist at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminist<span>&#64;</span>163.com<br />
電話: 138-16755142<br />
中国大陆女性主义者集结地,以倡导两性平等为宗旨的公益性站点.<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
history.html.xhtml

View File

@@ -0,0 +1,260 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="婦女史" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>回首的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>回首的女人</h1>
<h1 class="en" xml:lang="en-us">Historical Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
回首的女人
</div>
<ol class="linkslist">
<li>
<cite>宋代婦女生活</cite><br />
網址: <a href="http://libweb.zju.edu.cn/renwen/Site/women/index.html">http://libweb.zju.edu.cn/renwen/Site/women/index.html</a><br />
(待撰寫)<br />
</li>
<li>
<cite><span class="en" xml:lang="en-us">Gender &amp; History</span></cite><br />
網址: <a href="http://www.blackwellpublishing.com/journal.asp?ref=0953-5233&amp;site=1">http://www.blackwellpublishing.com/journal.asp?ref=0953-5233&amp;site=1</a><br />
待撰寫<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Sunshine for Women</span></cite><br />
網址: <a href="http://www.pinn.net/~sunshine/main.html">http://www.pinn.net/~sunshine/main.html</a><br />
E-mail <input type="hidden" name="email" value="sunshine at pinn.net" />
<input type="image" src="../images/email" alt="E-mail" />
sunshine<span>&#64;</span>pinn.net<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite><span class="en" xml:lang="en-us">American Women's History: A Research Guide</span></cite><br />
網址: <a href="http://www.mtsu.edu/~kmiddlet/history/women.html">http://www.mtsu.edu/~kmiddlet/history/women.html</a><br />
(待撰寫)<br />
</li>
<li>
<cite>「婦女與性別史研究群」</cite><br />
網址: <a href="http://www.sinica.edu.tw/~women/index.htm">http://www.sinica.edu.tw/~women/index.htm</a><br />
中央研究近代史研究所「 婦女與性別史研究群」網站<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Journal of Women's History</span></cite><br />
網址: <a href="http://muse.jhu.edu/journals/journal_of_womens_history/">http://muse.jhu.edu/journals/journal_of_womens_history/</a><br />
E-mail <input type="hidden" name="email" value="muse at muse.jhu.edu" />
<input type="image" src="../images/email" alt="E-mail" />
muse<span>&#64;</span>muse.jhu.edu<br />
電話: (410) 516-6989<br />
傳真: (410) 516-6968<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">GODEY'S LADY'S BOOK Online</span></cite><br />
網址: <a href="http://www.history.rochester.edu/godeys/">http://www.history.rochester.edu/godeys/</a><br />
E-mail <input type="hidden" name="email" value="mapi at mail.rochester.edu" />
<input type="image" src="../images/email" alt="E-mail" />
mapi<span>&#64;</span>mail.rochester.edu<br />
待撰寫。<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
index.html.xhtml

View File

@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="相關連結" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href=".." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<script type="text/javascript" src="../scripts/common.js"></script>
<script type="text/javascript" src="../scripts/lang.zh-tw.js"></script>
<script type="text/javascript" src="../scripts/links.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>女網牽手</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>女網牽手</h1>
<h1 class="en" xml:lang="en-us">Woman Interconnect</h1>
</div>
<div class="intro">
<p>女人牽手,總是多了一份親暱。</p>
<p>幼稚園、小學時期,女人們牽手上廁所;中學時期,女人們牽手面對成長的
喜怒哀樂;畢業後或念大學,或出社會,女人們牽手分享彼此的感情世界與就業
環境……藉由牽手,女人的情感、資訊流轉,女人的生命由此連結。</p>
<p>稍離現實的生活,女人進入虛擬網路的空間,藉由女網牽手,女人永不孤獨。</p>
</div>
<div class="splittoc">
<div class="tocl">
<ul>
<li><a href="orgs.html">一大群女人 <span class="note">(6)</span></a></li>
<li><a href="lesbian.html">女人愛女人 <span class="note">(6)</span></a></li>
<li><a href="history.html">回首的女人 <span class="note">(7)</span></a></li>
<li><a href="others.html">好人 <span class="note">(5)</span></a></li>
<li><a href="feminist.html">抗爭的女人 <span class="note">(19)</span></a></li>
<li><a href="medicine.html">愛惜身體的女人 <span class="note">(6)</span></a></li>
<li><a href="literate.html">舞文弄墨的女人 <span class="note">(1)</span></a></li>
</ul>
</div>
<div class="tocr">
<ul>
<li><a href="culture.html">女人文化界 <span class="note">(8)</span></a></li>
<li><a href="science.html">女性與科技 <span class="note">(1)</span></a></li>
<li><a href="general.html">多樣的女人 <span class="note">(4)</span></a></li>
<li><a href="intell.html">好學的女人 <span class="note">(17)</span></a></li>
<li><a href="labor.html">勞動的女人 <span class="note">(1)</span></a></li>
<li><a href="queer.html">搞怪的女人 <span class="note">(3)</span></a></li>
<li><a href="sex.html">隨性的女人 <span class="note">(1)</span></a></li>
</ul>
</div>
</div>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
intell.html.xhtml

View File

@@ -0,0 +1,411 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="學校, 研究所, 學術小組" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>好學的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>好學的女人</h1>
<h1 class="en" xml:lang="en-us">Studious Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
好學的女人
</div>
<ol class="linkslist">
<li>
<cite>女學會資訊網</cite><br />
網址: <a href="http://www.feminist.sinica.edu.tw/">http://www.feminist.sinica.edu.tw</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://sex.ncu.edu.tw/"><img class="linkicon"
src="http://sex.ncu.edu.tw/history/title.gif"
alt="中央性/別研究室" /></a><br />
<cite>中央性/別研究室 <span class="en" xml:lang="en-us">Center for the Study of Sexualities</span></cite><br />
網址: <a href="http://sex.ncu.edu.tw/">http://sex.ncu.edu.tw/</a><br />
E-mail <input type="hidden" name="email" value="sex at ncu.edu.tw" />
<input type="image" src="../images/email" alt="E-mail" />
sex<span>&#64;</span>ncu.edu.tw<br />
電話: (03) 426-2926<br />
傳真: (03) 426-2927<br />
由何春蕤等教授所組成的研究室,持續關注多元性別與性取向的權利。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Kinsey Institute for Research in Sex, Gender, and Reproduction</span></cite><br />
網址: <a href="http://www.indiana.edu/~kinsey/index.html">http://www.indiana.edu/~kinsey/index.html</a><br />
E-mail <input type="hidden" name="email" value="kinsey at indiana.edu" />
<input type="image" src="../images/email" alt="E-mail" />
kinsey<span>&#64;</span>indiana.edu<br />
地址: Morrison Hall 302, 1165 E. Third St. Bloomington, IN 47405 USA<br />
電話: 812/855-7686<br />
傳真: 812/855-8277<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite>性別與空間研究室</cite><br />
網址: <a href="http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm">http://www.bp.ntu.edu.tw/WebUsers/hdbih/new_page_5.htm</a><br />
(待撰寫)<br />
</li>
<li>
<cite>豪爽女人何春蕤個人網頁</cite><br />
網址: <a href="http://sex.ncu.edu.tw/members/ho/index.htm">http://sex.ncu.edu.tw/members/ho/index.htm</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">American College of Nurse-Midwives : With Women, For a Lifetime</span></cite><br />
網址: <a href="http://www.midwife.org/">http://www.midwife.org/</a><br />
E-mail <input type="hidden" name="email" value="info at acnm.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>acnm.org<br />
地址: 818 Connecticut Avenue NW, Suite 900, Washington, DC 20006<br />
電話: +1 (202) 728-9860<br />
傳真: +1 (202) 728-9897<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite><span class="en" xml:lang="en-us">The Ada Project (TAP)</span></cite><br />
網址: <a href="http://tap.mills.edu/index.jsp">http://tap.mills.edu/index.jsp</a><br />
女性交流電腦方面資訊及資源的網站<br />
</li>
<li>
<cite>「婦女與性別史研究群」</cite><br />
網址: <a href="http://www.sinica.edu.tw/~women/index.htm">http://www.sinica.edu.tw/~women/index.htm</a><br />
中央研究近代史研究所「 婦女與性別史研究群」網站<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.inform.umd.edu/EdRes/Topic/WomensStudies/"><img class="linkicon"
src="http://www.inform.umd.edu/WomensStudies/gifs/wsd.gif"
alt="The University of Maryland Women's Studies Database" /></a><br />
<cite><span class="en" xml:lang="en-us">The University of Maryland Women's Studies Database</span></cite><br />
網址: <a href="http://www.inform.umd.edu/EdRes/Topic/WomensStudies/">http://www.inform.umd.edu/EdRes/Topic/WomensStudies/</a><br />
E-mail <input type="hidden" name="email" value="ws-editor at umail.umd.edu" />
<input type="image" src="../images/email" alt="E-mail" />
ws-editor<span>&#64;</span>umail.umd.edu<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">The University of Melbourne - Key Centre for Women's Health</span></cite><br />
網址: <a href="http://www.kcwh.unimelb.edu.au/index.html">http://www.kcwh.unimelb.edu.au/index.html</a><br />
E-mail <input type="hidden" name="email" value="j.law at kcwh.unimelb.edu.au" />
<input type="image" src="../images/email" alt="E-mail" />
j.law<span>&#64;</span>kcwh.unimelb.edu.au<br />
地址: Key Centre for Women's Health in Society, The University of Melbourne Victoria, Carlton 3053, Australia<br />
電話: (+61 3) 8344 4333<br />
傳真: (+61 3) 9347 9824<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://ad.nccu.edu.tw/wisconsin/"><img class="linkicon"
src="http://ad.nccu.edu.tw/wisconsin/images/tit1.gif"
alt="Wisconsin's 傳播空間。" /></a><br />
<cite>Wisconsin's 傳播空間。</cite><br />
網址: <a href="http://ad.nccu.edu.tw/wisconsin/">http://ad.nccu.edu.tw/wisconsin/</a><br />
E-mail <input type="hidden" name="email" value="hhsun at nccu.edu.tw" />
<input type="image" src="../images/email" alt="E-mail" />
hhsun<span>&#64;</span>nccu.edu.tw<br />
孫秀蕙的個人網站。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>醫療•性別•社會學:吳嘉苓的網路世界</cite><br />
網址: <a href="http://www.social.ntu.edu.tw/~chialing/">http://www.social.ntu.edu.tw/~chialing/</a><br />
E-mail <input type="hidden" name="email" value="clwu at ccms.ntu.edu.tw" />
<input type="image" src="../images/email" alt="E-mail" />
clwu<span>&#64;</span>ccms.ntu.edu.tw<br />
地址: 106 臺北市大安區羅斯福路四段 1 號 臺大社會系<br />
電話: (02) 2636-0231 轉 3510<br />
臺大社會系吳嘉苓的網站。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">SFU Women's Studies Home Page</span></cite><br />
網址: <a href="http://www.sfu.ca/womens-studies/index.html">http://www.sfu.ca/womens-studies/index.html</a><br />
E-mail <input type="hidden" name="email" value="cgoodman at sfu.ca" />
<input type="image" src="../images/email" alt="E-mail" />
cgoodman<span>&#64;</span>sfu.ca<br />
地址: 8888 University Drive, Burnaby, B.C. Canada V5A 1S6<br />
電話: (604) 291-3333<br />
傳真: (604) 291-5518<br />
待撰寫<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Studies</span></cite><br />
網址: <a href="http://www.feministstudies.org/index.html">http://www.feministstudies.org/index.html</a><br />
E-mail <input type="hidden" name="email" value="sgroves at feministstudies.org" />
<input type="image" src="../images/email" alt="E-mail" />
sgroves<span>&#64;</span>feministstudies.org<br />
待說明。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Journal of Women's History</span></cite><br />
網址: <a href="http://muse.jhu.edu/journals/journal_of_womens_history/">http://muse.jhu.edu/journals/journal_of_womens_history/</a><br />
E-mail <input type="hidden" name="email" value="muse at muse.jhu.edu" />
<input type="image" src="../images/email" alt="E-mail" />
muse<span>&#64;</span>muse.jhu.edu<br />
電話: (410) 516-6989<br />
傳真: (410) 516-6968<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Women's Studied Resources</span></cite><br />
網址: <a href="http://bailiwick.lib.uiowa.edu/wstudies/">http://bailiwick.lib.uiowa.edu/wstudies/</a><br />
E-mail <input type="hidden" name="email" value="Karla-Tonella at uiowa.edu" />
<input type="image" src="../images/email" alt="E-mail" />
Karla-Tonella<span>&#64;</span>uiowa.edu<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminism.cn/"><img class="linkicon"
src="http://www.feminism.cn/images/feminismlogo1.jpg"
alt="女权中国" /></a><br />
<cite>女权中国</cite><br />
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminism at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminism<span>&#64;</span>163.com<br />
中国本土最大的女权主义学术资源网站<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
labor.html.xhtml

View File

@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="女工" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>勞動的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>勞動的女人</h1>
<h1 class="en" xml:lang="en-us">Working Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
勞動的女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>日日春</cite><br />
網址: <a href="http://www.taconet.com.tw/Home/">http://www.taconet.com.tw/Home/</a><br />
E-mail <input type="hidden" name="email" value="sfww at ms11.url.com.tw" />
<input type="image" src="../images/email" alt="E-mail" />
sfww<span>&#64;</span>ms11.url.com.tw<br />
台北市公娼自救會網站<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
lesbian.html.xhtml

View File

@@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="女同志, 女同性戀" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>女人愛女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>女人愛女人</h1>
<h1 class="en" xml:lang="en-us">Women Love Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
女人愛女人
</div>
<ol class="linkslist">
<li>
<cite><span class="en" xml:lang="en-us">Lesbian.org</span></cite><br />
網址: <a href="http://www.lesbian.org/">http://www.lesbian.org/</a><br />
(待撰寫)<br />
</li>
<li>
<a href="http://www.leschina.com/"><img class="linkicon"
src="http://www.leschina.com/leschina/logoo.gif"
alt="深秋小屋" /></a><br />
<cite>深秋小屋</cite><br />
網址: <a href="http://www.leschina.com/">http://www.leschina.com/</a><br />
大陸女同志 dongdong 和 xixi 做的女同志網路社區。<br />
</li>
<li>
<cite>小摩拉子壘球隊 <span class="en" xml:lang="en-us">More Les</span></cite><br />
網址: <a href="http://home.kimo.com.tw/moreles1998/">http://home.kimo.com.tw/moreles1998/</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>集合出版社 <span class="en" xml:lang="en-us">Must Muster Publisher</span></cite><br />
網址: <a href="http://www.2her.com.tw/">http://www.2her.com.tw/</a><br />
E-mail <input type="hidden" name="email" value="courious at saturn.seed.net.tw" />
<input type="image" src="../images/email" alt="E-mail" />
courious<span>&#64;</span>saturn.seed.net.tw<br />
地址: 板橋郵政18-113號信箱<br />
電話: 02-22228365<br />
傳真: 02-22225872<br />
以出版女同志正面作品為主的出版社<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminism.cn/"><img class="linkicon"
src="http://www.feminism.cn/images/feminismlogo1.jpg"
alt="女权中国" /></a><br />
<cite>女权中国</cite><br />
網址: <a href="http://www.feminism.cn/">http://www.feminism.cn/</a><br />
E-mail <input type="hidden" name="email" value="feminism at 163.com" />
<input type="image" src="../images/email" alt="E-mail" />
feminism<span>&#64;</span>163.com<br />
中国本土最大的女权主义学术资源网站<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="https://www.imacat.idv.tw/"><img class="linkicon"
src="https://www.imacat.idv.tw/images/icon"
alt="旅舍依瑪" /></a><br />
<cite>旅舍依瑪 <span class="en" xml:lang="en-us">Tavern Imacat's</span></cite><br />
網址: <a href="https://www.imacat.idv.tw/">https://www.imacat.idv.tw/</a><br />
E-mail <input type="hidden" name="email" value="imacat at mail.imacat.idv.tw" />
<input type="image" src="../images/email" alt="E-mail" />
imacat<span>&#64;</span>mail.imacat.idv.tw<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
literate.html.xhtml

View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="文學, 書寫" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>舞文弄墨的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>舞文弄墨的女人</h1>
<h1 class="en" xml:lang="en-us">Literary Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
舞文弄墨的女人
</div>
<ol class="linkslist">
<li>
<cite>輔大英美所 文學批評資料庫 女性主義與性別研究</cite><br />
網址: <a href="http://www.eng.fju.edu.tw/Literary_Criticism/feminism/">http://www.eng.fju.edu.tw/Literary_Criticism/feminism/</a><br />
(待撰寫)<br />
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
medicine.html.xhtml

View File

@@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="醫學, 醫療, 保健" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>愛惜身體的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>愛惜身體的女人</h1>
<h1 class="en" xml:lang="en-us">Healthy Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
愛惜身體的女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.mum.org/"><img class="linkicon"
src="http://www.mum.org/titlelogo4.gif"
alt="Museum of Menstruation and Women's Health" /></a><br />
<cite><span class="en" xml:lang="en-us">Museum of Menstruation and Women's Health</span></cite><br />
網址: <a href="http://www.mum.org/">http://www.mum.org/</a><br />
E-mail <input type="hidden" name="email" value="hfinley at mum.org" />
<input type="image" src="../images/email" alt="E-mail" />
hfinley<span>&#64;</span>mum.org<br />
月經博物館<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">AMWA: The American Medical Women's Association</span></cite><br />
網址: <a href="http://www.amwa-doc.org/">http://www.amwa-doc.org/</a><br />
E-mail <input type="hidden" name="email" value="info at amwa-doc.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>amwa-doc.org<br />
地址: 801 N. Fairfax Street, Suite 400, Alexandria, VA 22314<br />
電話: +1 (703) 838-0500<br />
傳真: +1 (703) 549-3864<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">The University of Melbourne - Key Centre for Women's Health</span></cite><br />
網址: <a href="http://www.kcwh.unimelb.edu.au/index.html">http://www.kcwh.unimelb.edu.au/index.html</a><br />
E-mail <input type="hidden" name="email" value="j.law at kcwh.unimelb.edu.au" />
<input type="image" src="../images/email" alt="E-mail" />
j.law<span>&#64;</span>kcwh.unimelb.edu.au<br />
地址: Key Centre for Women's Health in Society, The University of Melbourne Victoria, Carlton 3053, Australia<br />
電話: (+61 3) 8344 4333<br />
傳真: (+61 3) 9347 9824<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<cite><span class="en" xml:lang="en-us">The National Abortion and Reproductive Rights Action League (NARAL)</span></cite><br />
網址: <a href="http://www.naral.org/">http://www.naral.org/</a><br />
Abortion and Reproductive Rights: Choice For Women<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Feminist Women's Health Center</span></cite><br />
網址: <a href="http://www.fwhc.org/">http://www.fwhc.org/</a><br />
E-mail <input type="hidden" name="email" value="info at fwhc.org" />
<input type="image" src="../images/email" alt="E-mail" />
info<span>&#64;</span>fwhc.org<br />
待撰寫。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Margaret Sanger Papers Project</span></cite><br />
網址: <a href="http://www.nyu.edu/projects/sanger/">http://www.nyu.edu/projects/sanger/</a><br />
E-mail <input type="hidden" name="email" value="cathy.hajo at nyu.edu" />
<input type="image" src="../images/email" alt="E-mail" />
cathy.hajo<span>&#64;</span>nyu.edu<br />
待撰寫。<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
orgs.html.xhtml

View File

@@ -0,0 +1,283 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="組織, 團體" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>一大群女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>一大群女人</h1>
<h1 class="en" xml:lang="en-us">Organized Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
一大群女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.feminist.org/"><img class="linkicon"
src="http://www.feminist.org/fmf/graphics/fmfsmall.gif"
alt="Feminist Majority Foundation" /></a><br />
<cite><span class="en" xml:lang="en-us">Feminist Majority Foundation</span></cite><br />
網址: <a href="http://www.feminist.org/">http://www.feminist.org/</a><br />
E-mail <input type="hidden" name="email" value="femajority at feminist.org" />
<input type="image" src="../images/email" alt="E-mail" />
femajority<span>&#64;</span>feminist.org<br />
地址: 1600 Wilson Boulevard, Suite 801, Arlington, VA 22209<br />
電話: +1 (703) 522-2214<br />
傳真: +1 (703) 522-2219<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://tw-women.formosa.org/"><img class="linkicon"
src="http://tw-women.formosa.org/graphics/nav_top_logob5.gif"
alt="台灣查某" /></a><br />
<cite>台灣查某 <span class="en" xml:lang="en-us">Taiwan Women</span></cite><br />
網址: <a href="http://tw-women.formosa.org/">http://tw-women.formosa.org</a><br />
E-mail <input type="hidden" name="email" value="tww-com at formosa.org" />
<input type="image" src="../images/email" alt="E-mail" />
tww-com<span>&#64;</span>formosa.org<br />
地址: P.O.Box 74-7943, Rego Park, NY11374<br />
傳真: (435) 603-4971<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>香港婦女服務及資料網頁 <span class="en" xml:lang="en-us">Women Service Resource Page in Hong Kong</span></cite><br />
網址: <a href="http://women.socialnet.org.hk/">http://women.socialnet.org.hk/</a><br />
E-mail <input type="hidden" name="email" value="women at hkcss.org.hk" />
<input type="image" src="../images/email" alt="E-mail" />
women<span>&#64;</span>hkcss.org.hk<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>財團法人婦女新知基金會 <span class="en" xml:lang="en-us">Awakening Foundation</span></cite><br />
網址: <a href="http://www.awakening.org.tw/">http://www.awakening.org.tw/</a><br />
E-mail <input type="hidden" name="email" value="hsinchi at ms10.hinet.net" />
<input type="image" src="../images/email" alt="E-mail" />
hsinchi<span>&#64;</span>ms10.hinet.net<br />
地址: 104 臺北市大同區長安東路二段 230 號 2 樓之 1<br />
電話: (02) 2711-2814 (02) 2711-2874<br />
傳真: (02) 2711-2571<br />
臺灣第一個婦運團體,目前持續推動民法親屬篇的改革。<br />
</div>
</form>
</li>
<li>
<a href="http://www.now.org/"><img class="linkicon"
src="http://www.now.org/purplgsm.gif"
alt="National Organization for Women (NOW)" /></a><br />
<cite><span class="en" xml:lang="en-us">National Organization for Women (NOW)</span></cite><br />
網址: <a href="http://www.now.org/">http://www.now.org/</a><br />
全美最大的婦運組織,在全美各地當設有分部。<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>臺灣婦女資訊網 <span class="en" xml:lang="en-us">Taiwan Women Web</span></cite><br />
網址: <a href="http://taiwan.yam.org.tw/womenweb/">http://taiwan.yam.org.tw/womenweb/</a><br />
E-mail <input type="hidden" name="email" value="stsai at frontier.org.tw" />
<input type="image" src="../images/email" alt="E-mail" />
stsai<span>&#64;</span>frontier.org.tw<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
others.html.xhtml

View File

@@ -0,0 +1,261 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="其它網站" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>好人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>好人</h1>
<h1 class="en" xml:lang="en-us">Others</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
好人
</div>
<ol class="linkslist">
<li>
<a href="http://pesean.uhome.net/"><img class="linkicon"
src="http://pesean.uhome.net/img/pesean_e.gif"
alt="東亞基進網" /></a><br />
<cite>東亞基進網 <span class="en" xml:lang="en-us">Progressive East and Southeast Asian Network</span></cite><br />
網址: <a href="http://pesean.uhome.net/">http://pesean.uhome.net/</a><br />
(待撰寫)<br />
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>綠色公民行動聯盟 <span class="en" xml:lang="en-us">Green Citizens' Action Alliance</span></cite><br />
網址: <a href="http://www.gcaa.org.tw/">http://www.gcaa.org.tw/</a><br />
E-mail <input type="hidden" name="email" value="gcaa at seed.net.tw" />
<input type="image" src="../images/email" alt="E-mail" />
gcaa<span>&#64;</span>seed.net.tw<br />
地址: 100 台北市中正區南昌路二段 166 號 2 樓<br />
電話: (02) 2304-950<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>臺灣勞工陣線 <span class="en" xml:lang="en-us">Taiwan Labor Front</span></cite><br />
網址: <a href="http://labor.ngo.org.tw/">http://labor.ngo.org.tw/</a><br />
E-mail <input type="hidden" name="email" value="labornet at tpts1.seed.net.tw" />
<input type="image" src="../images/email" alt="E-mail" />
labornet<span>&#64;</span>tpts1.seed.net.tw<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite>新世代青年團 <span class="en" xml:lang="en-us">New Century Youth Group in Taiwan</span></cite><br />
網址: <a href="http://youth.ngo.org.tw/">http://youth.ngo.org.tw/</a><br />
E-mail <input type="hidden" name="email" value="newyouthtw at yahoo.com.tw" />
<input type="image" src="../images/email" alt="E-mail" />
newyouthtw<span>&#64;</span>yahoo.com.tw<br />
由一群從事社會運動的學生所組成的團體。<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.eff.org/blueribbon.html"><img class="linkicon"
src="http://br.eff.org/br.gif"
alt="The Blue Ribbon Campaign for Online Free Speech" /></a><br />
<cite><span class="en" xml:lang="en-us">The Blue Ribbon Campaign for Online Free Speech</span></cite><br />
網址: <a href="http://www.eff.org/blueribbon.html">http://www.eff.org/blueribbon.html</a><br />
E-mail <input type="hidden" name="email" value="webmaster at eff.org" />
<input type="image" src="../images/email" alt="E-mail" />
webmaster<span>&#64;</span>eff.org<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
queer.html.xhtml

View File

@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="酷兒" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>搞怪的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>搞怪的女人</h1>
<h1 class="en" xml:lang="en-us">Queer Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
搞怪的女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.wenxue.com/scene/b5/yuejing/index.htm"><img class="linkicon"
src="http://www.wenxue.com/scene/images/yuejing/ttl.gif"
alt="現場:月經" /></a><br />
<cite>現場:月經</cite><br />
網址: <a href="http://www.wenxue.com/scene/b5/yuejing/index.htm">http://www.wenxue.com/scene/b5/yuejing/index.htm</a><br />
E-mail <input type="hidden" name="email" value="yuejing at wenxue.com &lt;yuejing at wenxue.com&gt;" />
<input type="image" src="../images/email" alt="E-mail" />
yuejing<span>&#64;</span>wenxue.com &lt;yuejing<span>&#64;</span>wenxue.com&gt;<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.qrd.org/"><img class="linkicon"
src="http://www.qrd.org/qrd/www/images/QRD.gif"
alt="Queer Resources Directory" /></a><br />
<cite><span class="en" xml:lang="en-us">Queer Resources Directory</span></cite><br />
網址: <a href="http://www.qrd.org/">http://www.qrd.org/</a><br />
E-mail <input type="hidden" name="email" value="staff at qrd.org" />
<input type="image" src="../images/email" alt="E-mail" />
staff<span>&#64;</span>qrd.org<br />
(待撰寫)<br />
</div>
</form>
</li>
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">AltSex</span></cite><br />
網址: <a href="http://www.altsex.org/">http://www.altsex.org</a><br />
E-mail <input type="hidden" name="email" value="webmaster at altsex.org" />
<input type="image" src="../images/email" alt="E-mail" />
webmaster<span>&#64;</span>altsex.org<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
science.html.xhtml

View File

@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="科學, 科技" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>女性與科技</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>女性與科技</h1>
<h1 class="en" xml:lang="en-us">Scientific Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
女性與科技
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<cite><span class="en" xml:lang="en-us">Women and Computer Science</span></cite><br />
網址: <a href="http://www.mills.edu/ACAD_INFO/MCS/SPERTUS/Gender/gender.html">http://www.mills.edu/ACAD_INFO/MCS/SPERTUS/Gender/gender.html</a><br />
E-mail <input type="hidden" name="email" value="spertus at mills.edu" />
<input type="image" src="../images/email" alt="E-mail" />
spertus<span>&#64;</span>mills.edu<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
sex.html.xhtml

View File

@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="小招, 依瑪貓" />
<meta name="copyright" content="&copy; 1999-2020 《女聲》電子報。《女聲》電子報保有所有權利。" />
<meta name="keywords" content="性, 身體" />
<meta name="generator" content="Selima 3.10" />
<link rel="start" type="application/xhtml+xml" href=".." />
<link rel="copyright" type="application/xhtml+xml" href="../copying.html" />
<link rel="author" href="mailto:editors&#64;mail.wov.idv.tw" />
<link rel="search" type="application/xhtml+xml" href="../cgi-bin/search.cgi" />
<link rel="up" type="application/xhtml+xml" href="." />
<link rel="stylesheet" type="text/css" href="../stylesheets/common.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
<title>隨性的女人</title>
</head>
<body class="links">
<div id="topofpage" class="skiptobody">
<a accesskey="2" href="#body">跳到網頁內文區。</a>
</div>
<div id="nav" class="nav" title="導覽連結區">
<div class="accessguide"><a accesskey="L"
href="#nav" title="導覽連結區">:::</a></div>
<form action="../cgi-bin/search.cgi" method="get" accept-charset="UTF-8">
<div class="navibar">
<span><a href="../newsletters/">閱讀女聲</a></span> |
<span><a href="../subscribe.html">訂閱女聲</a></span> |
<span><a href="../cgi-bin/guestbook.cgi">妳的女聲</a></span> |
<span><a href=".">女網牽手</a></span> |
<span><a accesskey="1" href="..">回首頁</a></span> |
<span><a href="mailto:editors&#64;mail.wov.idv.tw">寫信給女聲</a></span> |
<label for="navquery">檢索:</label><input
id="navquery" class="text" type="text" name="query" value="" /><input
type="hidden" name="charset" value="UTF-8" /><input
type="submit" value="搜尋" />
</div>
</form>
<hr />
<div class="navibar">
<span><a href="orgs.html">一大群女人</a></span> |
<span><a href="culture.html">女人文化界</a></span> |
<span><a href="lesbian.html">女人愛女人</a></span> |
<span><a href="science.html">女性與科技</a></span> |
<span><a href="history.html">回首的女人</a></span> |
<span><a href="general.html">多樣的女人</a></span> |
<span><a href="others.html">好人</a></span> |
<span><a href="intell.html">好學的女人</a></span> |
<span><a href="feminist.html">抗爭的女人</a></span> |
<span><a href="labor.html">勞動的女人</a></span> |
<span><a href="medicine.html">愛惜身體的女人</a></span> |
<span><a href="queer.html">搞怪的女人</a></span> |
<span><a href="literate.html">舞文弄墨的女人</a></span> |
<span><a href="sex.html">隨性的女人</a></span>
</div>
</div>
<hr />
<div id="body" class="body" title="網頁內文區">
<div class="accessguide"><a accesskey="C"
href="#body" title="網頁內文區">:::</a></div>
<div class="title">
<img src="../images/logo"
alt="女聲 LOGO" title="女聲 Woman's Voice" />
<h1>隨性的女人</h1>
<h1 class="en" xml:lang="en-us">Sexual Women</h1>
</div>
<div class="breadcrumb">
<a href=".">女網牽手</a> /
隨性的女人
</div>
<ol class="linkslist">
<li>
<form action="../cgi-bin/mailto.cgi" method="post">
<div>
<a href="http://www.positive.org/Home/index.html"><img class="linkicon"
src="http://www.positive.org/images/logo/small.gif"
alt="The Coalition for Positive Sexuality (CPS)" /></a><br />
<cite><span class="en" xml:lang="en-us">The Coalition for Positive Sexuality (CPS)</span></cite><br />
網址: <a href="http://www.positive.org/Home/index.html">http://www.positive.org/Home/index.html</a><br />
E-mail <input type="hidden" name="email" value="cps at positive.org" />
<input type="image" src="../images/email" alt="E-mail" />
cps<span>&#64;</span>positive.org<br />
地址: 3712 N. Broadway PMB#191, Chicago, IL 60613<br />
電話: +1 (773) 604-1654<br />
(待撰寫)<br />
</div>
</form>
</li>
</ol>
<hr />
<h2>女網牽手‧和妳牽手</h2>
<div class="intro">
<p>女人上網,伴手相牽。我們希望和各種不同國女人發聲的網站,或為女人努力發聲的網站串連起來,匯集成女人自己的網路空間。若妳也願意和我們牽手,請填好下表寄出。我們將儘快查詢妳的網址是否正確,然後加入女網牽手中。</p>
</div>
<form class="regform" action="mailto:editors&#64;mail.wov.idv.tw?subject=%5B%E5%A5%B3%E8%81%B2%E5%9B%9E%E5%87%BD%5D%20%E7%B6%B2%E7%AB%99%E7%99%BB%E9%8C%84"
method="post" enctype="text/plain" accept-charset="UTF-8"
onsubmit="return isRegisterOK(this);">
<div>
<input type="hidden" name="charset" value="UTF-8" />
<table summary="本表提供登錄女聲女網簽手的表單,網站資料欄位名稱,和填寫該資料的輸入格。">
<colgroup><col /><col /></colgroup>
<tbody>
<tr>
<th scope="row"><label for="title">站名:</label></th>
<td><input id="title" class="text" type="text" name="title" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="title_2ln">站名(第二語言,可略):</label></th>
<td><input id="title_2ln" class="text" type="text" name="title_2ln" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="url">網址:</label></th>
<td><input id="url" class="text" type="text" name="url" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="icon">連結小圖:</label></th>
<td><input id="icon" class="text" type="text" name="icon" size="40" value="http://" /></td>
</tr>
<tr>
<th scope="row"><label for="cat0">分類:</label></th>
<td><input id="cat0" class="text" type="text" name="cat0" size="40" value="" /><br />
<input id="cat1" class="text" type="text" name="cat1" size="40" value="" /><br />
<input id="cat2" class="text" type="text" name="cat2" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="dsc">簡介:</label></th>
<td><textarea id="dsc" name="dsc" cols="45" rows="10"
onfocus="if (this.value == &quot;請填上簡介。&quot;) this.value = &quot;&quot;;">請填上簡介。</textarea></td>
</tr>
<tr>
<th scope="row"><label for="email">E-mail </label></th>
<td><input id="email" class="text" type="text" name="email" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="addr">連絡地址:</label></th>
<td><input id="addr" class="text" type="text" name="addr" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="tel">連絡電話:</label></th>
<td><input id="tel" class="text" type="text" name="tel" size="40" value="" /></td>
</tr>
<tr>
<th scope="row"><label for="fax">連絡傳真:</label></th>
<td><input id="fax" class="text" type="text" name="fax" size="40" value="" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="和我簽手" />
</div>
</form>
</div>
<hr />
<div id="footer" class="footer" title="頁尾區">
<div>
<a href=".." title="女聲電子報網站"><img
src="../images/icon" alt="女聲" /></a>|<a
href="https://www.imacat.idv.tw/"
title="往旅舍依瑪網站"><img
src="https://www.imacat.idv.tw/images/icon"
alt="歡迎光臨旅舍依瑪" /></a>
</div>
<div>
<a href="http://www.w3.org/Style/CSS/Buttons/"
title="CSS 樣式表說明" hreflang="en"><img
src="../images/w3c/mwcts" alt="以 CSS 樣式表製作" /></a>|<a
href="http://html-validator.imacat.idv.tw/check/referer"
title="本頁的 HTML 驗證結果" hreflang="en"><img
src="../images/w3c/vxhtml11" alt="XHTML 1.1 正確!" /></a>|<a
href="http://jigsaw.w3.org/css-validator/check/referer"
title="本頁的 CSS 驗證結果" hreflang="en"><img
src="../images/w3c/vcss" alt="CSS 正確!" /></a>|<a
href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="無障礙三 A 級標準說明" hreflang="en"><img
src="../images/w3c/wcag1AAA"
alt="W3C 無障礙網頁規範 1.0 三 A 級標準標章" /></a>
<p>本頁符合 <a href="http://www.w3.org/TR/xhtml11/" hreflang="en"><abbr
title="Extensible HyperText Markup Language">XHTML</abbr> 1.1</a> /
<a href="http://www.w3.org/TR/CSS21/" hreflang="en"><abbr
title="Cascading Style Sheets">CSS</abbr> 2.1</a> /
<a href="http://www.w3.org/TR/WAI-WEBCONTENT/"
hreflang="en">無障礙網頁規範 1.0</a> 三 A 級標準</p>
</div>
<div>
<p>《女聲》電子報著作權所有,欲轉載引用請先閱讀<a href="../copying.html">著作權聲明</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,145 @@
#! /usr/bin/perl -w
# Woman's Voice
# 1-guestbook.cgi: The guestbook.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-04-06
use 5.008;
use utf8;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub html_foreword();
initenv(-session => 0,
-this_table => "guestbook",
-dbi_lock => {"guestbook" => LOCK_EX},
-lastmod => 1,
-page_param => {"keywords" => N_("your voice"),
"class" => "guestbook",
"javascripts" => [qw(/scripts/guestbook.js)]});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::wov::Processor::Guestbook::Public($POST);
$processor->process;
http_303 $REQUEST_FILE;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
# Old styled page number
http_301 $REQUEST_FILE if defined $GET->param("no");
# List handler handles its own error
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Run the checker
$checker = new Selima::wov::Checker::Guestbook::Public(curform);
$error = $checker->check(qw(message name identity location
email url flood dup spam));
return $error if defined $error;
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM, $args);
$status = $_[0];
$FORM = new Selima::wov::Form::Guestbook::Public($status);
$LIST = new Selima::wov::List::Guestbook::Public;
$args = $LIST->page_param;
html_header "妳的女聲", "Your Voice", $args;
html_foreword;
html_errmsg $status;
$FORM->html;
$LIST->html;
html_footer $args;
return;
}
##################################
# Subroutines to manage the data #
##################################
# html_foreword: Print the HTML foreword
sub html_foreword() {
local ($_, %_);
print << "EOT";
<div class="intro">
<p>發聲就是政治,是權力,是對主體性的要求。</p>
<p>女聲就是女人的聲音。聲音有的好聽,有的不好聽,有的悅耳,有的嘈雜。
也許\是學者、是政要、是學生、是女兒、是媽媽、是女同性戀、是雙性戀、是
女工、是菲傭、是公娼、是私娼、是雛妓、是打工辣妹、是家庭主婦、是心理
女性。可能都是,也可能都不是。這些都是女人,她們的聲音都同等重要,在
差異中尋求最適合自己的生存策略。</p>
<p>更重要的是,身為女人,是政治行動,不只是天生的命運。</p>
</div>
EOT
return;
}
no utf8;

View File

@@ -0,0 +1,121 @@
#! /usr/bin/perl -w
# Woman's Voice
# 1-subs_counter.cgi: The subscriber counter.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-05-17
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub get_counter();
sub html_image($);
use Fcntl qw(:flock :seek);
use GD;
use IO::NestedCapture qw(CAPTURE_STDOUT);
use constant DATA_FILE => "/var/lib/mailman/lists/wov/config.pck";
use constant COUNTER_PROG => "/usr/libexec/total_members";
use constant LISTNAME => "wov";
use vars qw(@FGCOLOR @BGCOLOR $FONT);
@FGCOLOR = (0, 0, 0); # #000000 Black
@BGCOLOR = (255, 255, 255); # #FFFFFF White
$FONT = gdLargeFont;
use constant TRANSPARENT => 1;
initenv( -allowed => [qw(GET HEAD)],
-session => 0,
-dbi => DBI_NONE,
-lastmod => 1,
-lmfiles => [DATA_FILE],
-multilang => 0);
use vars qw($COUNTER $MTIME);
main;
exit 0;
sub main() {
local ($_, %_);
get_counter();
html_image($COUNTER);
return;
}
# get_counter: Get the subscriber counter
sub get_counter() {
local ($_, %_);
my $OUT;
# Obtain the mtime of the subscriber database file
$_ = (stat DATA_FILE)[9];
# We should update the counter
if (!defined $MTIME || $MTIME != $_) {
# Update the timestamp
$MTIME = $_;
@_ = (COUNTER_PROG, LISTNAME);
open $OUT, "-|", @_ or http_500 COUNTER_PROG . ": $!";
defined($COUNTER = <$OUT>) or http_500 COUNTER_PROG . ": $!";
close $OUT or http_500 COUNTER_PROG . ": $!";
chomp $COUNTER;
}
return $COUNTER;
}
# html_image: Make the image from the counter value
sub html_image($) {
local $_;
my ($counter, $image, $width, $height, $fgcolor, $bgcolor);
$counter = $_[0];
# Group the counter with commas at thousand digits.
$counter = fmtno($counter);
# Initialize the image object
# Get the width and height
$width = $FONT->width * (length $counter);
$height = $FONT->height;
# Create an image object
$image = GD::Image->new($width, $height);
# Create the forground/background color objects
$fgcolor = $image->colorAllocate(@FGCOLOR);
$bgcolor = $image->colorAllocate(@BGCOLOR);
# Draw the image
# Set the transparent background
$image->transparent($bgcolor) if TRANSPARENT;
# Paint the background
$image->filledRectangle(0, 0, $width, $height, $bgcolor);
# Write the text
$image->string($FONT, 0, 0, $counter, $fgcolor);
# Output
$CONTENT_TYPE = "image/png";
binmode IO::NestedCapture->instance->{"STDOUT_current"}[-1], ":raw";
print $image->png;
return;
}

View File

@@ -0,0 +1,242 @@
#! /usr/bin/perl -w
# Woman's Voice
# acctrecs.cgi: The accounting record administration.
# Copyright (c) 2007-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2007-09-24
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_seltrx($);
sub import_selsubj($);
initenv(-restricted => 1,
-this_table => "acctrecs",
-dbi_lock => {"acctrecs" => LOCK_EX,
"accttrx" => LOCK_SH,
"acctsubj" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("accounting")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::AcctRec($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# Only allowing to run on HTTPS
http_403 if !is_https;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Only allowing to run on HTTPS
http_403 if !is_https;
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::AcctRec(curform);
$checker->redir(qw(seltrx deltrx selsubj delsubj));
$error = $checker->check(qw(trx type ord subj summary amount));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::AcctRec(curform);
$checker->redir(qw(del seltrx deltrx selsubj delsubj));
$error = $checker->check(qw(trx type ord subj summary amount));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::AcctRec(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::AcctRec($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::Accounting::Records;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the accounting record."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This accounting record does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
$CURRENT{"type"} = $CURRENT{"credit"}? "credit": "debit";
# OK
return;
}
# import_seltrx: Import the selected accounting transaction into the retrieved form
sub import_seltrx($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("trx", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "accttrx";
return;
}
# import_selsubj: Import the selected accounting subject into the retrieved form
sub import_selsubj($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("subj", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj";
return;
}

View File

@@ -0,0 +1,107 @@
#! /usr/bin/perl -w
# Woman's Voice
# acctreps.cgi: The accounting report viewer.
# Copyright (c) 2007-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2007-09-24
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub html_page($);
initenv(-restricted => 1,
-dbi_lock => {"acctsubj" => LOCK_SH,
"accttrx" => LOCK_SH,
"acctrecs" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("accounting"),
"javascripts" => [qw(/scripts/accounting.js)]});
main;
exit 0;
sub main() {
local ($_, %_);
my $error;
# Only allowing requests with GET method
# Check it here, since we still want list preference handlers to work
http_405 qw(GET) if $ENV{"REQUEST_METHOD"} ne "GET";
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
# Only allowing to run on HTTPS
http_403 if !is_https;
# List handler handles its own error
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $page_param);
$status = $_[0];
# List the available items
$_ = list_type;
if ($_ eq "cashsum") {
$LIST = new Selima::List::Accounting::Reports::Cash::Summary;
} elsif ($_ eq "ldgr") {
$LIST = new Selima::List::Accounting::Reports::Ledger;
} elsif ($_ eq "ldgrsum") {
$LIST = new Selima::List::Accounting::Reports::Ledger::Summary;
} elsif ($_ eq "journal") {
$LIST = new Selima::List::Accounting::Reports::Journal;
} elsif ($_ eq "tb") {
$LIST = new Selima::List::Accounting::Reports::TriBlnc;
} elsif ($_ eq "incmstat") {
$LIST = new Selima::List::Accounting::Reports::IncmStat;
} elsif ($_ eq "blncshet") {
$LIST = new Selima::List::Accounting::Reports::BlncShet;
} elsif ($_ eq "search") {
$LIST = new Selima::List::Accounting::Reports::Search;
} else {
$LIST = new Selima::List::Accounting::Reports::Cash;
}
# Return the data as a CSV file
return $LIST->html if $LIST->{"iscsv"};
# Ordinary list
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
return;
}

View File

@@ -0,0 +1,292 @@
#! /usr/bin/perl -w
# Woman's Voice
# acctsubj.cgi: The accounting subject administraion.
# Copyright (c) 2007-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2007-09-24
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selparent($);
initenv(-restricted => 1,
-this_table => "acctsubj",
-dbi_lock => {"acctsubj" => LOCK_EX,
"acctrecs" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("accounting")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::AcctSubj($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# Only allowing to run on HTTPS
http_403 if !is_https;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Start from the default language
return {"msg"=>N_("Please add a new accounting subject from [_1]."),
"margs"=>["_DEFAULT_LANG"],
"isform"=>0}
if getlang ne $DEFAULT_LANG;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting sub-subject,accounting sub-subjects]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting sub-subject,all of its accounting sub-subjects] must first be deleted."),
"margs"=>[$CURRENT{"ssubcount"}],
"isform"=>0}
if $CURRENT{"ssubcount"} > 0;
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting record,accounting records]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting record,all of its accounting records] must first be deleted."),
"margs"=>[$CURRENT{"reccount"}],
"isform"=>0}
if $CURRENT{"reccount"} > 0;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Only allowing to run on HTTPS
http_403 if !is_https;
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Start from the default language
return {"msg"=>N_("Please add a new accounting subject from [_1]."),
"margs"=>["_DEFAULT_LANG"],
"isform"=>0}
if getlang ne $DEFAULT_LANG;
# Run the checker
$checker = new Selima::Checker::AcctSubj(curform);
$checker->redir(qw(selparent delparent));
$error = $checker->check(qw(parent code title));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::AcctSubj(curform);
$checker->redir(qw(del zhsync selparent delparent));
$error = $checker->check(qw(parent code title));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::AcctSubj(curform);
$checker->redir(qw(cancel));
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting sub-subject,accounting sub-subjects]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting sub-subject,all of its accounting sub-subjects] must first be deleted."),
"margs"=>[$CURRENT{"ssubcount"}],
"isform"=>0}
if $CURRENT{"ssubcount"} > 0;
return {"msg"=>N_("This accounting subject has [numerate,_1,an accounting record,accounting records]. It cannot be deleted. To delete the subject, [numerate,_1,its accounting record,all of its accounting records] must first be deleted."),
"margs"=>[$CURRENT{"reccount"}],
"isform"=>0}
if $CURRENT{"reccount"} > 0;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::AcctSubj($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
if (list_type eq "lastlv") {
$LIST = new Selima::List::Accounting::Subjects::LastLv;
} else {
$LIST = new Selima::List::Accounting::Subjects;
}
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
my ($lang, $lndb, $lndbdef, $title);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the accounting subject."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This accounting subject does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
$lang = getlang;
$lndb = getlang LN_DATABASE;
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
# Obtain the belonging subjects list
@_ = qw();
push @_, "sn AS sn";
if (@ALL_LINGUAS > 1) {
$title = $lang eq $DEFAULT_LANG? "title_$lndb":
"COALESCE(title_$lndb, title_$lndbdef)";
} else {;
$title = "title";
}
push @_, $DBH->strcat("code", "' '", $title) . " AS title";
$sql = "SELECT " . join(", ", @_) . " FROM acctsubj"
. " WHERE parent=$sn"
. " ORDER BY code;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"ssubcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"ssubcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"ssub$_" . "sn"} = $$row{"sn"};
$CURRENT{"ssub$_" . "title"} = $$row{"title"};
}
# Obtain the belonging records list
$sql = "SELECT sn FROM acctrecs"
. " WHERE subj=$sn;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"reccount"} = $sth->rows;
# OK
return;
}
# import_selparent: Import the selected parent into the retrieved form
sub import_selparent($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj") {
$FORM->param("parent", $GET->param("selsn"));
$FORM->param("topmost", "false");
}
return;
}

View File

@@ -0,0 +1,278 @@
#! /usr/bin/perl -w
# Woman's Voice
# accttrx.cgi: The accounting transaction administraion.
# Copyright (c) 2007-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2007-09-24
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selsubj($);
initenv(-restricted => 1,
-this_table => "accttrx",
-dbi_lock => {"accttrx" => LOCK_EX,
"acctrecs" => LOCK_EX,
"acctsubj" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("accounting"),
"javascripts" => [qw(/scripts/accounting.js)]});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::AcctTrx($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# Only allowing to run on HTTPS
http_403 if !is_https;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Only allowing to run on HTTPS
http_403 if !is_https;
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::AcctTrx(curform);
$checker->redir(qw(cnvttrans selsubj));
$error = $checker->check(qw(date ord note recs));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::AcctTrx(curform);
$checker->redir(qw(del cnvttrans selsubj));
$error = $checker->check(qw(date ord note recs));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::AcctTrx(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::AcctTrx($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::Accounting::Transacts;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the accounting transaction."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This accounting transaction does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# Obtain the belonging debit records list
$sql = "SELECT * FROM acctrecs"
. " WHERE trx=$sn"
. " AND NOT credit"
. " ORDER BY ord;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"debtcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"debtcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"debt$_" . "sn"} = $$row{"sn"};
$CURRENT{"debt$_" . "ord"} = $$row{"ord"};
$CURRENT{"debt$_" . "subj"} = $$row{"subj"};
$CURRENT{"debt$_" . "summary"} = $$row{"summary"};
$CURRENT{"debt$_" . "amount"} = $$row{"amount"};
}
# Obtain the belonging credit records list
$sql = "SELECT * FROM acctrecs"
. " WHERE trx=$sn"
. " AND credit"
. " ORDER BY ord;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"crdtcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"crdtcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"crdt$_" . "sn"} = $$row{"sn"};
$CURRENT{"crdt$_" . "ord"} = $$row{"ord"};
$CURRENT{"crdt$_" . "subj"} = $$row{"subj"};
$CURRENT{"crdt$_" . "summary"} = $$row{"summary"};
$CURRENT{"crdt$_" . "amount"} = $$row{"amount"};
}
# Determine the subform type
if ( $CURRENT{"debtcount"} == 1
&& acctsubj_code($CURRENT{"debt0subj"}) eq ACCTSUBJ_CASH
&& !defined $CURRENT{"debt0summary"}) {
$CURRENT{"formsub"} = "income";
} elsif ( $CURRENT{"crdtcount"} == 1
&& acctsubj_code($CURRENT{"crdt0subj"}) eq ACCTSUBJ_CASH
&& !defined $CURRENT{"crdt0summary"}) {
$CURRENT{"formsub"} = "expense";
} else {
$CURRENT{"formsub"} = "trans";
}
# OK
return;
}
# import_selsubj: Import the selected subject into the retrieved form
sub import_selsubj($) {
my $FORM;
$FORM = $_[0];
# Sanity checks
return $FORM
if !defined $GET->param("selsn")
|| !check_sn_in ${$GET->param_fetch("selsn")}[0], "acctsubj"
|| !defined $FORM->param("caller_index");
$FORM->param($FORM->param("caller_index") . "subj", $GET->param("selsn"));
return $FORM;
}

343
htdocs/wov/magicat/bin/r703alog Executable file
View File

@@ -0,0 +1,343 @@
#! /usr/bin/perl -w
# Filename: r703alog
# Description: Perl script to download r703a log files
# Author: imacat <imacat@mail.imacat.idv.tw>
# Date: 2000-12-21
# Copyright: (c) 2000-2007 imacat
use 5.006;
use strict;
use warnings;
use Compress::Zlib qw(gzopen);
use Fcntl qw(:flock :seek);
use File::Basename qw(basename);
use File::Temp qw(tempfile);
use Getopt::Long qw(GetOptions);
use IO::Handle qw(autoflush);
use IPC::Open3 qw(open3);
use Net::FTP qw();
use Socket qw();
# Prototype declaration
sub main();
sub parse_args();
sub is_member($@);
sub format_number($);
sub xfread($);
use vars qw($THIS_FILE $VERSION $VERBOSE);
$THIS_FILE = basename($0);
$VERSION = "2.03";
$VERBOSE = 1;
use vars qw($R_HOST $R_ID $R_PASSWD $R_DIR $L_DIR $FILELIST %DNS @RESLOG @ARCLOG);
$R_HOST = "r703a.chem.nthu.edu.tw";
$R_ID = "wov";
$R_PASSWD = undef;
$R_DIR = "/srv/www/logs";
$L_DIR = "/var/log/apache/wov/r703a";
$FILELIST = "$L_DIR/filelist.txt";
%DNS = qw();
@RESLOG = qw(/usr/sbin/reslog.pl --stdout);
@ARCLOG = qw(/usr/sbin/arclog.pl --keep=all --override=append --sort - /var/log/apache/wov/r703a/access_log);
use vars qw($VERMSG $SHORTHELP $HELPMSG);
$VERMSG = "$THIS_FILE v$VERSION by imacat <imacat\@mail.imacat.idv.tw>";
$SHORTHELP = "Try `$THIS_FILE --help' for more information.";
$HELPMSG = << "EOT";
Usage: $THIS_FILE [options]
Download and archive the r703a apache access log files.
-d,--debug Display debug messages. Multiple --debug to debug more.
-q,--quiet Disable debug messages. An opposite that cancels the
effect of --debug.
-h,--help Display this help.
-v,--version Display version number.
EOT
main;
exit 0;
# main: Main program
sub main() {
local ($_, %_);
my ($FTP, @downloaded, @files, $t0, $t);
my ($WORKING, $FH);
my ($file, $gz, $bytes);
my ($fc_total, $fc_acc, $fc_new);
my ($rc_total, $rc_valid, $rc_file_total, $rc_file_valid);
my ($errline, @errmsgs);
# Parse the arguments
parse_args;
# No longer a working script
print "Mission completed long time ago. Program stopped to avoid further problems.\n";
return;
# Get the downloaded files list
print STDERR "Fetching the downloaded list... " if $VERBOSE >= 2;
@downloaded = xfread $FILELIST;
@downloaded = grep /\S/, @downloaded;
@downloaded = grep !/^#/, @downloaded;
chomp foreach @downloaded;
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR "" . format_number(scalar @downloaded) . " downloaded files recorded in the downloaded list.\n" if $VERBOSE >= 1;
# Get the files list
print STDERR "Connecting to $R_HOST... " if $VERBOSE >= 2;
$FTP = new Net::FTP($R_HOST) or die "$THIS_FILE: Failed FTP connection: $@";
$FTP->login($R_ID, $R_PASSWD) or die "$THIS_FILE: Failed login: " . $FTP->code . " " . $FTP->message;
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR "Fetching the files list... " if $VERBOSE >= 2;
$FTP->cwd($R_DIR) or die "$THIS_FILE: Failed cwd $R_DIR: " . $FTP->code . " " . $FTP->message;
(@files = $FTP->ls()) or die "$THIS_FILE: Failed ls: " . $FTP->code . " " . $FTP->message;
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR "Filtering new access logs... " if $VERBOSE >= 2;
$fc_total = format_number(scalar @files);
@files = grep /^httpd-log\.[A-Z][a-z]{2}\d{4}\.gz$/, @files;
$fc_acc = format_number(scalar @files);
@files = grep !is_member($_, @downloaded), @files;
$fc_new = format_number(scalar @files);
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR "$fc_new new files found in $fc_acc access logs in $fc_total files.\n" if $VERBOSE >= 1;
if ($fc_new == 0) {
print STDERR "No new files found. Program exists\n" if $VERBOSE >= 1;
# Close the connection
print STDERR "Closing the FTP connection... " if $VERBOSE >= 2;
$FTP->quit or die "$THIS_FILE: ftp close: " . $FTP->code . " " . $FTP->message;
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR "Done. " . format_number($fc_new) . " files processed, " . format_number(time - $^T) . " seconds elapsed\n" if $VERBOSE >= 1;
return;
}
# Download the files
print STDERR "Now we will download the new files\n" if $VERBOSE >= 2;
$t0 = time;
foreach (@files) {
print STDERR "Downloading $_... " if $VERBOSE >= 1;
$t = time;
$FTP->get($_, "$L_DIR/$_") or die "$THIS_FILE: Failed get $L_DIR/$_: " . $FTP->code . " " . $FTP->message;
print STDERR "done, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
}
print STDERR "Downloading finished, " . format_number(scalar @files) . " new files downloaded, " . format_number(time - $t0) . " seconds elapsed\n" if $VERBOSE >= 2;
# Close the connection
print STDERR "Closing the FTP connection... " if $VERBOSE >= 2;
$FTP->quit or die "$THIS_FILE: ftp close: " . $FTP->code . " " . $FTP->message;
print STDERR "done\n" if $VERBOSE >= 2;
# Create the temporary working file
print STDERR "Creating temporary working file... " if $VERBOSE >= 2;
($WORKING = tempfile) or die "$THIS_FILE: $!";
print STDERR "done\n" if $VERBOSE >= 2;
# Copy the needed records into temporary working file
print STDERR "Now we will copy records to the temporary working file\n" if $VERBOSE >= 2;
($rc_total, $rc_valid) = (0, 0);
foreach $file (@files) {
# Open the file
print STDERR "Opening $file... " if $VERBOSE >= 2;
$gz = gzopen("$L_DIR/$file", "rb")
or die "$THIS_FILE: $!";
print STDERR "done\n" if $VERBOSE >= 2;
# Copy to the temporary working file
print STDERR "Copying records... " if $VERBOSE >= 2;
($rc_file_total, $rc_file_valid) = (0, 0);
while (($bytes = $gz->gzreadline($_)) != 0) {
die "$THIS_FILE: " . $gz->gzerror() if $bytes == -1;
$rc_file_total++;
next unless / \/(~|%7E)wov/;
print $WORKING $_;
$rc_file_valid++;
}
print STDERR "done\n" if $VERBOSE >= 2;
print "" . format_number($rc_file_valid) . " valid records copied in " . format_number($rc_file_total) . " found records.\n" if $VERBOSE >= 2;
$rc_total += $rc_file_total;
$rc_valid += $rc_file_valid;
# Close the source file
print STDERR "Closing $file... " if $VERBOSE >= 2;
$gz->gzclose() && die "$THIS_FILE: " . $gz->gzerror();
print STDERR "done\n" if $VERBOSE >= 2;
# Deleting the source file
print STDERR "Deleting $file... " if $VERBOSE >= 2;
unlink "$L_DIR/$file" or die "$THIS_FILE: $L_DIR/$file: $!";
print STDERR "done\n" if $VERBOSE >= 2;
}
print STDERR "Copying finished\n" if $VERBOSE >= 2;
print STDERR "Totally " . format_number($rc_valid) . " valid records copied in " . format_number($rc_total) . " found records.\n" if $VERBOSE >= 1;
# Resolve the records
print STDERR "Now we will resolve the records\n" if $VERBOSE >= 1;
$t = time;
if ($VERBOSE >= 2) {
open3(\*DATA_W, \*DATA_R, \*DATA_E, @RESLOG, "--debug")
or die "$THIS_FILE: $!";
} else {
open3(\*DATA_W, \*DATA_R, \*DATA_E, @RESLOG, "--quiet")
or die "$THIS_FILE: $!";
}
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
print DATA_W $_ while defined($_ = <$WORKING>);
close DATA_W or die "$THIS_FILE: $!";
if ($VERBOSE >= 2) {
$errline = "";
while (defined($_ = getc DATA_E)) {
print STDERR $_ if $VERBOSE >= 2;
$errline =~ s/^[^\n]*\n$//;
$errline .= $_;
if ($errline eq "Printing to STDOUT... ") {
seek $WORKING, 0, SEEK_SET
or die "$THIS_FILE: $!";
truncate $WORKING, 0 or die "$THIS_FILE: $!";
print $WORKING $_ while defined($_ = <DATA_R>);
}
}
} else {
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
truncate $WORKING, 0 or die "$THIS_FILE: $!";
print $WORKING $_ while defined($_ = <DATA_R>);
}
close DATA_E or die "$THIS_FILE: $!";
close DATA_R or die "$THIS_FILE: $!";
wait;
die "$THIS_FILE: Failed reslog.pl with error code $?" if $? != 0;
print STDERR "Resolving finished, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
# Archive the records
print STDERR "Now we will archive the records\n" if $VERBOSE >= 1;
$t = time;
if ($VERBOSE >= 2) {
open3(\*DATA_W, \*DATA_R, \*DATA_E, @ARCLOG)
or die "$THIS_FILE: $!";
} else {
open3(\*DATA_W, \*DATA_R, \*DATA_E, @ARCLOG, "--quiet")
or die "$THIS_FILE: $!";
}
seek $WORKING, 0, SEEK_SET or die "$THIS_FILE: $!";
print DATA_W $_ while defined($_ = <$WORKING>);
close DATA_W or die "$THIS_FILE: $!";
while (defined($_ = getc DATA_E)) {
print STDERR $_ if $VERBOSE >= 2;
}
close DATA_R or die "$THIS_FILE: $!";
close DATA_E or die "$THIS_FILE: $!";
wait;
die "$THIS_FILE: Failed arclog.pl with error code $?" if $? != 0;
print STDERR "Archiving finished, " . format_number(time - $t) . " seconds elapsed\n" if $VERBOSE >= 1;
# Close the temporary working file
print STDERR "Closing temporary working file... " if $VERBOSE >= 2;
close $WORKING or die "$THIS_FILE: $!";
print STDERR "done\n" if $VERBOSE >= 2;
# Write the new files to the downloaded list
print STDERR "Updating the downloaded list... " if $VERBOSE >= 2;
open $FH, ">>$FILELIST" or die "$THIS_FILE: $FILELIST: $!";
flock $FH, LOCK_EX or die "$THIS_FILE: $FILELIST: $!";
print $FH join "", map "$_\n", @files;
flock $FH, LOCK_UN or die "$THIS_FILE: $FILELIST: $!";
close $FH or die "$THIS_FILE: $FILELIST: $!";
print STDERR "done\n" if $VERBOSE >= 2;
print STDERR format_number(scalar @files) . " files processed\n"
if $VERBOSE > 0;
print STDERR "Done. " . (time - $^T) . " seconds elapsed.\n"
if $VERBOSE > 0;
return;
}
# parse_args: Parse the arguments
sub parse_args() {
local ($_, %_);
# Get the arguments
eval {
local $SIG{"__WARN__"} = sub { die $_[0]; };
Getopt::Long::Configure(qw(no_auto_abbrev bundling));
GetOptions( "debug|d+"=>\$VERBOSE,
"quiet|q"=>sub { $VERBOSE-- if $VERBOSE > 0; },
"help|h"=>sub { print $HELPMSG; exit 0; },
"version|v"=>sub { print "$VERMSG\n"; exit 0; });
};
die "$THIS_FILE: $@$SHORTHELP\n" if $@ ne "";
$| = 1 if $VERBOSE > 0;
# Check the arguments
# We have no arguments
die "$THIS_FILE: Too many arguments: $ARGV[0]\n$SHORTHELP\n"
if @ARGV > 0;
return;
}
# is_member: If a variable is a member of an array
sub is_member($@) {
local ($_, %_);
my ($v, @a);
($v, @a) = @_;
return 1 if grep ($_ eq $v, @a) > 0;
return 0;
}
# format_number: Format the number every 3 digit
sub format_number($) {
local ($_, %_);
$_ = $_[0];
# Group every 3 digit
$_ = $1 . "," . $2 . $3 while /^([^\.]*\d)(\d\d\d)(.*)$/;
return $_;
}
# xfread: Read from a file
sub xfread($) {
local ($_, %_);
my ($FH, $file);
$file = $_[0];
# Return as lines
if (wantarray) {
open $FH, $file or die "$THIS_FILE: $file: $!";
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
@_ = <$FH>;
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
close $FH or die "$THIS_FILE: $file: $!";
return @_;
# A scalar file content
} else {
# Regular files
if (-f $file) {
my $size;
@_ = stat $file or die "$THIS_FILE: $file: $!";
$size = $_[7];
return "" if $size == 0;
open $FH, $file or die "$THIS_FILE: $file: $!";
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
read $FH, $_, $size or die "$THIS_FILE: $file: $!";
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
close $FH or die "$THIS_FILE: $file: $!";
return $_;
# Special files
} else {
open $FH, $file or die "$THIS_FILE: $file: $!";
flock $FH, LOCK_SH or die "$THIS_FILE: $file: $!";
$_ = join "", <$FH>;
flock $FH, LOCK_UN or die "$THIS_FILE: $file: $!";
close $FH or die "$THIS_FILE: $file: $!";
return $_;
}
}
}
__END__

View File

@@ -0,0 +1,51 @@
#! /usr/bin/perl -w
# Woman's Voice
# actlog.cgi: The activity log viewer.
# Copyright (c) 2005-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2005-05-10
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
initenv(-restricted => 1,
-allowed => [qw(GET HEAD)],
-lastmod => 0,
-lmfiles => [$ACTLOG],
-page_param => {"keywords" => N_("activity, logs")});
main;
exit 0;
sub main() {
local ($_, %_);
my $LIST;
# List handler handles its own error
$LIST = new Selima::List::ActLog;
html_header $LIST->{"title"};
html_errmsg retrieve_status;
$LIST->html;
html_footer;
return;
}

View File

@@ -0,0 +1,236 @@
#! /usr/bin/perl -w
# Woman's Voice
# groupmem.cgi: The group-to-group membership administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selgrp($);
sub import_selmember($);
initenv(-restricted => 1,
-this_table => "groupmem",
-dbi_lock => {"groupmem" => LOCK_EX,
"groups" => LOCK_SH,
"groups AS grpmembers" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("group membership")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::GroupMem($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::GroupMem(curform);
$checker->redir(qw(selgrp delgrp selmember delmember));
$error = $checker->check(qw(grp member));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::GroupMem(curform);
$checker->redir(qw(del selgrp delgrp selmember delmember));
$error = $checker->check(qw(grp member));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::GroupMem(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::GroupMem($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::GroupMem;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the membership record."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This membership record does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selgrp: Import the selected group into the retrieved form
sub import_selgrp($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("grp", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
return;
}
# import_selmember: Import the selected member into the retrieved form
sub import_selmember($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("member", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups AS grpmembers";
return $FORM;
}

View File

@@ -0,0 +1,357 @@
#! /usr/bin/perl -w
# Woman's Voice
# groups.cgi: The account group administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selsubuser($);
sub import_selsubgroup($);
sub import_selsupgroup($);
initenv(-restricted => 1,
-this_table => "groups",
-dbi_lock => {"groups" => LOCK_EX,
"usermem" => LOCK_EX,
"groupmem" => LOCK_EX,
"users" => LOCK_SH,
"users AS members" => LOCK_SH,
"groups AS members" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("groups")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::Group($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my ($error, $FORM, $sn);
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth if !is_su && $sn == su_group_sn;
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error, $FORM, $sn);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::Group(curform);
$checker->redir(qw(selsubuser selsubgroup selsupgroup));
$error = $checker->check(qw(id dsc subuser subgroup supgroup));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::Group(curform);
$checker->redir(qw(del selsubuser selsubgroup selsupgroup));
$error = $checker->check(qw(id dsc subuser subgroup supgroup));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth if !is_su && $sn == su_group_sn;
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::Group(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::Group($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::Groups;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row, $title);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the group."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This group does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# Obtain the user members list
$title = $DBH->strcat("users.id", "' ('", "users.name", "')'");
$sql = "SELECT users.sn AS sn,"
. " $title AS title"
. " FROM usermem"
. " INNER JOIN users ON usermem.member=users.sn"
. " WHERE usermem.grp=$sn"
. " ORDER BY users.id;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"subusercount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"subusercount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"subuser$_"} = 1;
$CURRENT{"subuser$_" . "sn"} = $$row{"sn"};
$CURRENT{"subuser$_" . "title"} = $$row{"title"};
}
# Obtain the group members list
$sql = "SELECT groups.sn AS sn,"
. " groups.dsc AS title FROM groupmem"
. " INNER JOIN groups ON groupmem.member=groups.sn"
. " WHERE groupmem.grp=$sn"
. " ORDER BY groups.id;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"subgroupcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"subgroupcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"subgroup$_"} = 1;
$CURRENT{"subgroup$_" . "sn"} = $$row{"sn"};
$CURRENT{"subgroup$_" . "title"} = $$row{"title"};
}
# Obtain the belonging groups list
$sql = "SELECT groups.sn AS sn,"
. " groups.dsc AS title FROM groupmem"
. " INNER JOIN groups ON groupmem.grp=groups.sn"
. " WHERE groupmem.member=$sn"
. " ORDER BY groups.id;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"supgroupcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"supgroupcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"supgroup$_"} = 1;
$CURRENT{"supgroup$_" . "sn"} = $$row{"sn"};
$CURRENT{"supgroup$_" . "title"} = $$row{"title"};
}
# OK
return;
}
# import_selsubuser: Import the selected user into the retrieved form
sub import_selsubuser($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
# Sanity checks
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users AS members") {
# Get the current member list
%_ = map { $FORM->param($_) => 1 } grep /^subuser\d+sn$/, $FORM->param;
$_{$GET->param("selsn")} = 1;
@_ = sort { userid $a cmp userid $b } keys %_;
# Get the checked member list
%_ = map { $FORM->param($_ . "sn") => 1 }
grep /^subuser\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
$_{$GET->param("selsn")} = 1;
# Remove the old values
$FORM->delete(grep /^subuser\d+/, $FORM->param);
# Add the current values
for ($_ = 0; $_ < @_; $_++) {
$FORM->param("subuser$_" . "sn", $_[$_]);
$FORM->param("subuser$_", 1) if exists $_{$_[$_]};
}
}
return;
}
# import_selsubgroup: Import the selected user into the retrieved form
sub import_selsubgroup($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
# Sanity checks
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups AS members") {
# Get the current member list
%_ = map { $FORM->param($_) => 1 } grep /^subgroup\d+sn$/, $FORM->param;
$_{$GET->param("selsn")} = 1;
@_ = sort { groupid $a cmp groupid $b } keys %_;
# Get the checked member list
%_ = map { $FORM->param($_ . "sn") => 1 }
grep /^subgroup\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
$_{$GET->param("selsn")} = 1;
# Remove the old values
$FORM->delete(grep /^subgroup\d+/, $FORM->param);
# Add the current values
for ($_ = 0; $_ < @_; $_++) {
$FORM->param("subgroup$_" . "sn", $_[$_]);
$FORM->param("subgroup$_", 1) if exists $_{$_[$_]};
}
}
return;
}
# import_selsupgroup: Import the selected user into the retrieved form
sub import_selsupgroup($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
# Sanity checks
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups") {
# Get the current member list
%_ = map { $FORM->param($_) => 1 } grep /^supgroup\d+sn$/, $FORM->param;
$_{$GET->param("selsn")} = 1;
@_ = sort { groupid $a cmp groupid $b } keys %_;
# Get the checked member list
%_ = map { $FORM->param($_ . "sn") => 1 }
grep /^supgroup\d+$/ && defined $FORM->param($_ . "sn"), $FORM->param;
$_{$GET->param("selsn")} = 1;
# Remove the old values
$FORM->delete(grep /^supgroup\d+/, $FORM->param);
# Add the current values
for ($_ = 0; $_ < @_; $_++) {
$FORM->param("supgroup$_" . "sn", $_[$_]);
$FORM->param("supgroup$_", 1) if exists $_{$_[$_]};
}
}
return;
}

View File

@@ -0,0 +1,211 @@
#! /usr/bin/perl -w
# Woman's Voice
# guestbook.cgi: The guestbook administration.
# Copyright (c) 2003-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2003-05-11
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
initenv(-restricted => 1,
-this_table => "guestbook",
-dbi_lock => {"guestbook" => LOCK_EX},
-lastmod => 1,
-page_param => {"keywords" => N_("guestbook")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::Guestbook($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::wov::Checker::Guestbook(curform);
$error = $checker->check(qw(name identity location
email url message));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::wov::Checker::Guestbook(curform);
$checker->redir(qw(del));
$error = $checker->check(qw(name identity location
email url message));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::wov::Checker::Guestbook(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::wov::Form::Guestbook($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::wov::List::Guestbook;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the message."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This message does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}

View File

@@ -0,0 +1,297 @@
#! /usr/bin/perl -w
# Woman's Voice
# linkcat.cgi: The related-link category administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-02
use 5.008;
use utf8;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selparent($);
initenv(-restricted => 1,
-this_table => "linkcat",
-dbi_lock => {"linkcat" => LOCK_EX,
"links" => LOCK_SH,
"linkcatz" => LOCK_SH},
-lastmod => 0,
-page_param => {"keywords" => N_("link categories")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::wov::Processor::LinkCat($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
return {"msg"=>N_("This category has [numerate,_1,a subcategory,subcategories]. It cannot be deleted. To delete the category, [numerate,_1,its subcategory,all of its subcategories] must first be deleted."),
"margs"=>[$CURRENT{"scatcount"}],
"isform"=>0}
if $CURRENT{"scatcount"} > 0;
return {"msg"=>N_("This category has [numerate,_1,a link,links]. It cannot be deleted. To delete the category, [numerate,_1,its link,all of its links] must first be deleted."),
"margs"=>[$CURRENT{"linkcount"}],
"isform"=>0}
if $CURRENT{"linkcount"} > 0;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::LinkCat(curform);
$checker->redir(qw(selparent delparent));
$error = $checker->check(qw(parent id ord title title_en kw));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::LinkCat(curform);
$checker->redir(qw(del selparent delparent));
$error = $checker->check(qw(parent id ord title title_en kw));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::LinkCat(curform);
$checker->redir(qw(cancel));
return {"msg"=>N_("This category has [numerate,_1,a subcategory,subcategories]. It cannot be deleted. To delete the category, [numerate,_1,its subcategory,all of its subcategories] must first be deleted."),
"margs"=>[$CURRENT{"scatcount"}],
"isform"=>0}
if $CURRENT{"scatcount"} > 0;
return {"msg"=>N_("This category has [numerate,_1,a link,links]. It cannot be deleted. To delete the category, [numerate,_1,its link,all of its links] must first be deleted."),
"margs"=>[$CURRENT{"linkcount"}],
"isform"=>0}
if $CURRENT{"linkcount"} > 0;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::wov::Form::LinkCat($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::LinkCat;
$LIST->{"title"} = "管理女網牽手分類"
unless $LIST->{"is_called_form"};
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
my ($lang, $lndb, $lndbdef, $langfile, $title);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the category."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This category does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
$lang = getlang;
$lndb = getlang LN_DATABASE;
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
$langfile = getlang LN_FILENAME;
# Obtain the belonging subcategories list
@_ = qw();
push @_, "sn AS sn";
if (@ALL_LINGUAS > 1) {
$title = $lang eq $DEFAULT_LANG? "title_$lndb":
"COALESCE(title_$lndb, title_$lndbdef)";
push @_, "linkcat_fulltitle('$lang', parent, $title) AS title";
} else {
push @_, "linkcat_fulltitle(parent, title) AS title";
}
push @_, $DBH->strcat("'/links'", "linkcat_path(sn, id, parent)")
. " AS url";
$sql = "SELECT " . join(", ", @_) . " FROM linkcat"
. " WHERE linkcat_ischild($sn, sn)"
. " ORDER BY linkcat_fullord(parent, ord);\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"scatcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"scatcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"scat$_" . "sn"} = $$row{"sn"};
$CURRENT{"scat$_" . "title"} = $$row{"title"};
$CURRENT{"scat$_" . "url"} = $$row{"url"};
}
# Obtain the belonging links list
@_ = qw();
push @_, "links.sn AS sn";
push @_, "links.title AS title";
push @_, "url AS url";
$sql = "SELECT " . join(", ", @_) . " FROM links"
. " INNER JOIN linkcatz ON linkcatz.link=links.sn"
. " WHERE linkcatz.cat=$sn"
. " ORDER BY title;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"linkcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"linkcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"link$_" . "sn"} = $$row{"sn"};
$CURRENT{"link$_" . "title"} = $$row{"title"};
$CURRENT{"link$_" . "url"} = $$row{"url"};
}
# OK
return;
}
# import_selparent: Import the selected parent into the retrieved form
sub import_selparent($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "linkcat") {
$FORM->param("parent", $GET->param("selsn"));
$FORM->param("topmost", "false");
}
return;
}
no utf8;

View File

@@ -0,0 +1,241 @@
#! /usr/bin/perl -w
# Woman's Voice
# linkcatz.cgi: The related-link category membership administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-02
use 5.008;
use utf8;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selcat($);
sub import_sellink($);
initenv(-restricted => 1,
-this_table => "linkcatz",
-dbi_lock => {"linkcatz" => LOCK_EX,
"linkcat" => LOCK_SH,
"links" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("link categorization")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::LinkCatz($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::LinkCatz(curform);
$checker->redir(qw(selcat delcat sellink dellink));
$error = $checker->check(qw(cat link));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::LinkCatz(curform);
$checker->redir(qw(del selcat delcat sellink dellink));
$error = $checker->check(qw(cat link));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::LinkCatz(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::LinkCatz($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::LinkCatz;
$LIST->{"title"} = "管理女網牽手分類表"
unless $LIST->{"is_called_form"};
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the categorization record."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This categorization record does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selcat: Import the selected category into the retrieved form
sub import_selcat($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("cat", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "linkcat";
return;
}
# import_sellink: Import the selected link into the retrieved form
sub import_sellink($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("link", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "links";
return $FORM;
}
no utf8;

View File

@@ -0,0 +1,245 @@
#! /usr/bin/perl -w
# Woman's Voice
# links.cgi: The related-link administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-02
use 5.008;
use utf8;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
initenv(-restricted => 1,
-this_table => "links",
-dbi_lock => {"links" => LOCK_EX,
"linkcatz" => LOCK_EX,
"linkcat" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("related links")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::Link($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::Link(curform);
$error = $checker->check(qw(title title_2ln url icon
email addr tel fax dsc cats));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::Link(curform);
$checker->redir(qw(del));
$error = $checker->check(qw(title title_2ln url icon
email addr tel fax dsc cats));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::Link(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::Link($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::Links;
$LIST->{"title"} = "管理女網牽手"
unless $LIST->{"is_called_form"};
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
my ($lang, $lndb, $lndbdef, $title);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the related link."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This related link does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
$lang = getlang;
$lndb = getlang LN_DATABASE;
$lndbdef = ln $DEFAULT_LANG, LN_DATABASE;
# Obtain the parent categories list
@_ = qw();
push @_, "linkcat.sn AS sn";
if (@ALL_LINGUAS > 1) {
$title = $lang eq $DEFAULT_LANG? "linkcat.title_$lndb":
"COALESCE(linkcat.title_$lndb, linkcat.title_$lndbdef)";
push @_, "linkcat_fulltitle('$lang', linkcat.parent, $title) AS title";
} else {
push @_, "linkcat_fulltitle(linkcat.parent, linkcat.title) AS title";
}
$sql = "SELECT " . join(", ", @_) . " FROM linkcat"
. " INNER JOIN linkcatz ON linkcatz.cat=linkcat.sn"
. " WHERE linkcatz.link=$sn"
. " ORDER BY linkcat_fullord(linkcat.parent, linkcat.ord);\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"catcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"catcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"cat$_"} = $$row{"sn"};
$CURRENT{"cat$_" . "title"} = $$row{"title"};
}
# OK
return;
}
no utf8;

View File

@@ -0,0 +1,158 @@
#! /usr/bin/perl -w
# Woman's Voice
# logout.cgi: The log-out script.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub html_logoutform();
sub html_relogin();
initenv(-dbi => DBI_NONE,
-lastmod => 1,
-page_param => {"keywords" => N_("log out")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::LogOut($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $status;
# There is a result to display
$status = retrieve_status;
# Successfully logged out
if ( defined $status
&& exists $$status{"status"}
&& $$status{"status"} eq "success") {
# Nothing to check
return;
}
# Check if this user has logged in
unauth unless defined get_login_sn;
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
# Check if this user has logged in
unauth unless defined get_login_sn;
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my $status;
$status = $_[0];
# Not logged out yet
if (defined get_login_sn) {
html_header __("Log Out");
html_errmsg $status;
html_logoutform;
html_footer;
# Logged out
} else {
html_header __("Log Out");
html_errmsg $status;
html_relogin;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# html_logoutform: Display a form to log out
sub html_logoutform() {
local ($_, %_);
my ($msg, $submit);
$msg = h(__("Are you sure you want to log out?"));
$submit = h(__("Log out"));
print << "EOT";
<form action="$REQUEST_FILE" method="post">
<div>
<p>$msg</p>
<input type="submit" value="$submit" />
</div>
</form>
EOT
return;
}
# html_relogin: Display links to log in again
sub html_relogin() {
local ($_, %_);
$_ = h(__("Log in again."));
print << "EOT";
<p><a href="/magicat/cgi-bin/login.cgi">$_</a></p>
EOT
return;
}

View File

@@ -0,0 +1,271 @@
#! /usr/bin/perl -w
# Woman's Voice
# newslets.cgi: The newsletter administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-17
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
use Date::Parse qw(str2time);
initenv(-restricted => 1,
-this_table => "newslets",
-dbi_lock => {"newslets" => LOCK_EX,
"nlarts" => LOCK_EX},
-lastmod => 1,
-page_param => {"keywords" => N_("newsletters")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::wov::Processor::Newslet($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to preview a submitted item
} elsif ($_ eq "preview") {
my ($sql, $sth, $count, $row, @allno);
# Check at fetch_preview()
$error = fetch_preview;
return $error if defined $error;
$PREVIEW{"path"} = sprintf "/newsletters/wov%04d.html", $PREVIEW{"no"};
$PREVIEW{"date"} = str2time $PREVIEW{"date"};
$PREVIEW{"title"} = newslet_textno($PREVIEW{"no"}) . " " . $PREVIEW{"title"};
# Obtain all the pages
@_ = qw();
push @_, "sn!=" . $PREVIEW{"sn"} if exists $PREVIEW{"sn"};
push @_, "NOT hid";
$sql = "SELECT no FROM newslets"
. " WHERE " . join(" AND ", @_)
. " ORDER BY no;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$count = $sth->rows;
for (my $i = 0, @allno = qw(); $i < $count; $i++) {
push @allno, ${$sth->fetch}[0];
}
undef $sth;
# Insert this page
for ($_ = 0; $_ < @allno; $_++) {
last if $PREVIEW{"no"} < $allno[$_];
}
@allno = (
@allno[0..$_-1],
$PREVIEW{"no"},
@allno[$_..$#allno]);
$PREVIEW{"allno"} = [@allno];
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::wov::Checker::Newslet(curform);
$error = $checker->check(qw(no date title cred_t cred_h kw arts));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::wov::Checker::Newslet(curform);
$checker->redir(qw(del));
$error = $checker->check(qw(no date title cred_t cred_h kw arts));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::wov::Checker::Newslet(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
# A form to preview a submitted item
if (form_type eq "preview") {
html_preview;
} else {
$FORM = new Selima::wov::Form::Newslet($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
}
# List the available items
} else {
$LIST = new Selima::wov::List::Newslets;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the newsletter."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This newsletter does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# Obtain the date
$CURRENT{"date"} = fmtdate $CURRENT{"date"};
# Obtain the articles list
$sql = "SELECT * FROM nlarts WHERE newslet=$sn ORDER BY ord;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"artcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"artcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"art$_"} = 1;
$CURRENT{"art$_" . "sn"} = $$row{"sn"};
$CURRENT{"art$_" . "ord"} = $$row{"ord"};
$CURRENT{"art$_" . "title"} = $$row{"title"};
$CURRENT{"art$_" . "author"} = $$row{"author"};
$CURRENT{"art$_" . "body_t"} = $$row{"body_t"};
$CURRENT{"art$_" . "body_h"} = $$row{"body_h"};
$CURRENT{"art$_" . "hid"} = $$row{"hid"};
}
# OK
return;
}

View File

@@ -0,0 +1,223 @@
#! /usr/bin/perl -w
# Woman's Voice
# nlarts.cgi: The newsletter article administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-24
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selnewslet($);
initenv(-restricted => 1,
-this_table => "nlarts",
-dbi_lock => {"nlarts" => LOCK_EX,
"newslets" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("newsletter articles")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::wov::Processor::NLArt($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::wov::Checker::NLArt(curform);
$checker->redir(qw(selnewslet delnewslet));
$error = $checker->check(qw(newslet ord title author body_t body_h));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::wov::Checker::NLArt(curform);
$checker->redir(qw(del selnewslet delnewslet));
$error = $checker->check(qw(newslet ord title author body_t body_h));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::wov::Checker::NLArt(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::wov::Form::NLArt($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::wov::List::NLArts;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the article."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This article does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selnewslet: Import the selected newsletter into the retrieved form
sub import_selnewslet($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("newslet", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "newslets";
return;
}

View File

@@ -0,0 +1,221 @@
#! /usr/bin/perl -w
# Woman's Voice
# pages.cgi: The web page administration.
# Copyright (c) 2006-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2006-04-03
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
initenv(-restricted => 1,
-this_table => "pages",
-dbi_lock => {"pages" => LOCK_EX},
-lastmod => 1,
-page_param => {"keywords" => N_("pages")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::wov::Processor::Page($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to preview a submitted item
} elsif ($_ eq "preview") {
# Check at fetch_preview()
$error = fetch_preview;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::Page(curform);
$error = $checker->check(qw(path ord title title_en body kw));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::Page(curform);
$checker->redir(qw(del));
$error = $checker->check(qw(path ord title title_en body kw));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::Page(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
# A form to preview a submitted item
if (form_type eq "preview") {
html_preview;
} else {
$FORM = new Selima::wov::Form::Page($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
}
# List the available items
} else {
$LIST = new Selima::List::Pages;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the page."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This page does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}

View File

@@ -0,0 +1,105 @@
#! /usr/bin/perl -w
# Woman's Voice
# rebuild.cgi: The web page rebuilder.
# Copyright (c) 2006-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2006-04-04
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
initenv(-restricted => 1,
-lastmod => 1,
-page_param => {"keywords" => N_("rebuild pages")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::Rebuild($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
# Nothing to check here
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
# Run the checker
$checker = new Selima::Checker::Rebuild(curform);
$error = $checker->check(qw(type));
return $error if defined $error;
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $FORM);
$status = $_[0];
$FORM = new Selima::Form::Rebuild($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
return;
}

View File

@@ -0,0 +1,223 @@
#! /usr/bin/perl -w
# Woman's Voice
# scptpriv.cgi: The script privilege administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selgrp($);
initenv(-restricted => 1,
-this_table => "scptpriv",
-dbi_lock => {"scptpriv" => LOCK_EX,
"groups" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("script privilege")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::ScptPriv($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::ScptPriv(curform);
$checker->redir(qw(selgrp delgrp));
$error = $checker->check(qw(script grp));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::ScptPriv(curform);
$checker->redir(qw(del selgrp delgrp));
$error = $checker->check(qw(script grp));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::ScptPriv(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::ScptPriv($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::ScptPriv;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the script privilege record."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This script privilege record does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selgrp: Import the selected group into the retrieved form
sub import_selgrp($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("grp", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
return;
}

View File

@@ -0,0 +1,40 @@
#! /usr/bin/perl -w
# Woman's Voice
# test.cgi: The test script.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-11-02
use 5.008;
use utf8;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $r = shift;
my $d = new Selima::Destroy;
# Prototype declaration
use Time::HiRes qw();
initenv;
$CONTENT_TYPE = "text/plain";
printf "[%s] Done. %0.10f seconds elapsed.\n",
fmttime, Time::HiRes::time-$T_START;
exit 0;
no utf8;

View File

@@ -0,0 +1,236 @@
#! /usr/bin/perl -w
# Woman's Voice
# usermem.cgi: The user-to-group membership administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selgrp($);
sub import_selmember($);
initenv(-restricted => 1,
-this_table => "usermem",
-dbi_lock => {"usermem" => LOCK_EX,
"groups" => LOCK_SH,
"users AS usrmembers" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("user membership")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::UserMem($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::UserMem(curform);
$checker->redir(qw(selgrp delgrp selmember delmember));
$error = $checker->check(qw(grp member));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::UserMem(curform);
$checker->redir(qw(del selgrp delgrp selmember delmember));
$error = $checker->check(qw(grp member));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::UserMem(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::UserMem($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::UserMem;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the membership record."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This membership record does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selgrp: Import the selected group into the retrieved form
sub import_selgrp($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("grp", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "groups";
return;
}
# import_selmember: Import the selected user into the retrieved form
sub import_selmember($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
$FORM->param("member", $GET->param("selsn"))
if defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users AS usrmembers";
return $FORM;
}

View File

@@ -0,0 +1,225 @@
#! /usr/bin/perl -w
# Woman's Voice
# userpref.cgi: The user preference administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
sub import_selusr($);
initenv(-restricted => 1,
-this_table => "userpref",
-dbi_lock => {"userpref" => LOCK_EX,
"users" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("user preference")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::UserPref($POST);
$success = $processor->process;
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my $error;
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Nothing to check on a new form
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
}
# List handler handles its own error
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Run the checker
$checker = new Selima::Checker::UserPref(curform);
$checker->redir(qw(selusr delusr));
$error = $checker->check(qw(usr domain name value));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::UserPref(curform);
$checker->redir(qw(del selusr delusr));
$error = $checker->check(qw(usr domain name value));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::UserPref(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::UserPref($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::UserPref;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the user preference."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This user preference does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# OK
return;
}
# import_selusr: Import the selected user into the retrieved form
sub import_selusr($) {
local ($_, %_);
my $FORM;
$FORM = $_[0];
if ( defined $GET->param("selsn")
&& check_sn_in ${$GET->param_fetch("selsn")}[0], "users") {
$FORM->param("usr", $GET->param("selsn"));
$FORM->param("everyone", "false");
}
return;
}

View File

@@ -0,0 +1,273 @@
#! /usr/bin/perl -w
# Woman's Voice
# users.cgi: The user account administration.
# Copyright (c) 2004-2021 imacat.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: imacat <imacat@mail.imacat.idv.tw>
# First written: 2004-10-16
use 5.008;
use strict;
use warnings;
use lib $ENV{"DOCUMENT_ROOT"} . qw(/magicat/lib/perl5);
use Selima::wov;
local $SIG{"__DIE__"} = \&http_500;
my $d = new Selima::Destroy;
# Prototype declaration
sub main();
sub check_get();
sub check_post();
sub html_page($);
sub fetch_curitem();
initenv(-this_table => "users",
-dbi_lock => {"users" => LOCK_EX,
"usermem" => LOCK_EX,
"userpref" => LOCK_EX,
"groupmem" => LOCK_SH,
"groups" => LOCK_SH},
-lastmod => 1,
-page_param => {"keywords" => N_("users")});
main;
exit 0;
sub main() {
local ($_, %_);
my ($error, $success, $processor);
# If the request is a GET query
if ($ENV{"REQUEST_METHOD"} ne "POST") {
$error = check_get;
# If an error occurs
if (defined $error) {
html_page $error;
# Display the page
} else {
html_page retrieve_status;
}
# If a form was POSTed from the client
} else {
$error = check_post;
# If an error occurs
if (defined $error) {
# Password not saved
$POST->delete("passwd", "passwd2");
error_redirect $error;
# Else, save the data
} else {
$processor = new Selima::Processor::User($POST);
$success = $processor->process;
# Password not saved
$POST->delete("passwd", "passwd2");
success_redirect $success;
}
}
return;
}
# check_get: Check the GET arguments
sub check_get() {
local ($_, %_);
my ($error, $FORM, $sn);
# A form is requested
if (is_form) {
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Check the privilege to manage this table
unauth if !is_script_permitted;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth unless defined get_login_sn;
unauth unless is_script_permitted || $sn == get_login_sn;
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth unless defined get_login_sn;
unauth unless is_script_permitted;
unauth if !is_su && (is_su $sn || $sn == get_login_sn);
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Not a valid form
} else {
# Check the privilege to manage this table
unauth unless is_script_permitted;
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# List the available items
} else {
# Check the privilege to manage this table
unauth unless is_script_permitted;
# List handler handles its own error
}
# OK
return;
}
# check_post: Check the POSTed form
sub check_post() {
local ($_, %_);
my ($checker, $error, $FORM, $sn);
$_ = form_type;
# A form to create a new item
if ($_ eq "new") {
# Check the privilege to manage this table
unauth unless is_script_permitted;
# Run the checker
$checker = new Selima::Checker::User(curform);
$error = $checker->check(qw(id passwd name supgroup));
return $error if defined $error;
# A form to edit a current item
} elsif ($_ eq "cur") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth unless defined get_login_sn;
unauth unless is_script_permitted || $sn == get_login_sn;
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;
# Run the checker
$checker = new Selima::Checker::User(curform);
$checker->redir(qw(del));
$error = $checker->check(qw(id passwd name supgroup));
return $error if defined $error;
# A form to delete a current item
} elsif ($_ eq "del") {
# Check the privilege to manage this table
$FORM = curform;
$sn = defined $FORM->param("sn")? $FORM->param("sn"): -1;
unauth unless defined get_login_sn;
unauth unless is_script_permitted;
unauth if !is_su && (is_su $sn || $sn == get_login_sn);
# Check at fetch_curitem()
$error = fetch_curitem;
return $error if defined $error;;
# Run the checker
$checker = new Selima::Checker::User(curform);
$checker->redir(qw(cancel));
# Not a valid form
} else {
# Check the privilege to manage this table
unauth unless is_script_permitted;
return {"msg"=>N_("Incorrect form: [_1]."),
"margs"=>[$_],
"isform"=>0};
}
# OK
return;
}
# html_page: Display the page
sub html_page($) {
local ($_, %_);
my ($status, $LIST, $FORM);
$status = $_[0];
# A form is requested
if (is_form $status) {
$FORM = new Selima::Form::User($status);
html_header $FORM->{"title"};
html_errmsg $status;
$FORM->html;
html_footer;
# List the available items
} else {
$LIST = new Selima::List::Users;
html_header $LIST->{"title"}, undef, $LIST->page_param;
html_errmsg $status;
$LIST->html;
html_footer;
}
return;
}
##################################
# Subroutines to manage the data #
##################################
# fetch_curitem: Fetch the current item
sub fetch_curitem() {
local ($_, %_);
my ($sn, $FORM, $sth, $sql, $row);
# Return if fetched before
return if scalar(keys %CURRENT) > 0;
# Obtain the current form
$FORM = curform;
# No item specified
return {"msg"=>N_("Please select the user."),
"isform"=>0}
if !defined $FORM->param("sn");
$sn = $FORM->param("sn");
# Find the record
%CURRENT = fetchrec $sn, $THIS_TABLE;
# If this record exist
return {"msg"=>N_("This user does not exist anymore. Please select another one."),
"isform"=>0}
if scalar(keys %CURRENT) == 0;
# Obtain the belonging groups list
$sql = "SELECT groups.sn AS sn,"
. " groups.dsc AS title FROM usermem"
. " INNER JOIN groups ON usermem.grp=groups.sn"
. " WHERE usermem.member=$sn"
. " AND groups.id!=" . $DBH->quote(SU_GROUP)
. " AND groups.id!=" . $DBH->quote(ADMIN_GROUP)
. " AND groups.id!=" . $DBH->quote(ALLUSERS_GROUP)
. " ORDER BY groups.id;\n";
$sth = $DBH->prepare($sql);
$sth->execute;
$CURRENT{"supgroupcount"} = $sth->rows;
for ($_ = 0; $_ < $CURRENT{"supgroupcount"}; $_++) {
$row = $sth->fetchrow_hashref;
$CURRENT{"supgroup$_"} = 1;
$CURRENT{"supgroup$_" . "sn"} = $$row{"sn"};
$CURRENT{"supgroup$_" . "title"} = $$row{"title"};
}
# Get the admin flag
$CURRENT{"admin"} = is_admin($sn);
$CURRENT{"su"} = is_su($sn);
# OK
return;
}

View File

@@ -0,0 +1 @@
167372

Some files were not shown because too many files have changed in this diff Show More