PHP+MySQL でユーザ情報表示

PHP+MySQL でユーザ情報表示
#16 ユーザー情報を表示しよう
http://dotinstall.com/lessons/sns_php_v2/9616
を参考に
ログインしているユーザ情報の表示をする
編集するファイルは index.php
まずは php部分の編集
セッションに me が入っているので
$me =$_SESSION[‘me’];
として $me に格納
次に、どのユーザでログインしているか表示するので
HTML部分に
Logged in as <?php echo h($me[‘name’]); ?> (<?php echo h($me[‘email’]); ?>)
としてDBから
ユーザ名とメールアドレスを取得して表示
また、ログアウト機能も作っておく
<a href=”logout.php”>log out</a>
ここまでが個人ユーザ情報の取得と表示
ユーザ一覧を取得して表示するには
PHP部分で
$dbh = connectDb();
$users = array();
$sql =”select * from users order by created desc”;
foreach($dbh->query($sql) as $row){
array_push($users,$row);
}
これで、次にHTML部分にリスト表示するための準備
<h1>ユーザ一覧</h1>
の下に
<ul>
<?php foreach($users as $user) : ?>
<li></li>
<?php endforeach; ?>
<ul>
とする
次に
一覧を表示したいので
<li></li>
の間に
<php echo h($user[‘name’]); ?>
とする
さらに各ユーザ情報を作成して
そこにリンクさせるなら
<a href=”profile.php?id=<?php echo h($user[‘id’]); ?>”><php echo h($user[‘name’]); ?></a>
というようにする
これで、ユーザ一覧に名前がでればOK
そして、profile.php に関しては index.php に近いソースなので
cp index.php profile.php
でコピーして編集する
プロフィール情報なので、一覧のところのSQLを変える
$sql =”select * from users where id = :id limit 1″;
として
編な値が入らないのように
(int )というように型を指定しておく
$stmt = $dbh->execute(array(“:id”=>$_GET[‘id’]));
とすれば、現在ログインしているユーザIDが取得できる
$user = $stmt->fetch();
としてSQLの実行結果を $user へ格納
そして
if(!$user){
echo “no such user !”;
exit;
}
とすれば、ユーザが検出できないときには
エラーメッセージがでるようになる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です