忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

応用(23) intra mail 受信トレイ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

応用(23) intra mail 受信トレイ

ではSELECT文を
 
$sql = "SELECT subject,sendtime,m_name FROM mails,members WHERE m_from=members.id AND m_to=:m_to ORDER BY sendtime DESC";
 
①外からやってきたものなので、m_to=$_SESSION[id]とかにはしない。
できるけどしない。プレースホルダを使いましょう。 
②文字として宣言しているので""でSELECT文を囲いましょう。
逆に言えばprepare()のかっこのなかにだらだらと書いてもいいんだけど、
長いのでいったん文字として変数に格納している。
だから""で全体を囲う必要がある。

 

出力時にはループの必要あり

3項目を書き出す
件名/送信者名/日時
 
--->mypage.php
 
<?php
session_start();
if(empty($_SESSION["login"])){
 header("Location: login.php");
 exit();
}
require_once("config.php");
$sql = "SELECT subject,sendtime,m_name FROM mails,members WHERE m_from=members.id AND m_to=:m_to ORDER BY sendtime DESC";
$stmt=$pdo->prepare($sql);
$stmt->bindValue("m_to",$_SESSION["id"],PDO::PARAM_INT);
$stmt->execute();
?>
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>マイページ</title>
 <link rel="stylesheet" href="css/style.css">
</head>
<body>
 <div id="container">
  <h1><?php echo htmlspecialchars($_SESSION["m_name"],ENT_QUOTES); ?>の受信トレイ</h1>
  
  <div id="m_list">
   <table>
    <tr>
     <th>件名</th><th>送信者名</th><th>送信日時</th>
    </tr>
    <?php while($row=$stmt->fetch(PDO::FETCH_ASSOC)): ?>
    <tr>
     <td><?php echo htmlspecialchars($row["subject"],ENT_QUOTES); ?></td>
     <td><?php echo htmlspecialchars($row["m_name"],ENT_QUOTES); ?></td>
     <td><?php echo $row["sendtime"]; ?></td>//これはサニタイズ不要なので
    </tr>
    <?php endwhile; ?>
    
   </table>
  </div>
  
 </div>
 <script src="js/script.js"></script>
</body>
</html>
 
  
次回の授業につづく。
  

公開領域にこれ設置するのもできる。
固定IPにしてそこから以外のリクエストを排除して
イントラ状態に(たぶん?)することができる
もっともそうするならファイルがめちゃ増えるので、それならクラスにするらしい。
メソッドだけを呼び出すようにするといいらしい。
 
パーシャルファイル
部分ファイルのこと
全体としてはファイル部分を多くせず共有部分を多くする。テンプレートの分割。 
 

 
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R