過去ログ NO.1134057928
□ アズミル [2005年12月03日13時40分]こんにちは。初めまして、アズミルと申します。 今まではACR WEB様のレンタルで電光!を愛用していたのですが、タグうちにも慣れてきたのでオリジナルの電光!にかえたいと思っているところです。
http://ec.uuhp.com/~azmil/cgi-bin/denkoh/denkoh.cgi?html ↑が設置URLです。きちんと表示され、投稿も出来たので、設置の上で問題はありません。
http://azmil.coln.biz/ ↑現在、上記URLのように、更新履歴として使っています。 履歴として日付を残したいので、投稿者の任意で、日付指定できるようにはならないかと思い、投稿させていただきました。よろしくお願いいたします。
□ NXer [2005年12月03日22時24分] はじめまして。NXerです。 レンタルにバイバイ、そして自前の電光!設置おめでとうございます。
>履歴として日付を残したい という意味がよくわかりません。というのは一覧/削除モードで 保存された日付をいつでも見ることができるからです。 -------------------------------------------------- 日付 名前 記事 ファイル -------------------------------------------------- 05/12/03 21:14 --- テスト投稿。 ------ ------------------------------------------------------- 自前ですから、data.cgiを適当にダウンロードして名前を 「12月投稿.cgi」などに変更して保存すれば、過去ログ代わりに 利用できます。おそらく、これがお求めの答えの一部かと 思います。
以下は当方の勝手な想像です。
>投稿者の任意で、日付指定できる 任意というと付けたいと思う日だけということでしょうか。 「日付指定」は、多分記事をこの日に書いたと本文に記すことでしょうか。
これが一覧の例です。記事の中に日付を入れてみました。 --------------------------------------------------------- 05/12/03 21:14 --- 日付を指定する改造です。 [05/12/03] --- --------------------------------------------------------
その場合に電光!では
日付を指定する改造です。 [05/12/03] 12/03 21:15
のようにさらに日付と時間がつきます。改造では、記事に含まれて いることから、それらの表示を非表示にします。
これが、電光!に表示した改造見本です。 ----------------------------------------- new-1:日付を指定する改造です。 [05/12/03] -----------------------------------------
------------------------- ( )行は元、269挿入 (267) $num = sprintf ("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec); 269 $date = sprintf ("%04d%02d%02d",$year+1900,$mon+1,$mday); --------------------------------日付と時間非表示 (479) for (i=0; i<10; i++) c[i] = b[i]; 480 c[0]=""; -------------------------------------------- (1013) else { 1014 #■ 日付をcomentの後に追加 by nxer 1015 $date=" [".substr($date,2,2)."/".substr($date,4,2)."/".substr($date,6)."]"; 1016 $in{'coment'}=$in{'coment'}.$date; (1017) $value = "$num\,$in{'name'}\,$in{'mail'}\,$in{'coment'}\,$in{'url'}\,$in{'pass'}\,$in{'filename'}\,$wid\,$hgt\,$in{'bgcol'}\,$in{'txcol'}\n"; ----------------------------------- 269行で日付を年は下二桁、月、日とします。 480行では、c[0]の値を空(くう)にすることで、日付時間を非表示にします。 1015行で形式を[05/12/03]に整形。 1016行で記事に上の日付を追加します。
ご質問の趣旨を誤解しているかもしれませんが、その時は大笑いです。 それでも、別の使い道があるかもしれませんので、投稿します。 上の改造では、他の機能を使った時不具合がでるかもしれません。 cgiにエラーは付き物ということで当方には責任無しでお願いします。
以上です。
□ アズミル [2005年12月04日06時35分]こんばんわ。アズミルです。 > レンタルにバイバイ、そして自前の電光!設置おめでとうございます。 ありがとうございます^^
分かりづらい説明でご迷惑おかけしてます。 「実際に書き込んだ日付と別の任意の日付を表示することはできますか?」 ・・・後から考えてみると、こう書けばよかったですね_| ̄|○
考えていただいた改造もありがたく使わせていただきます^^
□ NXer [2005年12月05日09時59分] >改造も とうれしい書き込みありがとうございました。この愚案は、一覧では日付が重なり 情報的には、余剰(redundancy)であると愚考していました(笑)。しかし、
>書き込んだ日付と別の任意の日付を表示 と明確にしていただき、ご要望の日付はとてもたいせつな情報であることに気 がつきました(m(_ _)m)。NXerです。 それは、電光!の記事の正確さです。もちろん、投稿者の善意に成り立つ わけですが、たとえば、信頼に基づく組合・同名(ギルド)があり、組合員が
1 ウェブサイトやページの更新した日 と それを知らせる 2 電光!へ新規投稿した日 とがことなることを読み手に伝えることです。
たとえば、サイトのゲームのテスト実施、設置日を12月1日としてその結果を 12月4日に報告するとします。いままでの電光!では、後の4日だけが有効 でしたから、実際は3日の時間のズレがあります。電光!の用途は商用、公用、私的 な利用と多様ですが、いずれの場合も、この情報の精度の向上はとても大切と 思います。追記で、モヤットとがスキットしました。 Many thanks to azmil!
依頼人の改造目的: 1>投稿者の任意 (日付の有無は、投稿者の選択の[意]思に[任]せる) 2>日付指定 (意思のある時、更新の日付を手入力して、保存、読み出し表示する)
改造の内容: (日付は20051204の8桁のデフォルト値、表示は年、下2桁) 1 更新日付入力を投稿フォームのURLの下に設置します。(適当な位置に移動可) 2 初期値(デフォルト値)は、上の改造のとおり、投稿日とします。 3 記事が日付を必要としない書き込みでは、初期値を削除できます。(例str[0]) 4 記事は投稿日の更新のお知らせなので、デフォルト値を使います。(str[1]) 5 投稿日以前の更新記事なので、デフォルト値の(年月)日を書き換えます。(str[2])
3で1>に対応、日付を本文の一部として、4と5で2>の依頼に対応しています。 細部は自由に変更してください。
改造結果です。当方の電光!のソースです。 ----------------------------------------------------------------------- str[0] = "20051204115801,ハイ、コンチハ。という挨拶なので日付は省略。デフォルト値削除してね。,nxer,a@a,略 str[1] = "20051204115334,更新日と新規投稿日が同じ。デフォルト値を使います。 [05/12/04],nexer,a@a,略 str[2] = "20051204115236,更新日の記録、手入力。デフォルト値を変更します。 [05/12/01],nexer,a@a略 ------------------------------------------------------
前述の改造を加えた電光!スクリプトにさらに更新日の入力と 日付のデフォルト値使用、不使用、変更の条件判断文の追加です。 -------------------------------------------------------nxer (795) print "<tr><td>URL</td><td><input type=text name=url size=$url_size value='$url'></td></tr>\n"; 797 #■ date_input: $date is default value 798 print "<tr><td>UPDATE</td><td><input type=text name=update size=$url_size value='$date'></td></tr>\n"; ---------------------------------------------- (1016) #■ 日付有りは1017整形処理なければ1021で空処理coment後に追加 1017 if ($in{'update'}){ 1018 $date=$in{'update'}; 1019 $date=" [".substr($date,2,2)."/".substr($date,4,2)."/".substr($date,6)."]"; 1020 } 1021 else {$date="";} (1022) $in{'coment'}=$in{'coment'}.$date; ------------------------------------------------------ スクリプトは、コピペできます。空白に全角が入るとperlのエラーになります から注意してください。($in{'update'})は、デフォルト値がありますから 何もしなければ、その値が入ります。バックスペースなどで消去したとき、"" (null、空)になり、カッコ内の値は偽となって1021でその処理をします。 タグ手入力の場合、if文は、{ }の対応に注意が必要です。コメント文は省略可。 ただ、後の変更など作業用には便利です。愚案を、手打ちでお手数ですが お試しください。
□ アズミル [2005年12月06日03時46分]こんばんわ。アズミルです。 新しい改造早速作っていただいてありがとうございます。 早速試してみたところ、
(1016) #■ 日付有りは1017整形処理なければ1021で空処理coment後に追加 1017 if ($in{'update'}){ 1018 $date=$in{'update'}; 1019 $date=" [".substr($date,2,2)."/".substr($date,4,2)."/".substr($date,6)."]"; 1020 } 1021 else {$date="";} (1022) $in{'coment'}=$in{'coment'}.$date;
の(1016)行目と(1022)行目の一文が本文内に見つからず、どこに追加すればいいのかわからずにいます。 そこで現在使用中の電光!のCGIをzip形式にてサーバーにアップしてみたので、見ていただけると助かります;; http://ec.uuhp.com/~azmil/denkoh.zip お手数おかけして本当に申し訳ありません。 とっても助かってます。
□ NXer [2005年12月06日17時39分] denkoh.zipをダウンロードしました。関係する行に番号を付けておきます。
------------------------------------azmil版。 (994) else { 995 #■ 日付をcomentの後に追加 by nxer 996 $date=" [".substr($date,2,2)."/".substr($date,4,2)."/".substr($date,6)."]"; 997 $in{'coment'}=$in{'coment'}.$date; 998 (999) $value = "$num\,$in{'name'}\,$in{'mail'}\,$in{'coment'}\,$in{'url'}\,$in{'pass'}\,$in{'filename'}\,$wid\,$hgt\,$in{'bgcol'}\,$in{'txcol'}\n"; --------------------------------------- 改訂版。994〜999の間に挿入です。 --------------------------------------- 元(994) else { (1016) #■日付有り1017整形処理1019なければ1021で空処理1022coment後に追加 1017 if ($in{'update'}){ 1018 $date=$in{'update'}; 1019 $date=" [".substr($date,2,2)."/".substr($date,4,2)."/".substr($date,6)."]"; 1020 } 1021 else {$date="";} (1022) $in{'coment'}=$in{'coment'}.$date; 元(999) $value = "$num\,$in{'name'}\,$in{'mail'}\,$in{'coment'}\,$in{'url'}\,$in{'pass'}\,$in{'filename'}\,$wid\,$hgt\,$in{'bgcol'}\,$in{'txcol'}\n"; ------------------------------------- 995に1016が相当します。コメント文は、その都度少し変えました。 996に1017の条件文が来ます。 997は1022で変更無しで使います。
以上です。 -------------------------------------p.s. 電光!の元版とはかなりずれていることに気がつきませんでした。 -----------電光!使用規定 by すえぽん 個人で使用する場合の改造についてはなんら問題有りませんが、 再配布についてはノーマルのスクリプトのみを許可しています。 ---------------------------------------------------------------- というすえぽんさんの規定を守っていますので、当方に許可されている 範囲の改造愚案を見ていただいています。しかし、規定の再配布の条件か ら、改造愚案も、全スクリプトではなくて、最小限度を当ラウンジに投稿 しています。 今回は、たまたま、(1013)else { 1014行付近の改造の改造となり、投稿後 変更の足取りが辿れなくなる(untraceable)ことを恐れていました。 ご迷惑をお掛けしました。当方の不注意でした。NXer(m(_ _)m)。
□ アズミル [2005年12月07日14時27分]こんにちは。アズミルです。 お返事ありがとうございます^^ 早速書き直してアップロードしてみましたが、動かないようですT_T 設置してみて、すぐ見たときは普通に動いていて、新規投稿が出来ない状態でした。
もういちど、書き換えた状態のdenkoh.cgiスクリプトをZip形式でアップロードしてみます。お手数おかけしてすみませんが,みていただけないでしょうか。
http://ec.uuhp.com/~azmil/denkoh.zip
Thanks for your kindness support!
□ アズミル [2005年12月07日14時33分]追記です。
Unrecognized character \x81 at denkoh.cgi line 681.
↑使っているサーバーに書いてある、エラーの内容を調べる文を追加したら、出てきた一文です。
□ NXer [2005年12月07日17時57分] DLしたdenkoh.cgiを当方のローカル・サーバで 起動しました。新規投稿は問題なくできました。 以上、速報まで。NXer。
□ アズミル [2005年12月08日08時58分]おはようございます。アズミルです。 確認したところ、前回アップロードしたdenkoh.zipに問題のものが上書きされていませんでした。申し訳ないです。
正しくはこちらです。 http://ec.uuhp.com/~azmil/denkoh.zip
設置URLももう一度書いておきます。 http://ec.uuhp.com/~azmil/cgi-bin/denkoh/denkoh.cgi?html
お手数おかけしました。
□ NXer [2005年12月08日22時21分] Azmilさん、問題の行は、1000行目です。NXerです。
1000 if ($in{'update'}){
下は当方のエディタで表示されたそのままをコピーしたものです。 上の行は桁番号です。左から1桁づつ見てください。慣れていないと 空白部分の意味が読み取れませんが、何桁目が空白ですか分かりますね。 ■------------------------------------ 12345678901234567890123456789 if ($in{'update'}){ ↓ ---------------------------------- 読み方: 1 ifの前、つまり左の空白は半角です。perlという文法では無視されます。 2 ifの後にも空白があります。 3 21桁めから[1234]と空白があります。カーソルの大きさから全角です。 2文字分あります。
目に見えませんが、空白の文字コードが入っています。前の投稿に書いてある \x81 とは\(バックスラッシ)xと16進数で何かの漢字を表すコードです。 Azmilさんが使っているエディタの文字コードは不明ですが、多分空白用 のコードです。cgiを実行するperlには、unrecognized(認識されない)文字 (character)というエラーメッセージを返しています。
4 25桁目に改行コードが入っています。perlは左24桁を有効と考えて 動作しています。しかし、当然、この全角の空白はスクリプトの意味が無いため、 そこでとまります。
当方の修正案。 □------------------------------------ 12345678901234567890123456789 if ($in{'update'}){↓ ---------------------------------- 前の半角の空白も完璧を期して(そちらのエディタが不明のため)削除して あります。また、後の空白も削除しました。その他の行でも、前に半角の 空白が入っています。それらは問題ありません。適当にインデントをいれると スクリプトは見やすくなります。なれない間は、左から書きはじめてください。 その時、文字としての空白以外に全角空白を入れるとperlではスクリプトエラーになります。
修正をして、単独起動をしてみました。電光!は表示されました。
以上です。 --------------------------------------------- Azmilさんがどのようなエディタを使われても、cgiが動作すれば よいのですから、使いやすい慣れたものを使ってください。
cgi歴などがまったく不明です。さらに、社会人か学生・生徒かによって、 ウェブサイトの目的も大きく異なります。そのために、エディタに ついて私が考えることは、ほんの一握りの人にしか当てはまりません。 もし、以下に、該当(がいとう)する部分があれば、エディタの 選択や利用に活用してください。
1 HPの作成で、自作のcgi(本当に自作はすくなく、すえぽんさんの作品 などを、自作相当としてプロバイダは扱います)をたくさん使う場合 できれば編集能力が高い「秀丸」(シェアウェア、ダウンロード後試用期間 があります)や「テラ」(フリーウェア)をお薦めします。
2 エディタでは、マイクロソフト社のメモ帳やワードパッドとは異なり 改行マークが↓で表示されます。perlでは文字として意味のある空白は 認識できますが、スクリプト中の無意味な障害となる空白は認識できません。 エラーになります。 1234567890123456789012345桁用の数列 10 #! /usr/local/bin/perl 20 print "お名前 ";↓ 30 pirnt "ご住所 "; ↓
(4桁目からがスクリプトの始まり、1〜3桁は実際はありません。説明用です。)
このスクリプトは、30行目でセミ・コロンの右側の空白のためエラーになります。 改行の矢印が無い場合は、おそらくこの空白は通常の目で確かめても 見落とすエラーです。私もエディタで改行の↓とカーソルの大きさの 変化がなければ、間違いなく、見落としています。
なお、もし電光!が設置できた場合は、直ちにそちらのdenkoh.zipファイル を削除してください。 また、そちらのサーバは、ディレクトリの中身が見える仕様です。 ------------------------------------------------- 注意: http://www.uuhp.com/q/#point からの引用 フォルダの中身一覧を表示したくない場合は、そのフォルダのアクセス権限を「701」[rwx-----x]にしてください。 ----------------------------------------------------- 一般的には、それぞれのディレクトリ(注意ではフォルダにあたります) (例 cgi-binや、denkoh)に空白のindex.html文書を転送しておきます。 仮にアクセスされてもデフォルト値で無意味なindex.htmlが開きます。
電光!のテストに成功してもウェブページに組み込む時はさらに いくつかの越えるべき壁が出現するかもしれません。便利な ウィザードなしの設置ゲームです。その時使えるアイテムを少しでも 増やしてください。
□ アズミル [2005年12月09日01時04分]こんばんわ。アズミルです。 教えていただいたとおりの箇所を、お勧めのterapadを使って修正してみました。それでもまだエラーが出るので、今度はCGI前文に全角スペースの検索をかけてみたら、他の場所にも全角スペースがありました;; c&pするときに入れてしまったようです;; それを削除したら表示、稼動ともにできましたT_T
>CGI歴。 掲示板などは設置したことがありますが、一個の設置に何時間も費やす初心者です;;
詳細で分かりやすく、丁寧なサポート、本当にありがとうございました。 思い通りの電光!にできたのはNXer様のおかげです。
ディレクトリの中が見えてしまうことに関する対応策まで教えていただいて助かりました。
i express my hearty thanks to u.
|
|