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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

3686閲覧

「こんにちは、●●さん」

b1ackc0ffee

総合スコア267

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/07/14 09:05

楽天や、yahooみたいにメールアドレスと、パスワードを入れたら、
「こんにちは、●●さん」みたいに、●●の部分に自分の名前が文字で入るじゃないですか。
ログイン画面で渡しているのは、メールアドレスと、パスワードなのにそれに関連する●●を表示させるのってどうしたら良いのでしょうか。

現在のコードは全て
https://teratail.com/questions/12552
に貼っています。

ログインの際にメールアドレスを用意した変数に入れて、SELECTでDBから取得する際の条件式で、一致させるのでしょうか?

途中まで書いてみました。
![イメージ説明]WIDTH:597

わかりづらくてすみませんが宜しくお願い致します。
![イメージ説明]WIDTH:553

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

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

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

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

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

guest

回答2

0

ログイン成功時にユーザ情報(account)をセッションに保存して、それを基に表示するのが一般的かと思います。

投稿2015/07/14 09:44

icham

総合スコア559

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

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

b1ackc0ffee

2015/07/15 05:12

回答ありがとうございます^^ authorization.php の認証プログラム ------------------------------ <?php require_once 'Auth/Auth.php'; // ↓ログインページを表示させる関数 function login(){ require_once 'login.php'; } // ↓認証を実行する // ↓何で認証するかを指定 $params=array( 'dsn' => 'mysqli://newbbsuser:newbbspass@localhost/newbbs', 'table' => 'account', 'usernamecol' => 'mailaddress', 'passwordcol' => 'pwd' 'db_fields' => '*'); // ↓認証済みか判定し、していなければログインページに // 決まった値 => DBに合わせる // 後で使うstartのために、何をスタートさせるか、それに必要な情報をインスタンス化 $auth = new Auth('MDB2', $params, 'login'); // new Auth(ドライバー名, 認証に必要なパラメータ, ログイン関数); $auth->start(); // ↓未認証の場合は処理を終了 if (!$auth->checkAuth()) { print("※メールアドレスもしくはパスワードが間違っています。"); } ------------------------------ で、ログイン成功後は、トップページに遷移するようにしているのですが、 どこで、セッション保存すれば宜しいでしょうか。 宜しくお願い致します。
icham

2015/07/15 07:04 編集

認証がOKの時($auth->checkAuth()がtrue) if (!$auth->checkAuth()) { }else{ //ここでsessionに書込む $_SESSION['user'] = ユーザ情報 } ------ frameset.php側で$_SESSIONからユーザ情報を取り出して $user = $_SESSION['user'] ; htmlで <?php print $user['ユーザ名'];?> とすれば良いのではないでしょうか? 知っていれば余計なお世話ですが sessionを使うには、session_start()をする必要があります。 http://php.net/manual/ja/session.examples.basic.php ログアウト時にsessionを削除する事もお忘れなく。
b1ackc0ffee

2015/07/15 07:43

icham様 ご返信有難うございます。 以前、 if (!$auth->checkAuth()) { print("※メールアドレスもしくはパスワードが間違っています。"); } }else{ $displayName = $auth->getname(); print("$displayName"."さん、こんにちは。<br>"); print("<a href=\"logout.php\">ログアウトする</a>"); } という風に書いていて、function login(){ require_once 'login.php'; } とどちらが優先されるかを試したりしていたのですが、後者だけが実行されたので、 else{}はスルーされるのかと思っていました。 $_SESSION['user'] = ユーザ情報の、 user部分は何に当たるのでしょうか? このまま書いてしまったらだめですよね?素人の質問ですみません。 その細かい配慮が、心に沁みます。有難うございます。 ・manualにセッションを手動で開始するには session_start() 関数を使います。 とありますが、手動以外の方法ってあるのでしょうか? ------------------------------ <?php require_once 'Auth/Auth.php'; // ↓ログインページを表示させる関数 session_start(); function login(){ require_once 'login.php'; } // ↓認証を実行する // ↓何で認証するかを指定 $params=array( 'dsn' => 'mysqli://newbbsuser:newbbspass@localhost/newbbs', 'table' => 'account', 'usernamecol' => 'mailaddress', 'passwordcol' => 'pwd', 'db_fields' => '*' ); // ↓認証済みか判定し、していなければログインページに // 決まった値 => DBに合わせる // 後で使うstartのために、何をスタートさせるか、それに必要な情報をインスタンス化 $auth = new Auth('MDB2', $params, 'login'); // new Auth(ドライバー名, 認証に必要なパラメータ, ログイン関数); $auth->start(); // ↓未認証の場合は処理を終了 if (!$auth->checkAuth()) { print("※メールアドレスもしくはパスワードが間違っています。"); } }else{ $_SESSION[] ------------------------------ 宜しくお願い致します。
icham

2015/07/15 08:34

elseが処理される条件であればelseがスルーされることはありません。 ”後者だけ”というのがlogin関数を指すのでしたら認証NGだっただけなのではないですか? $auth = new Auth('MDB2', $params, 'login'); ここの第3引数で指定してるのが、認証NGの時に実行する関数名となるので elseに入る前に”$auth = new Auth('MDB2', $params, 'login');”の処理で未認証となり ログインに遷移しているのだと思います。 ※Authパッケージ?は使ったことないので違っていたら、ごめんなさい。 $_SESSION['user'] = ユーザ情報 に関しては $_SESSION['username'] = $auth->getAuthData("name"); とかになると思います。 require_onceで 'frameset.php'を読み込んでるので 単発での描画で名前を表示でしたら$_SESSIONを介する必要もないですね。 リロードした後も名前を表示したいのでしたらSESSIONを使ってください。
guest

0

このライブラリだとgetAuthDataを使ってほかのカラムのデータも取得できるみたいです。

http://www.phpbook.jp/pear/pear_auth/index9.html

投稿2015/07/14 11:42

tempakyousuke

総合スコア155

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

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

tempakyousuke

2015/07/14 11:46

多分これでいいかと こんにちは、<?php echo htmlspecialchars(auth->getAuthData("name")); ?>さん
b1ackc0ffee

2015/07/15 05:09

リンクとアドバイス有難うございます★ <?php if ($auth->getAuth()){ print($auth->name); $name = $auth->getAuthData("name"); print("こんにちは"); print("$name); print("さん"); } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>NEW掲示板</title> </head> <body> <?php echo('<a href="logout.php" target="_top">ログアウトする</a>'); echo("こんにちは、"."$displayName"."さん。"); echo htmlspecialchars(auth->getAuthData("name")); ?> <h3>ようこそNEW掲示板へ</h3> <form method="POST" action="guest_write.php" target="frame2"> <div id="container"> <label for="name">名前:<label> <input type="text" id="name" name="name" size="20" maxlength="30" /> </div> <div id="container"> <label for="body">本文:</label> <input type="text" id="body" name="body" size="70" maxlength="255" /> </div> <input type="submit" value="送信" /> </form> </body> </html> いろいろ試して、上記のように書きましたが、 Parse error: syntax error, unexpected ''db_fields'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in C:\xampp\htdocs\bbs\new_bbs\authorization.php on line 15 というエラーが出てしまいました。 認証用のプログラムで、認証が通ったら違うページにいくように、actionで設定しているのですが、違うページでも、 $params=array( 'dsn' => 'mysqli://newbbsuser:newbbspass@localhost/newbbs', 'table' => 'account', 'usernamecol' => 'mailaddress', 'passwordcol' => 'pwd' 'db_fields' => '*'); と書かないといけないでしょうか。 素人の質問で申し訳ありません。 宜しくお願い致します。
tempakyousuke

2015/07/15 10:38

「Parse error: syntax error,」 これは構文エラーです。 引数の型が違うとか、定義されていない変数が使われているとか、そういうエラーの以前に、コードの書き方が間違っているときにおこります。(カッコが足りなかったり、逆に多く書いたり、セミコロンをちゃんと書いていなかったり、プログラムとして解釈できない部分があるときに起こります) 今回は「'passwordcol' => 'pwd'」のあとに「,」を書き忘れているので、エラーが起きています。 英語が得意でなくても「C:\xampp\htdocs\bbs\new_bbs\authorization.php on line 15 on line 15」でエラーが出ている行がauthorization.phpの15行目であることぐらいは分かると思うので、エラーが出たら指定の行周辺を調べてください。 あと私が書いた<?php echo htmlspecialchars(auth->getAuthData("name")); ?>さん はauthの前に$を書き忘れているので、気をつけてください。 $params=array( 'dsn' => 'mysqli://newbbsuser:newbbspass@localhost/newbbs', 'table' => 'account', 'usernamecol' => 'mailaddress', 'passwordcol' => 'pwd' 'db_fields' => '*'); が他のページに必要かですが、このライブラリは使ったことがないので確実ではありませんが、少なくとも、テーブル内のデータとかを$authgetAuthData("name")等で使う必要がある以上はその設定に'db_fields' => '*'が必要なので、どのページでも必要な気がします。 ログイン情報はセッションで持っているはずなので、無理やりやれば、書く必要はなくなるかもしれませんが、別ファイルに保存して呼び出した方がいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問