or 管理画面へ

No.34, No.33, No.32, No.31, No.305件]

tegalog-auth.phpについて


てがろぐログインAPIをPHPで扱いやすくするための共通関数ライブラリです。
使い方・リファレンスは同梱の
tegalog-auth(てがろぐログイン連携スクリプトについて).txt
をご覧ください。

2026/8/7
http://tekitote.s324.xrea.com/download/t...

ライセンス


てがろぐ専用スクリプト開発に限り特に断り・記載なく利用可能です。
ただし利用して生じたトラブルについては責任を負いかねますのでご了承ください。
また、特にサポートは行いませんが、致命的な不具合など見つけた方はhttp://tekitote.s324.xrea.com/へご連絡ください。


#てがろぐ #スクリプト

New! 配布 No.34 編集 単記事

てがろぐ用拡張投票スクリプト


てがろぐ専用の拡張アンケート設置スクリプトです。

主な機能


  • 結果表示はバーグラフ・円グラフ・帯グラフを選択可能。色変更も可。
  • Cookie + IPアドレスによる重複投票防止。IP指定でのブロックも可能。
  • 投票直後のみ取り消しを許可するオプション
  • 結果の公開範囲をてがろぐの権限レベル(0~9)で制限可能。0の場合は全体公開
  • てがろぐへのログインCookieをそのまま利用し管理画面へ
  • 管理画面から投票が掲載されている投稿No.を自動検出し、記事へ直接リンク


配布ファイル


2026/8/9
http://tekitote.s324.xrea.com/download/t...

セットアップ方法


1. ファイルの設置


tega-exvote/フォルダとtegalog-auth.phpを、てがろぐ本体tegalog.cg)と同じディレクトリに設置します。

### 2. 設定ファイルの調整
tega-exvote/exvote.iniのsaltを、推測されにくいランダムな文字列に変更してください(重複投票防止のハッシュ計算に使われる秘密情報です)。

salt=CHANGE_THIS_TO_RANDOM_STRING_ON_SETUP

その他の設定項目はtega-exvote/admin.phpの「設定」タブからブラウザ上で変更できます。

3. skinへのスクリプト読み込み追加



お使いのskinのHTML(例:skin-cover.htm)に、以下の1行を追加してください。場所はQUICKPOSTフォームより後ろであればどこでも構いません。
html
<script src="tega-exvote/exvote.js" defer></script>

以上で導入は完了です。

使い方(利用者向け)



1. てがろぐにログインした状態でQUICKPOSTを開くと、投稿欄の下に「投票を追加」チェックボックスが表示されます(未ログイン時は表示されません)
2. チェックすると、単一選択/複数選択の切り替え、選択肢の入力欄(+項目を追加するボタンで追加可能)、投票期限(任意)が表示されます
3. 選択肢は2つ以上、すべて空欄なしで入力しないと投稿ボタンがロックされます
4. 投稿すると、記事本文の末尾に投票マーカーが自動的に埋め込まれ、記事一覧ページ上ではそのマーカーが投票ウィジェット(iframe)に自動的に置き換わって表示されます
5. 読者は選択肢を選んで投票すると、設定に応じたグラフ(バー/円/帯)で結果が表示されます
6.enable_cancel=1の場合、投票直後は「投票を取り消す」ボタンが一定時間だけ表示されます

管理画面


tega-exvote/admin.phpにアクセスすると、てがろぐへのログイン状態を自動的に確認し、ログイン中であればそのまま管理画面が使えます。

- 設問一覧タブ: 作成済みの投票の一覧、得票数、紐付いた投稿No.へのリンク、手動での締切・削除
- 設定タブ:exvote.iniの主要項目をフォームから変更・保存(色パレットはリアルタイムプレビュー付き)

設定リファレンス(exvote.ini)



charcode=UTF-8
data_dir=./data 設問データの保存先ディレクトリ
cookie_name=exvote_token 投票者識別用Cookie名
cookie_expire_days=365  上記Cookieの有効期限(日)
salt=CHANGE_THIS_TO_RANDOM_STRING_ON_SETUP  重複投票防止ハッシュ用の秘密文字列。導入時に必ず変更すること!

# 結果表示スタイル: bar(バーグラフ)、pie(円グラフ)、stacked(帯グラフ) のいずれか
result_style=bar

# 選択肢ごとの色パレット(カンマ区切り)。選択肢数がこれより多い場合は先頭から循環する
colors=#4a90d9,#e94f37,#f6c945,#4caf50,#9c27b0,#00bcd4,#ff9800,#795548

