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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

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

PHP

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

Q&A

1回答

1270閲覧

Wordpressでsessionを保持する方法

akihiro77

総合スコア8

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/07/23 16:35

編集2017/07/23 16:44

こんにちは。ワードプレスで会員制サイトを構築しようとしているものです。
自分でデータベースを作り、ID/PW/権限をSESSIONに保持し、各固定ページでif文で権限ごとに表示する情報を切り分けようと思っています。
サーバーはlolipopです。

php

1functions.phpに 2if (is_page() ) { 3 add_action('init', 'session_start'); 4 function session_start(){ 5 session_start(); 6 } 7} 8 9function Include_my_php($params = array()) { 10 extract(shortcode_atts(array( 11 'file' => 'default' 12 ), $params)); 13 ob_start(); 14 include(get_theme_root() . '/bridge-child' . "/$file.php"); 15 return ob_get_clean(); 16} 17 18add_shortcode('myphp', 'Include_my_php');

を追加しています。

まず、ログインページに

html

1<form action="[myphp file='getoptions']/system/top" method="post">ID: 2<input name="user_id" size="10" type="text" value="" /> 3PW: 4<input name="user_pw" size="30" type="text" value="" /> 5<input type="submit" value="登録する" /></form>

と記入し、飛び先のページである、/topに

php

1<?php 2function idcheck() { 3 4$id = htmlspecialchars($_REQUEST['user_id'],ENT_QUOTES); 5$pw = htmlspecialchars($_REQUEST['user_pw'],ENT_QUOTES); 6 global $wpdb; 7$query = "SELECT * FROM $wpdb->db名 where login_id = '$id';" ; 8$sql = $wpdb->get_results($query); 9foreach ($sql as $value) { 10if(strcmp($value->login_pw , $pw) ==0 ){ 11print('ログインしました。'); 12$_SESSION['user'] = $id; 13$_SESSION['pw'] = $pw; 14$_SESSION['authority'] = $value->authority; 15}else{ 16print('パスワードが違います。'); 17} 18} 19} 20?> 21 22<?php 23idcheck(); 24?>

と記入しました。
ログインページからポスト送信されてきたidを、select文でwhereの中に条件として記入し、1行データをひろい、データベースのpwと入力されたpwを比較して、OKならログインしましたと表示し、
セッションにidとpwと権限情報を記入するプログラムです。

$_SESSIONで、ID情報をセッションに記入しているのですが、このページではセッションが使えるのに、他のページではsessionが拾えません。

試しに、このように書いてみたのですが、

php

1<?php 2print('<p>ユーザIDは'.$_SESSION['authority']); 3var_dump($_SESSION) ; 4print(session_id()); 5?> 6 7<?php 8print($_SESSION['authority']); 9if($_SESSION['authority']==1){ 10print('<p>権限1です。</p>'); 11 12 13} else { 14print('<p>ログインし直してください。</p>'); 15} 16 17?>

$_SESSION['authority']の部分がどうしてもnullになります。
どなたか解決策のわかる方はいませんか?

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

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

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

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

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

kei344

2017/07/23 16:38

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
akihiro77

2017/07/23 16:45

ご指摘ありがとうございます。修正いたしました。
guest

回答1

0

直接の回答ではありませんが、WordPressを使うのであればWordPressのユーザー管理システムを利用するのも手だと思います。(「WordPress 会員サイト」で検索すれば下記のように関連する情報が見つかると思います)

【【目的別】WordPressで会員制サイト構築できるプラグイン3選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト】
http://www.sejuku.net/blog/4702

【WordPressで会員制サイトを作成できる便利なプラグイン5選 | TechAcademyマガジン】
https://techacademy.jp/magazine/6702

【WordPressで会員制サイトをつくる - NAVER まとめ】
https://matome.naver.jp/odai/2134664386040946701

投稿2017/07/25 16:50

kei344

総合スコア69407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問