ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

10/16/2024

ウェブサイトのフッターにコピーライトは絶対に必要か?

コピーライト(著作権表示)は法律的に「必須」ではなくってよ、でもウェブサイトのフッターにコピーライトを表示することで、コンテンツの著作権がそのウェブサイトの所有者に帰属することを明確にし、無断使用や不正なコンテンツの流用を防ぐ効果があるので「推奨」

典型的な表示は以下

 ©2024 Company Name. All rights reserved.

でも頭の©は環境依存文字なので、このままコピペしても c になってしまったりするから、実体参照にするべき

©2024 Company Name. All rights reserved.

という風にね

自分の場合はこんなで・・・

<div class="copyright">&copy; <?=date("Y")?> <a href="<?=$url?>" target="_blank">MomoiroOokamiRose</a>. All rights reserved.</div>

PHPを使って西暦年を取得したり、ファイルの行頭に定義してあるURLを取得してる


https://hachikuma.tan-deki.com/2017/06/index.html

10/11/2024

ConoHaサーバの.htaccess(PHPの設定)

先月やっと引っ越したばかりのサイトだが、PHPのVer.があがったり、サーバが変わってドキュメントルートが変わってしまうとエラー出まくりの可能性があるサイトなので、このサイトこそが引っ越しせねばならぬのだった

https://pinkwolf.site/hachikuma/


https://hachikuma.tan-deki.com/

中身を移行して、そのままトップページを開いてみると、index.htmlではPHPが使えない設定(まあ通常はそれがデフォルト)のようで、確認のためにindex.phpと拡張子を変えてみたら、一応はPHPを読み込んでるがショートタグは読み込まれてなさそうだ

info.phpから確認したら、確かに short_open_tag が「Off」になってたので、.htaccessファイルに以下のように記述して、FTPでアップ

AddType application/x-httpd-lsphp .html
php_value short_open_tag On

しかし、これが全く反映せず・・・結果としてはコンパネから設定できたのだが、恐らくうっかり上書きや削除をしてしまったりせぬよう、コンパネからしか編集できない仕組み?


[サイト設定]⇒[応用設定]⇒[.htaccess設定]

これでPHPのエラーは出なくなって、残るエラーはリンクだ

10/10/2024

ConoHaサーバのPHP

 デフォルトで最新のVer.になってた


PHPのVer.は[サイト設定]⇒[応用設定]⇒[PHP設定]から確認できる

ここでinfo.phpというファイルを以下のように記述して作成

<?php phpinfo() ?>

これをFTPでアップしてブラウザから開けば、PHPが使えることがわかり、Ver.や詳細がわかる


表示されたってことは、何も設定しなくてもPHPが使えるサーバなんだわね!


10/01/2024

.htaccessのPHP設定(CPI、ロリポップ、heteml)

HTMLファイルでPHPを使いたい場合、Xサーバでは以下のように.htaccessに記述

AddHandler fcgid-script .html

これはFastCGIを使ってHTMLファイルを処理する設定

でもレンタルサーバによって異なる方式でPHPを処理するので、他では設定が違う

ちなみにCPIだと以下

AddHandler x-httpd-php80 .php .html

ロリポップだと以下

AddHandler php8.2-script .html

hetemlだと以下

AddHandler php7.4-script .html

てか、hetemlはVer.上げなきゃだわ・・・





9/29/2024

PHPのVer.を7から8に(Xサーバ)

 サーバのコンパネから簡単に変更できる


もちろん、変更後に不具合が起きる可能性はある!

覚悟が必要だし、不具合に対処できるスキルも必要だ!!

ちなみにコンパネの【サーバ情報】では、以下がわかる

  • サーバー番号
  • ホスト名
  • IPアドレス
  • OS
  • CPU AMD EPYC
  • メモリー
  • Apacheバージョン
  • PHP8バージョン
  • PHP7バージョン
  • PHP5バージョン
  • MySQLバージョン
  • Perlバージョン
  • ホームディレクトリ

9/21/2024

PHPでお宅のペットや子供の年齢(今、何歳何ヵ月か)を換算するフォーム

 

    <form method="post">
        <label for="birth_date">誕生日をカレンダーから選んでね</label><br>
        <input type="date" id="birth_date" name="birth_date" required>
        <button type="submit">今、何歳何ヵ月か?</button>
    </form>

    <?php if (isset($_POST['birth_date'])): ?>
        <?php
            // 入力された誕生日を取得
            $birth_date = new DateTime($_POST['birth_date']);
            $now = new DateTime();  // 現在日時
            $age = $birth_date->diff($now);  // 年齢を計算
        ?>

        <h2>計算結果:</h2>
        <p>誕生日: <?= htmlspecialchars($_POST['birth_date'], ENT_QUOTES, 'UTF-8') ?></p>
        <p>今、<?= $age->y ?>歳<?= $age->m ?>ヶ月です</p>
    <?php endif; ?>
↓実際のページ↓

9/20/2024

PHPでペットや子供の年齢(今、何歳何ヵ月か)を表示

 うちのはちくまが何歳何ヵ月か、個人サイトのトップページを見ればすぐわかるのだ♪


最終行の表示、毎月書き換えるのは大変なので、誕生日から換算して表示

$birth_date = new DateTime('2017-05-10');
    $now = new DateTime();
    $age = $birth_date->diff($now);
    echo "今、".$age->y."歳".$age->m."ヶ月";
↓実際のページ↓

9/13/2024

返信専用メールフォームの文字化けを修正