# 投票をブロックするIPアドレス(完全一致、カンマ区切り、空欄でブロックなし)
blocked_ips=

# 投票の取り消し機能を使うかどうか(1:使う/0:使わない)。0にすると常に取り消しボタンを出さない
enable_cancel=0

# 投票直後に取り消せる時間(秒)。この時間を過ぎると取り消しボタンは表示されなくなる(enable_cancel=1のときのみ有効)
cancel_window_seconds=300

# 日時計算に使うタイムゾーン。締切判定・作成日時等すべてに適用
timezone=Asia/Tokyo

# 投票結果(グラフ)を閲覧できる最低権限レベル(てがろぐのuserlv、1〜9)。
# 0にすると誰でも閲覧可能(デフォルト)。1以上にすると、その値以上のてがろぐログインユーザーのみ結果が見え、
# それ以外は投票後「ご投票ありがとうございました」とだけ表示される(投票自体・取り消しは引き続き可能)
result_min_userlv=4

# てがろぐ本体のCGIファイル名(管理画面から記事へのリンク生成に使用)
cgi_filename=tegalog.cgi



データ形式(参考)



設問1件につきdata/q_<qid>.csvが1ファイル作成されます。

META,<qid>,<singlemulti>,<作成日時>,<締切日時 or 空>,<openclosed>,<投稿No. or 空>
OPT,<選択肢ID>,<ラベル>,<得票数>
OPT,<選択肢ID>,<ラベル>,<得票数>

重複投票防止用の履歴はdata/q_<qid>_hist.csvにハッシュ,投票日時,選んだ選択肢ID(区切り)の形式で追記されます(締切時に自動削除)。

tegalog-auth.phpについて



てがろぐログインを必要とするスクリプトのための共通APIみたいなものです。
主にてきとー実験場製のスクリプトで使用する想定で作られていますが、他者がてがろぐ用スクリプトを開発するときに自由に使用・同梱してもかまいません。

トラブルシューティング


設置サイトでWAFやセキュリティーサービスなどを使用している場合、正しく動作しないことがあります。
お使いのWAF/セキュリティサービスの設定で/tega-exvote/以降のパスを検査対象から除外してください。
畳む


#てがろぐ #スクリプト

配布 No.33 編集 単記事

てがろぐでD&Dまたはコピペで画像投稿するやつV2
を更新。アップロード時にNSFW・一覧外を設定できるようになりました。
またV2版も安定作動するようになったと思われるため旧版への言及とリンクを削除。

更新履歴 No.32 編集 単記事

このサイトについて


てきとーのーとによるちょっとした個人サイト向けスクリプトの配布、デモ展示所です。
現在以下のスクリプトを配布しています。

●てがろぐで使える画像アップロード用拡張スクリプトV2
                    (旧版)→noteへ
●リアクションボタンをサイトにつけるやつ
●CSS変数カラージェネレーター
てがろぐ用拡張投票スクリプト
PHP向けてがろぐログイン共通関数ライブラリ

このサイトで配布しているスクリプトは商用・非商用にかかわらず使用できます。また改変・改変後の再配布、自作のテンプレートに組み込んでの配布もご自由にどうぞ。
このスクリプトを利用して生じたトラブルについては責任を負いかねますのでご了承ください。

当サイトはリンクフリーです。紹介の報告は必要ありません。
紹介の際は「てきとー実験場」もしくは「てきとーのーと」で表記してください。

質問・要望・不具合報告はWAVEBOXよりお願いします。
不具合についてはなるべく詳しい状況を教えていただけると助かります。
https://wavebox.me/wave/77kkcwhk8uzskow7...

No.31 編集 単記事

2026/7/16 返信
>>2026/7/2
https://wavebox.me/msg/77kkcwhk8uzskow7/...
PHP7.4で動かない構文があったため修正しました。最新版をダウンロードして試してみてください。

2026/6/30 返信

>>2026/6/26
https://wavebox.me/msg/77kkcwhk8uzskow7/...
使用の検討ありがとうございます。
申し訳ないのですが、何度か条件を変えて試しましたがこちらでは特に再現できませんでした。
抜けている条件があるかもしれないので、
お手数ですが
・使用サーバーのPHPバージョン
・PHPファイル内、投稿欄のオプション状態
を添えてメッセージいただけると幸いです。
または、「webp変換の欄が無効」というのはUI下部の「WEBP変換:有効」という表示のことでしょうか?その場合はブラウザキャッシュを消去すると直るかと思いますので、そちらをお試しください。

