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