if ($_SERVER["REQUEST_METHOD"] == "POST") {
$to = $_POST['recipient_email'];
$subject = "予約確認";
$message = "予約承りました、ありがとうございました。"; // 固定メッセージ
// メールのエンコーディングをISO-2022-JPに変換
$subject = mb_encode_mimeheader($subject, "ISO-2022-JP");
$message = mb_convert_encoding($message, "ISO-2022-JP", "UTF-8");
// ヘッダーにエンコーディングを指定
$headers = "From: info@ドメイン\r\n";
$headers .= "Content-Type: text/plain; charset=ISO-2022-JP\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
if (mail($to, $subject, $message, $headers)) {
echo "メールが送信されました。";
} else {
echo "メールの送信に失敗しました。";
}
}
たわごとの記~耽溺者の備忘録~
PC作業メモ
9/13/2024
返信専用メールフォームの文字化けを修正
9/12/2024
返信専用メールフォーム
WordPressをメールフォームにしか使ってなかったら、PHP7でもPHP8でも動くようなメールフォームに差し替えて、WordPressは削除してしまえばいんじゃん?
チケット予約のフォームは、名前とメールアドレスと通信欄しか項目要らないから簡単だ
いや、その前にチケット予約のメールが着て、返信するのに使ってたWEBメールが使えなくなったので(なぜかスマホからだとエラーが出てログイン不可)、返信専用のフォームを作らねばだ
必要最低限項目だけで・・・
HTMLはこんな感じ
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>返信フォーム</title>
</head>
<body>
<form method="post" action="send_reply.php">
宛先メール: <input type="email" name="recipient_email" required><br>
メッセージ: <textarea name="message" required>予約承りました、ありがとうございました。</textarea><br>
<input type="submit" value="送信">
</form>
</body>
</html>
PHPはこうかな・・・
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$to = $_POST['recipient_email'];
$subject = "予約確認";
$message = $_POST['message'];
$headers = "From: info@ドメイン";
if (mail($to, $subject, $message, $headers)) {
echo "メールが送信されました。";
} else {
echo "メールの送信に失敗しました。";
}
}
これでとりあえず送信できた
9/11/2024
使用サーバのPHP問題
2つ契約してるサーバのうちの1つを解約するために、もう一方のサーバに中身を集約してる作業中だったが、そのサーバは現状PHP7.4で、それ以上にはアップグレードできず、サーバを移行するよう促された
詳細を以下に貼っておくが、サーバ移行するなら1つづつエラーが出ぬよう、確認しながらやりたいので、新しいサーバに移行する方が安全安心だろう
ちなみに次の契約更新日は2025年3月末なので、他サーバに移行するか、危険な賭けに出てこのサーバを継続するか遅くても年内には決めなくてはだ
◆プラン変更について
ご利用アカウントがPHP8系のバージョン未対応の場合、プラン変更いただくことでPHP8系をご利用いただけます。また、データベース作成数が無制限になります。
◆プラン変更の手順
1.運用サイトが移設先環境へ対応している状態かを確認
2.プラン変更に伴う注意事項などの詳細を確認
3.[プラン変更]ボタンをクリックしサーバー移設開始(キャンセル不可)
4.サーバー移設完了を確認
5.メンテナンス完了後のレコード設定(個別レコード設定の場合のみ)
※ プラン変更完了から移設先サーバー環境へのFTP/SSH接続ができるようになるまで反映に1時間ほどかかります。
※ データ転送時間の目安はよくある質問をご確認ください。
※「メールアカウント」や「データベース(MySQL4を除く)」は、移設の際にそのまま引き継がれますのでデータ移動や再設定等は不要です。
◆ネームサーバーの設定変更について
移設完了後、自動的に設定が変更され、移設先のデータでサイトが公開されるようになります。
◆注意事項
移設先での動作確認期間は設けられません。
そのため、移設完了後にサイト表示がエラーになることも考えられます。
移設先でも表示可能な状態に移設元データを調整いただき事前準備をお願いします。
エラーが発生した場合も移設のキャンセルは承ることができません。
現在のリニューアル環境の仕様についてはサービスサイトやマニュアルなどでご確認ください。
.htaccessやcronで提供していないPHPバージョンが指定されている場合はエラーになります。また、移設元と移設先では環境などが異なりますので以下の内容についてもご確認ください。
◆各種情報の変更
移設に伴い以下情報が変更となります。
・サーバー番号
・ロードバランサーIPアドレス
・WEBサーバーIPアドレス
FTP、WebDAV、SSH、フルパスに変更なく、引き続き同じ情報でご利用いただけます。クレジット決済等のサービスで「WEBサーバーIPアドレス」を許可設定いただいている場合、許可IPの変更、もしくは追加いただく必要がございます。
◆PHP設定について
プラン変更後も引き続きCGI版の PHP5.6 / PHP7.1 / PHP7.3 をご利用いただけます。
【移設後自動的にPHPのバージョンが指定される場合】
PHP7.4(モジュール版)を指定→移設後はPHP8.3(モジュール版)になります。
◆利用料金
◆プラン変更機能利用中の制限について
機能利用開始から完了までの間、数分から1時間程度以下をご利用いただくことができません。
・WEBサイト表示
・バックアップオプション管理画面ログイン、操作
・FTP接続
・WebDAV接続
・SSH接続
・アクセスログ解析
また、プラン変更開始から完了までの間、コントロールパネル上の下記操作が制限されます。
プラン変更開始から完了までの時間はデータの転送量によって異なり、場合によっては長時間化する場合もございます。
・独自ドメイン、サブドメインの設定
・独自ドメインのメール機能利用開始
・バックアップオプションのお申込み
・SSH / サブFTPアカウントの作成、削除
・アクセス制限
・各種簡単インストール
・WebDAVの設定変更
・cron設定、表示
・サブFTPアカウントでの移設先サーバーへのアクセス
9/10/2024
更に画像一覧を見易くした
span {
margin: 5px
}
9/09/2024
画像一覧を見易くした
数日前にサーバのディレクトリ内の画像を一覧できるようにした
でも縦にずらっと並んでるのは見づらいので、画像名の表示は止めて、サムネイル画像だけが並ぶように修正
// ディレクトリ内の画像を表示する
while($file_name = $dir_name->read()){
$path = $dir_name->path . "/" . $file_name;
if (@getimagesize($path)){
echo "<span><a href=\"$url" . $file_name . "\" target=\"_blank\">";
echo "<img src=\"$url" . $file_name . "\" height=\"150\" title=\"$file_name\"></a></span>";
}
}
9/08/2024
WordPressの削除
このブログを再利用するコトにしたので、WordPressの方は使用しなくなり、削除した
まず、画像データだけは何か別で使ってるか、あるいは今後使うかもなので、wp-content/uploadsはディレクトリごとダウンロードしておき、WordPressのトップディレクトリ内をすべて削除(自分はディレクトリ毎ごと削除した)
あとはデータベースで必要なモノ(wp-postなど)を一応.sqlファイルでダウンロード(エクスポート)しておいてから、削除
エクスポートしたwp-postデータ、開いてみたら<!-- wp:paragraph -->とか、<figure class=\"wp-block-image size-full is-resized\">とか、勝手に挿入されたタグだらけになってたので、必要なテキスト部分だけを再利用するには、それらを一括削除しないとな~
9/07/2024
ルートディレクトリから始まる完全なパスの調べ方
まあドキュメントルートがわからなくても、PHPでエラーになればエラー箇所がどこにあるか、ルートディレクトリから始まる完全なパスを表示してくれるからそれでわかるのだが、事前に調べるコトももちろんできる(余りちゃんと事前に調べたことはないがね)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>パス表示</title>
</head>
<body>
<p>現在のスクリプトのディレクトリパスを表示</p>
<?php
echo __DIR__;
?>
<p>サーバのドキュメントルート(ルートディレクトリ)を表示</p>
<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>
</body>
</html>
9/06/2024
サーバ内の画像一覧をブラウザで表示する
サーバ内にある画像の一覧をブラウザから閲覧出来て、その際には画像のサムネイルと画像名が表示されて、画像をクリックすれば元のサイズで表示できるとなれば便利だろうと考えて、PHPでプログラム部分を書いて、こんなHTMLファイルをアップ
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>画像一覧</title>
</head>
<body>
<p>画像一覧</p>
<?php
// ディレクトリ名(アップロード先に書き換える)
$dir_name = dir("/ルートディレクトリの完全なパス/gazo");
$url = ("https://ドメイン/gazo/");
// ディレクトリ内の画像を表示する
while($file_name = $dir_name->read()){
$path = $dir_name->path . "/" . $file_name;
if (@getimagesize($path)){
echo "<a href=\"$url" . $file_name . "\" target=\"_blank\">";
echo "<img src=\"$url" . $file_name . "\" height=\"150\"></a> ";
echo "<p>$file_name</p>";
}
}
$dir_name->close();
?>
</body>
</html>
9/05/2024
画像の整理でまず拡張子を統一する
JPGとjpgが混在してると、プログラムで拾うのがメンドウだし、そもそもファイル名は基本的に全部小文字としておいた方が、間違える心配がなくていい
ren *.JPG *.jpg
9/04/2024
メディアクエリでモバイル表示対応
「本の旅」サイトはモバイル用の表示が酷い
幅が768px以下のブラウザでは、100%表示になるようにしよう
HTMLの構成がこんなで・・・
<!DOCTYPE html>
<html lang="ja">
<head>
<link rel="stylesheet" href="hon-dana.css?<?php echo filemtime('hon-dana.css'); ?>" type="text/css">
</head>
<body>
<article>
<header>
<h1>本の旅</h1>
<nav>
目次
</nav>
</header>
<section>
</section>
<footer>
</footer>
</article>
<script src="hon-dana.js"></script>
</body>
</html>
article {
width: 768px;
margin: 0px auto;
padding: 0px;
background: #fff;
text-align: center;
}
@media (max-width: 768px) {
article {
width: 100%;
}
}