質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

854閲覧

PHP,WordPress 生成したパスワードを変数に入れて他の関数で使用したい

shimon11

総合スコア49

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/05/26 02:26

編集2021/05/26 02:39

前提・実現したいこと

1日おきに特定のユーザーのパスワードを変更させてそのパスワードを出力させる関数を書きたいです

現状のコードがこのような形です

該当のソースコード

php

1/** 2* グローバル変数の定義 3*/ 4global $password; 5 6/** 7 * 検証用自動実行用関数 8*/ 9function my_auto_function() { 10 /** 11 * パスワードを生成する ユーザーID '1'を設定 12 */ 13 global $password; 14 $password = wp_generate_password( 12, true ); 15 wp_set_password( $password, 1 ); 16} 17add_action ( 'auto_cron', 'my_auto_function' ); 18 19/** 20 * イベント登録時の指定 21*/ 22if ( !wp_next_scheduled( 'auto_cron' ) ) { 23 date_default_timezone_set('Asia/Tokyo'); 24 wp_schedule_event(strtotime('2021-05-25 13:55:00'), 'daily', 'auto_cron'); 25} 26 27function my_function () { 28 //パスワードを出力させる関数を書きたい 29 global $password; 30 echo $password; 31}

試したこと

おそらくglobal関数で生成したパスワードを他の関数でも使用させるようにしたいのですが、上手く表示されないです
my_auto_functionを使用せずにglobal関数で変数をセットすれば変数は渡されます

どのようにすればいいでしょうか

お心優しい方お答えいただければ幸いです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

global変数は同一プロセス中でしか共有されません

別プロセスで値を共有したいのであれば
データベースに保存するなどする必要があります

基本的に生のパスワードを保持するのはセキュリティー上の懸念があり
WordPressもDBにはハッシュ化された値しか保持しておらず復号もできません
なのでWordPressのデータベースから設定されたパスワードを取得することはできません

設定したパスワードの表示をしたいのであれば
パスワードの値を自分でどこかに保存しておかなくてはいけません

簡単にデータベースに値を保存・取得したいのであればwp_optionsでできます

蛇足:

1日限定で誰でも使える権限の限定されたオープンなアカウントを用意したい
ということなどが目的であればいいですが
もしセキュリティー強化のためにパスワードを短い期間で変更したい
という目的であればそのアプローチは逆効果です

投稿2021/05/26 03:29

KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimon11

2021/05/26 03:36

ご回答ありがとうございます! >global変数は同一プロセス中でしか共有されません なるほど、大変勉強になりました。 >1日限定で誰でも使える権限の限定されたオープンなアカウントを用意したい ということなどが目的 質問には書いていなかったのですがそのとおりです 1日おきにパスワードをリセットさせユーザーにパスワードを送るプログラムを作りたいと思っております optionsテーブルにデータを保存する方向で行こうかと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問