2026/5/29 返信

>>2025/11/2 14:50
https://wavebox.me/msg/77kkcwhk8uzskow7/...
返信が遅くなり申し訳ありません。
20260529版で回転方向を保持するように修正いたしました。

>>2025/10/24 13:10
https://wavebox.me/msg/77kkcwhk8uzskow7/...
返信遅くなり申し訳ありません。
一部の特殊文字は弾く仕様となっており、それがJS側で反映されていなかったのでうまくいかなかったのではないかと思われます。
20260529版で修正しましたので、お手すきの際にお試しください。

>>2025/6/8 20:56
https://wavebox.me/msg/77kkcwhk8uzskow7/...
実は当方のローカル環境ではPerlがうまく動かないので、疑似的なHTMLファイルを使ってテスト(いずれ環境構築する予定です)しているため、もしかするとローカルのCGI環境では動かない可能性があります。また、スクリプトの不具合かもしれないので、・C&P、D&D、クリックで選択・WEBP変換や加工オプションなどを入れているか・ファイル名、拡張子の変化があるか・web開発ツールでエラーが出ているか など教えていただけると助かります。

2025/4/27 返信

>>2025/4/2 15:48
https://wavebox.me/msg/77kkcwhk8uzskow7/...
>>2025/4/3 0:12
https://wavebox.me/msg/77kkcwhk8uzskow7/...
repeaterのPHPファイルが途中までになっており、作動しない状態でした。お手数ですが最新版をダウンロードの上お試しください。

2025/3/22 WAVEBOXへの返信の旨をこちらで報告するのを忘れていました。
以降返信についてはnoteのつぶやきとこの記事にて報告いたします。

>>2025/3/17 15:00
https://wavebox.me/msg/77kkcwhk8uzskow7/...
スクリプトのご利用ありがとうございます。
こちらでは特に再現できなかったので、詳しい内容(実際の操作手順、使用しているテンプレート名や、可能であればコンソールログの内容など)を報告していただけると助かります。

>>2025/3/16 0:44
https://wavebox.me/msg/77kkcwhk8uzskow7/...
ご使用いただきありがとうございます。
リアクションボタンスクリプトはflexboxを使っているので、
.reaction-buttonsにjustify-content: flex-end;
を指定すると右寄せになると思います。他のCSSによってうまく動かない場合もあるので、ブラウザの開発者ツールで確認しながら適用してみてください。

>>2025/3/7 2:52
https://wavebox.me/msg/77kkcwhk8uzskow7/...
当サイトのスクリプトはWeb上で動くものですので、ローカルに置くだけでは安全だと思います。挙動も自分が試した範囲では特に変な動きはしないので、問題ないかと思います。
ただ、config.phpの絵文字設定では任意の文字列を設定できるため、使用方法によっては脆弱性を起こす可能性があります(javascriptを組み込むなど)。
また、開発の大部分にLLMを使用しているため、人為的な検証もしてはいますが未知の脆弱性の可能性もありますので、気になる場合はご使用をお控えください。

>>2025/2/22 13:14
https://wavebox.me/msg/77kkcwhk8uzskow7/...
導入検討ありがとうございます。

説明がわかりづらくてすみません。

<div reaction-id="[[POSTID]]">
この中にreaction-hogehogeを含むタグがあれば動作
</div>

という形になっているので、該当スキンならばskin-onelog.html内に

<div class="onelogbox [[POSTSTATUS]]" id="pos[[LOOPCOUNT]]" reaction-id="[[POSTID]]">
<div class="comment">
[[COMMENT]]<!-- 本文 -->
</div>
<p class="oneloginfo">
~省略~
</p>
<div class="reaction-buttons"></div>
</div>

のように記述していただければ動くかと思います。

>>2025/2/7 21:36
https://wavebox.me/msg/77kkcwhk8uzskow7/...
こちらこそ使っていただいてありがとうございます。
もし不具合など、お気づきの点や要望がありましたらお気軽にご連絡ください。

>>2025/1/30 23:47
https://wavebox.me/msg/77kkcwhk8uzskow7/...
無事使えたようでよかったです。また問題等ありましたらお気軽にご連絡ください。

以降はhttps://wavebox.me/wave/77kkcwhk8uzskow7...の「さらに見る」からご確認ください。畳む

つぶやき No.30 編集 単記事