アフィリエイト広告を利用しています

2022年08月18日

PHP Mailerで添付したファイルを開けない

PHP Mailerでメールにファイルを添付して送信した。

以下のコマンドだけで添付できるので本当に手軽である。


 $mail->AddAttachment('ファイルパス');


さっそく試してみると、添付ファイルつきのメールを受信できた。

しかし、なぜか添付されていたファイルを開こうとするとエラーメッセージが表示され、

読むことができない。

添付するファイルの種類・位置・サイズを変更して試したが、結果は変わらない。

途方に暮れた。

原因は単純だった。


ファイルパスの記述に問題があった。

以下のようにパスとファイル名を別々に記載していたのがまずかった。


 $filePath="/home/sample/";
 $fileName="testfile.pdf";
 $Mail->AddAttachment($filePath, $fileName);


下のように一つにして記載するのが正解。


 $attachfile="/home/sample/testfile.pdf";
 $mail->AddAttachment($attachfile);


間違っていた構文も正しい構文もともにWebで検索していて見つけた。

間違っていたのではなく、PHP Mailerのバージョンによるのだろうか。

確認していない。







posted by db-engineer at 00:00 | Comment(0) | PHP

2022年08月17日

オブジェクト指向について学ぶ

オブジェクト
 関連する変数(値)と関数(動作)を一まとまりにして、そのまとまりに名前を付けたもの。

クラス(設計図)とインスタンス(実物)
 オブジェクトの設計図をクラス、それを実体化したものがインスタンス。
 設計図だけでは役にたちません。実体化してから使用します。

プロパティとメソッド
 オブジェクトに含める変数をプロパティ 、関数をメソッドと呼ぶ。

オブジェクト指向プログラミング
 オブジェクトをいくつも使用するプログラミング手法。


上の説明文、今は何とか理解できる。

この文章ではないが、初めて読んだオブジェクト指向についての説明は全く理解できなかった。
10度読んでも、20度読んでもできなかったので、
オブジェクト指向プログラムは自分には合わないものとみなした。

その数年後、クラスをふんだんに使って作成されているシステムを保守する立場になってしまった。
ソースの修正と実行を繰り返すことで、クラスの宣言と実体化を理解できるようになり、
そのシステムを改修できた。

まさに、からだで覚えたと言える。







2022年08月16日

さくらサーバでmigrate

さくらサーバでmigrateを実行した。

 php artisan migrate

Illuminate\Database\QueryException というエラーメッセージが表示された。

laravel_migrate_error.png

.envファイル内の接続情報の誤りに気付いて修正したが、結果は変わらない。

もう打つ手がないので、キャッシュクリアコマンドを実行してみた。


 php artisan cache:clear
 php artisan config:clear


どちらが有効だったのかは確認していないが、状況が変わった。


 $ php artisan migrate:status
 Migration table not found.


エラーメッセージが変わっただけと思ったけれど、:statusを取れば大丈夫だった。


 $ php artisan migrate


問題なく実行できた。







posted by db-engineer at 00:00 | Comment(0) | PHP

2022年08月01日

tcpdfでWarning: chr() expects parameter 1 to be int, string given in エラー

tcpdfを使用して、PDFファイルを出力しようとしたら

こんなエラーメッセージが表示された。


 Warning: chr() expects parameter 1 to be int, string given in <your dir>/tcpdf/include/tcpdf_fonts.php on line 1671


原因は分からないので、Webを検索したら下のページに

同じエラーメッセージとその解決方が記載されていた。

 https://wsdlab.com/?p=855

指示通りにtcpdf_fonts.phpファイルの

return chr($c); を return chr(intval($c)); に

修正したら、エラーは消えPDFファイルが出力された。

注意


1671行目辺りには return chr($c); が2か所ある。


 public static function unichr($c, $unicode=true) {
  if (!$unicode) {
    return chr($c);
  } elseif ($c <= 0x7F) {
    // one byte
    return chr($c);
  ・


// one byte の下の return chr($c); を修正した。







posted by db-engineer at 00:00 | Comment(0) | PHP

最新記事
検索
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド