<?php
/**
* 削除処理
*/
// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();
// 削除するid番号をGETメソットで受信
if(isset($_GET['id'])){
$personid = $_GET['id'];
}
// レコード削除-DELETEステートメント
$sql = 'DELETE FROM image_table WHERE id=:id';
try {
// エラー処理モード設定
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
// トランザクションの開始
$pdo->beginTransaction();
$stmt= $pdo->prepare($sql);
$stmt->bindParam( ':id',$personid,PDO::PARAM_INT);
$stmt->execute();
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollback(); // エラーなら実行しない
print "削除に失敗しました。" . $e->getMessage();
}
$pdo = null;
// 全データ再表示
require_once("show_All.php");
?>
<?php
/**
* 更新フォーム作成
*/
// セッション開始
session_start();
// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();
// 更新のid番号をGETメソットで受信
if(isset($_GET['id'])) {
$personId = $_GET['id'];
// 更新レコード取得-SELECTステートメント
$sql = 'SELECT * FROM image_table WHERE id = :id';
$row = ''; $stmt = null;
try {
// エラー処理モード設定
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', $personId, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC); // レコード一行取得(カラムを検索)
$person_id = $row['id'];
$upimgname = $row['imgName'];
$_SESSION['upimage_type'] = $row['imgType']; // jpeg[,png,gif]
$_SESSION['upimgcontent'] = $row['imgContent'];
$comment = $row['imgComment'];
$created = $row['created_at'];
$updated = $row['updated_at'];
} catch (PDOException $e) {
print 'DBエラー'. $e->getMessage();
}
} else {
return;
}
$pdo = null;
?>
<!--// HTML -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>画像データベース:更新フォーム</title>
<script src="js/update.js"></script>
<script src="js/uprotate.js"></script>
</head>
<body style="background:#edf5ff">
<h1>更新</h1>
<h3 id="reaction"> </h3>
<ul style="position:relative;left:-40px;display:flex;list-style:none;">
<li>
<form id="update_form">
<table>
<tr><td>番号 :</td><td><input type="text" name="id" value="<?= $person_id ?>" readonly style="background:#eaeaea;"></td></tr>
<tr><td>画像名 :</td><td><input type="text" name="imgname" value="<?= $upimgname ?>" readonly style="background:#eaeaea;"></td></tr>
<tr valign="top"><td>コメント:</td><td><textarea name='comment' cols="30" rows="3"><?= $comment ?></textarea></td></tr>
<tr><td>登録日時:</td><td><input type='text' value='<?= $created ?>' readonly style="background:#eaeaea;"></td></tr>
<tr><td>更新日時:</td><td><input type='text' value='<?= $updated ?>' readonly style="background:#eaeaea;"></td></tr>
</table>
</form>
<br />
<a href="" onclick="javascript:updateform('update_form'); return false;">更新</a>
<a href="show_All.php">戻る</a>
<br /></br /></br />
<a href="show_All.php">全データ表示</a><br />
<a href="insert.php">登録</a><br />
<a href="index.php">トップページ</a>
</li>
<li> </li>
<!--// 画像回転フォーム-->
<li>
<form id="uprotate_form">
<span>画像回転:</span>
<span><input type="button" name='l_angle' value="左へ90度回転" onclick="upimgrotate('uprotate_form','l_rotate')" title="画像を左へ90度回転します。"></span>
<span><input type="button" name='r_angle' value="右へ90度回転" onclick="upimgrotate('uprotate_form','r_rotate')" title="画像を右へ90度回転します。"></span>
</form>
<!--// 最初はrequire関数で、以後は非同期通信経由で画像表示。-->
<div id="uprotateimageshow"><?php require_once("upimagerotate.php"); ?></div>
<div><?php print $upimgname; ?></div>
</li>
</ul>
</body>
</html>
<?php
/**
* 画像回転操作による画像出力/表示
*/
// セッション開始
@session_start();
// 回転角度の初期値
$uprotate = 0;
// 回転角度をPOSTメソットで受け取る
if(isset($_POST['uprotate'])){
$uprotate = $_POST['uprotate'];
}
// 画像ストリームから新規イメージを作成
$upimgcontent = imagecreatefromstring($_SESSION['upimgcontent']);
// 画像を回転
$uprotateimgcontent = imagerotate($upimgcontent, $uprotate, 0);
// バッファリング開始
ob_start();
if ($_SESSION['upimage_type'] == 'image/jpeg') {
// 画像ストリームを出力
imagejpeg($uprotateimgcontent, null, 100);
} elseif ($_SESSION['upimage_type'] == 'image/png') {
imagepng($uprotateimgcontent, null, 9);
} elseif ($_SESSION['upimage_type'] == 'image/gif') {
imagegif($uprotateimgcontent, null);
}
// バッファ内容を取得してセッション変数に代入
$_SESSION['upimgcontent'] = ob_get_clean();
// メモリを開放
imagedestroy($upimgcontent);
imagedestroy($uprotateimgcontent);
?>
<!--// HTML -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>画像データベース:更新画像回転表示</title>
</head>
<body style="background:#edf5ff">
<!--// date関数のデータを使って、サーバーから最新の画像を取得/表示。-->
<div><img src="uprotateimageshow.php?date=<?php print date("YmdHis"); ?>" alt="upimage" /></div>
</body>
</html>
<?php
/**
* オリジナル画像表示
*/
// セッション開始
session_start();
header('content-type: '.$_SESSION['upimage_type']);
print $_SESSION['upimgcontent'];
exit;
?>
<?php
/**
* 更新処理
*/
// セッション開始
session_start();
// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();
// id番号をPOSTで受信
if(isset($_POST['id'])){
$personid = $_POST['id'];
}
// コメントをPOSTで受信
if(isset($_POST['comment'])){
$comment = htmlspecialchars($_POST['comment'], ENT_QUOTES);
}
// タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');
// 24時表示
$updated = date("Y-m-d G:i:s");
$result = '';
// 更新-UPDATEステートメント
$sql = 'UPDATE image_table SET imgContent=:imgContent, imgComment=:imgComment, updated_at=:updated_at WHERE id=:id';
try {
// エラー処理モード設定
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
// トランザクションの開始
$pdo->beginTransaction();
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id',$personid,PDO::PARAM_INT);
$stmt->bindParam(':imgContent',$_SESSION['upimgcontent'],PDO::PARAM_STR); // セッション変数から更新
$stmt->bindParam(':imgComment',$comment,PDO::PARAM_STR);
$stmt->bindParam(':updated_at',$updated,PDO::PARAM_STR);
$stmt->execute();
$pdo->commit();
print $result = '<span style="color:#0000FF">更新しました。</span>';
} catch (PDOException $e) {
$pdo->rollback(); // エラーなら何もしないで戻る
print '更新エラー'.$e->getMessage();
}
$pdo = null;
?>