PHPで訪問者を登録し履歴照会する
ConoHA環境にて
サイト下にディレクトリーを作成 サイト/xxxxx
ndex.php,regist.php,view.php,del.phpを作成
index.php 訪問者の登録 ipアドレスを取得し、日時を登録します。
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
header('X-FRAME-OPTIONS: SAMEORIGIN');
session_start();
if(isset($_POST['datapost'])){
header('Location: regist.php');
}
?>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP_訪問者の登録</title>
</head>
<body>
<?php $_ip = $_SERVER['REMOTE_ADDR']; ?>
<?php $_dt = date('Y-m-d H:i:s'); ?>
<h1>訪問者の登録</h1>
訪問者: [ <?php echo $_ip; ?> ]<br/>
訪問日時:[ <?php echo $_dt; ?> ]
<?php $_SESSION['ip'] = $_ip; $_SESSION['dt'] = $_dt; ?>
</p>登録ボタンを押下</p>
<form action="" method="post">
<input type="submit" name="datapost" value=" 登 録 ">
</form>
<a href="view.php">履歴照会</a>
</p>消去ボタンを押下</p>
<form action="" method="post">
<input type="submit" name="datapost_del" value=" 履歴消去 ">
</form>
</body>
</html>
regist.php 取得したipアドレスと日時を wp_homonsha へ登録します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP_APP</title>
</head>
<body>
<a href="index.php">[ 訪問者の登録へ ]</a>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
header('X-FRAME-OPTIONS: SAMEORIGIN');
session_start();
$_ip = $_SESSION['ip'];
$_dt = $_SESSION['dt'];
$_ms = "";
try{
$pdo = new PDO('mysql:host=aaa.bbb.ccc.ddd;dbname=database_name;charset=utf8','user_id','password');
$stmt = $pdo->prepare('INSERT INTO wp_homonsha (ip, dt) VALUES(:ip, :dt)');
$stmt->bindValue(':ip',$_ip);
$stmt->bindValue(':dt',$_dt);
$stmt->execute();
$_ms = " <ー登録しました!";
} catch (PDOException $e) {
echo $e->getMessage();
$_ms = " <-登録できません!";
} finally {
echo $_ms;
$pdo = null;
}
?>
</body>
</html>
view.php 取得したipアドレスで選択し履歴照会します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP_APP</title>
</head>
<body>
<h1>履歴照会</h1>
<a href="index.php">訪問者の登録へ</a>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
header('X-FRAME-OPTIONS: SAMEORIGIN');
session_start();
$_ip = $_SESSION['ip'];//ユーザーから受け取った値を変数に入れる
$_dt = $_SESSION['dt'];//ユーザーから受け取った値を変数に入れる
try {
$pdo = new PDO('mysql:host=host=aaa.bbb.ccc.ddd;dbname=database_name;charset=utf8','user_id','password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $Exception) {
die('error con'.$Exception -> getMessage());
}
try{
$sql = " SELECT * FROM wp_homonsha";
$sql .= " WHERE ip="."'".$_ip."'";
$sql .= " ORDER BY dt DESC LIMIT 31";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row_count = $stmt->rowCount();
foreach ($stmt as $row) {
$rows[] = $row;
}
$pdo = null;
}catch(PDOException $Exception){
die('error sql:' .$Exception->getMessage());
}
?>
<table border='1' width="310">
<tr><td align="center" bgcolor="pink">訪 問 日 時</td></tr>
<?php
if ($row_count >= 1) {
foreach($rows as $row){
?>
<tr>
<td align="center" bgcolor="white"><?php echo htmlspecialchars($row['dt']); ?></td>
</tr>
<?php
}
}
?>
</body>
</html>
del.php 取得したipアドレスで履歴から消去します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP_APP</title>
</head>
<body>
<a href="index.php">[ 訪問者の登録へ ]</a>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
header('X-FRAME-OPTIONS: SAMEORIGIN');
session_start();
$_ip = $_SESSION['ip'];
$_dt = $_SESSION['dt'];
$_ms = "";
try{
$pdo = new PDO('mysql:host=aaa.bbb.ccc.ddd;dbname=database_name;charset=utf8','user_id','password');
$sql = "DELETE FROM wp_homonsha WHERE ip="."'".$_ip."'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$_ms = " <ー消去しました!";
} catch (PDOException $e) {
echo $e->getMessage();
$_ms = " <-消去できません!";
} finally {
echo $_ms;
$pdo = null;
}
?>
</body>
</html>