2010/8/24 久米
1例としてページリンク文字列を生成する関数を下記に示す。
$n=pageLink("p", $dp, $PAGE_COUNT, $cnt);
などと使用し、$nをpirntすればよい。
////////ページのリンク生成関数///////// //$displayPageName:現在のページをGETで飛ばすときのパラメタ名 //$displayPage:現在のページ $pageCount:1ページの件数 $totalCount:全件数 //返り値:ページリンクの文字列 function pageLink($displayPageName, $displayPage, $pageCount, $totalCount){ $totalPage=ceil($totalCount/$pageCount);//全ページ数 小数点切り上げ if($totalPage<=1)return ""; $url=basename($_SERVER['PHP_SELF']); $pl=""; for($i=1; $i<=$totalPage; $i++){ if($i==$displayPage){ $pl.="<b>{$i}</b> "; }else{ $pl.="<a href=\"{$url}?{$displayPageName}={$i}\">{$i}</a> "; } } return $pl; } |
function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } |
login.php
<?php //error_reporting(0); session_start(); if(isset($_SESSION['login'])){ if($_SESSION['login']=='OK'){ header("Location: submit.php"); } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>login</title> </head> <body> <h1>掲示板 投稿ログイン</h1> <form method="post" name="f" action="login2.php"> パスワード:<input type="password" name="password"> <input type="submit" name="sub" value="ログイン"> </form> </body> </html> |
login2.php
<?php //error_reporting(0); session_start(); if(!isset($_POST['password'])) exit("アクセスエラーです。"); if($_POST['password']=='777'){ $_SESSION['login']='OK'; header("Location: submit.php"); exit(); }else{ $_SESSION['login']='NG'; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>login2</title> </head> <body> <h1>掲示板 投稿ログイン</h1> <p>パスワードが違います。</p> <p><a href="login.php">戻る</a> </p> </body> </html> |
submit.phpの先頭に次のスクリプトを追加
<?php //error_reporting(0); session_start(); if(!isset($_SESSION['login'])){ header("Location: login.php"); exit(); } if($_SESSION['login']!='OK'){ header("Location: login.php"); exit(); } ?> |
会員用 テーブル作成 |
CREATE TABLE users ( |
パスワードを 暗号化して 挿入 |
INSERT INTO users (name, password) VALUES ('kume', ENCODE('777','seed')) |
パスワードを 取得 |
SELECT name, DECODE(password, 'seed') pass FROM users |
名前とパスワードが 一致しているか |
SELECT count(*) cnt FROM users WHERE name='kume' AND password=ENCODE('777', 'seed') |
参)php 暗号化関数
MD5:md5($pass)
SHA256:hash('sha256', $pass)
$pass:test
MD5:098f6bcd4621d373cade4e832627b4f6
SHA256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08