2020年5月28日(木)作業過程と気づきメモ

役に立たないかもしれないけど役に立つかもしれないメモ

 以下の文章の編集方法

workflowyで随時入力 → 翌日Evernoteに転記(firefoxでworkflowyのexportでコピペ(なぜかchromeのコピペでは階層が反映されない)) → はてなブログにコピペ(編集)

  • (ブログ)作業過程と気づきメモ
    • 予約投稿 2020/5/30 6:00:00
  • 【Webアプリ】ブログ(tw_001)
    • 配信予約が完了した場合
      • トーマス
        • うたらぼプライム
          • コンテンツにブログのURLを記入
          • ブログのリンク確認
        • ステップメール
          • 今回のブログ分を追加
            • 短縮URLに全部変換
            • 前のメルマガの3日後
            • 時間は17時
      • Webアプリ
        • 解説ブログの部分にURLを設定
  • ブログが予約投稿完了したので、ツイッターにコメント付きリツイート
    • 文の案
      • ツイッター検索のWebアプリを作りました!
      •  
      • こんな方におすすめです。
      • ・毎日決まった人をチェックしたい
      • ・毎日決まったハッシュタグをチェックしたい
      • ・日付で変化するハッシュタグに対応
      •  
      • よろしければお試しください!
      •  
      • #PHP #Web #アプリ #Webアプリ #ツイッター #twitter #おは戦
    • リツイート後に固定化した
    • 上記の文章をちょっと変えて、5月31日の朝のツイートにする(いつものツイートは中止)
      • なぜ5月31日かというと、31日は日めくりカレンダーでは使わない月があるので、ま、いいかな、という判断
  • 5月31日は、3時に起きて早くリツイートしよう!
    • たすくまに予定記入!
  • Webアプリの作成(tw_002)
    • 「Bootstrap4フロントエンド開発の教科書」を参考
    • 表示部分のソースは残して、今回の表示部分は追加。
      • bootstrapを使用する表示は、dsp_b_xxx.phpという書き方にして、既存のdsp_xxx.phpと対応するようにする。
      • そうすると、たとえば、最初の画面はtw_001のものにして、追加したチェックボックスをクリックすると、bootstrapの表示になる、ということができそう。
      • 画面の切り替えとして、セッション変数を使おうと思ったが、ログアウトするとセッション変数をクリアするので、画面の切り替えは、クッキーを使ってみる。
    • ドロップダウンの組み込み P375
      • サブメニューの選択は、これを使う。
    • 謎の現象
      • secフォルダのdsp_logout.phpをincludeで無視されている。
      • dsp_login.phpをリネームしても無視
      • 以下のように対応した
        • dsp_login.phpをコピー
        • コピーファイルをdsp_login1.phpにする
        • それをinclude
    • 謎の現象2
      • セッションはなくなっているはずなのに、ログアウトメニューがでる。
      • クッキー関係をセットしてから、おかしくなった。
      • PHPを再起動してみる。
        • 変わらない
      • ブラウザを全部閉じ、開く
        • 変わらない
      • index.phpに書いたクッキー関連を削除してみる。
        • 変わらない
      • ログアウト画面の表示部分の書き方を変えていたので、元に戻す
        • 変わらない
      • ログアウトの文字列を「gログアウト」にしたのに、変わらず
        • ということは、ブラウザのキャッシュに残っている?
      • ブラウザ > 設定 > プライバシーとセキュリティ > 閲覧履歴データの削除
        • 過去24時間を削除
        • 変わらなかった。。。
    • グーグルで「PHP ソースを変更しても変わらない」を検索
    • ColdFusionではWebアプリを作る場合、アプリケーションIDというようなもので区別していた。
      • 当時のよくあることは、Webアプリをコピペして作ったところ、アプリケーションIDが同じだったので、セッション変数など共有されてしまった現象があった。
      • PHPでも区別するものがあるのか??
        • 本を探したが、見つからない
    • PHPのコンパイル
      • コンパイルしたファイルがあるかと思ったが、見つからない。
    • ログアウトの表示
      • $g_lay_logoutmenu変数は、index.phpの先頭で初期化している
        • 6行目ぐらい
          • $g_lay_logoutmenu = "";
      • それにも関わらず、ログアウトしていたのに、表示されていた。
        • 画面表示部分で、再度、変数の初期化をしてみた。
        • すると、うまくいった!
        • グローバル変数なので、昔のWebアプリの値が残っていた?
      • 「namespace」という単語を思い出した。
        • 名前空間で区別するためのもの。Laravelの本で見かけた?
        • 使うと、区別つきそうだ。
        • www.sejuku.net

        • ※ダメだった
      • チェック用の関数(単純に、場所と変数の値表示)を作って、初期化したところから、表示場所まで、関数を埋め込んでチェック
        • 場所は特定できたけど、変数にセットした部分が見当たらず。。。
        • とりあえずは、表示しないようになった。
        • 面倒でも、上記のようなチェックを、”まず”やろう!
    • 「謎の現象」に戻る
      • includeされない現象
      • なぜかdsp_logout.phpは無視される
      • コピーしてdsp_logout_aa.phpとリネームして呼び出すと、反映する。
      • わからん!
      • PCごと再起動!
      • MAMPが起動できない。
      • 電源を切る。再度、電源を入れる。
      • なかなか、MAMPが動かず。
      • ブラウザでいろいろ探す
      • なかば、再インストールをしようかと思った。。。
      • タスクマネージャーを見てみると、プロセスタブのバックグラウンドプロセスに、クリックした分のタスクが残っていたので強制終了。
      • 電源いれてから約1時間後に、ためしにやってみたら、できた!
        • わけわからんけど、できてよかった!
        • バックアップはしといたほうがいいね。今後のためにも。
      • どうやら、曖昧な指定だった。
        • include
          • 「ファイルが include_path に見つからないときは、include は呼び出し元スクリプトのディレクトリと現在の作業ディレクトリも探します。」ということで、探索して別のファイルがヒットしたかもしれない。
        • teratail.com

          • _DIR_ を使えば確実
            • 例) include(__DIR__."/dsp_logout.php");
            • 毎回「__DIR__」を書くのは美しくない。関数化できないかな?
    • 謎が解決!!
      • 結果
        • dsp_logout.phpファイルが複数あった!!
      • ファイル構成
        • root dir
          • app dir
            • sec dir
              • app_main.php
              • dsp_logout.php
          • dsp_logout.php
      • app_main.php内で、include("dsp_logout.php")を呼ぶ
        • 画面に表示されるべきところが、表示されない
          • root dir直下のdsp_logout.phpを読んでいる
          • そのファイル内では、画面表示に関する変数に、値をセットしていない。
      • app_main.php内で、include(realpath("./")."/app/sec/dsp_logout.php");を呼ぶ
        • 絶対パスなので、表示された。
        • ようするに、呼び出したファイルと同じ場所からでなく、rootから先にファイル名を探索しているようだ。
      • 教訓!
        • もし、includeで処理がおかしい場合は、ファイル名が同じものがあるかもしれない!!
    • 本日の総括
      • うっかりrootに相当する場所にdsp_logout.phpファイルを作ったのが、きっかけ。
      • まさか、上の階層のdsp_logout.phpをinclude関数で呼ぶとは!!
      • おかしい現象があったら、まずは直前の自分の行動を振り返らなければならない。