docomoで受けたメールが文字化けしてたので修正
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 "メールの送信に失敗しました。";
    }
}
一昔前は文字化けで毎度苦労してたが久々に化けてるの見た

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/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>";
    }
}
サムネイル選択時には左下にURLが表示されるが、titleタグを使えば画像名がツールチップで出てきて、サムネイルをダブルクリックすれば元画像が開いてダウンロードもできる・・・完璧だ

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>
いや、HTMLにする必要は実際無くて、PHPの部分だけで十分なのだが、こうして並列して表示した方が違いがわかり易いのでね
ちなみにこのHTMLファイルをWEBのトップディレクトリに置けば、どちらも同じパスが表示される

それにしても「サーバの中身を扱うには、やはりPHPだよな」と2024年になっても思ってる自分はもうWEBの最先端からは遠いよな・・・

PythonのFlaskやDjangoなんかのフレームワーク使うのが一般的になるのは、近年のPython人気とそれに比してPHPの凋落ぶりからして、目前な気がする



ヨユーが出来たら、この辺をやってみようか・・・

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>
これを画像がアップロードされてるディレクトリに置いて、URLをブラウザから開くと・・・


画像をクリックすると元画像が別タブで開く


HTMLで作成してあるので、CSSで見栄えよくしたら、サイトの1ページとして成り立つだろう

9/01/2024

デザインが決まるまでCSSファイルの更新日時を反映させておくPHP

全部を1つのドメイン下に置こうと思うが、まず1番大変なのはhachikumaの引っ越しだな

https://hachikuma.tan-deki.com/

index.htmlを開いて、とりあえずCSSを以下のように書き換える
<link rel="stylesheet" type="text/css" href="hk.css?<?php echo filemtime('hk.css'); ?>" media="screen">
こうしておけば、CSSを書き換えてアップする度にその更新日時(filetime)を拾ってくるので、確実に再読み込みをしてくれるのだが、そうでないと頑固にキャッシュを表示するのでね


そしてデザイン(という程のモノではないが)に丸1日かかって、先月分までの写真もアップしたのは今朝・・・


8/31/2024

HTMLもPHPもJavaScriptもAIに吐き出させたら楽ちんよ♪

 もう1つのサーバはいくらなんだろうか?


こっちはワリと最近契約してて、最初から月額千円と考えてたので予想通りの金額ではあるが、それにしても少しづつ値上がりしてるんだな・・・

加えて、ドメインが1つ5千円以上になったから5つもあったら年間で3万円近くも支払ってるコトになるが、ドメインこそ無駄だ

自分のは3つから1つに絞って、全然使ってなかったドメインを活かそう

一応、そのためのディレクトリはあって、.htaccessが置いてある

AddHandler php7.4-script .html

hetemlサーバの場合、これでhtmlファイル内でPHPが使えるのだ 

ChatGPTにトップページのHTMLを吐き出してもらおう
「新しくサイトを作成するのでトップページのHTMLをお願いします」

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>サイトのタイトル</title>
    <link rel="stylesheet" href="styles.css">
</head>

<body>
    <header>
        <nav>
            <ul>
                <li><a href="#">ホーム</a></li>
                <li><a href="#">サービス</a></li>
                <li><a href="#">お問い合わせ</a></li>
                <li><a href="#">会社概要</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <section id="hero">
            <h1>ようこそ、私たちのウェブサイトへ!</h1>
            <p>ここにサイトのメインメッセージやキャッチコピーが入ります。</p>
            <a href="#" class="btn">詳しくはこちら</a>
        </section>

        <section id="services">
            <h2>サービス内容</h2>
            <div class="service-item">
                <h3>サービス 1</h3>
                <p>サービス1の説明文がここに入ります。</p>
            </div>
            <div class="service-item">
                <h3>サービス 2</h3>
                <p>サービス2の説明文がここに入ります。</p>
            </div>
            <div class="service-item">
                <h3>サービス 3</h3>
                <p>サービス3の説明文がここに入ります。</p>
            </div>
        </section>
    </main>

    <footer>
        <p>&copy; 2024 サイトの名前. All rights reserved.</p>
    </footer>
</body>

</html>
このままアップしてみた


これを自分用に書き換えて、PHPが使えるのか実験


年齢は誕生日を迎える度に勝手に書き換えてくれるように以下PHP
<?php echo floor((date('Ymd') - 19680820)/10000);?>
ちなみにその下の生まれてから何日目かってのはJavaScriptだが
こういうのは今はChatGPTが吐き出してくれるから楽だわ♪

8/30/2024

某レンタルサーバとの決別

サーバ代が月額300円だったから始めたはずが、気が付いたら6カ月で5,610円も払ってる?!


しかも半年で3千円以上になったのは2019年なので、この数年でも倍近くになってるが、最初からしたら3倍以上の金額になってる・・・酷い

サーバ2つあるから、解約しようと決意!

9月中に解約だ!! 

まずは中身を全部ダウンロードしてしまい、紐づいてるドメインも解約だ
そしてもう一つのサーバにアップし直すかどうかは、吟味してアップし直す際にPHP依存な作りはやめて、JavaScriptで代用できそうな部分は差し替えよう

もうサーバのPHPのVer.のために移行するのとか疲れたわ・・・

8/29/2024

CPIサーバにPEARをインストール

もうPEAR使ってる人いないだろうて、ページを下書き状態にしたら、Google Search Consoleからエラー出て面倒だから、一応公開しとくが記事は消した