広告 未分類

ロリポップレンタルサーバーで、データベースを使った、新着情報システムをPHPを使って作成した時の備忘録 

独学で学習して、自社の新着情報の仕組みを作った時のことを備忘録として残しておきます。利用できるところがあれば参考にして使ってみてください。

仕様

・全従業員が店舗での商品入荷情報をWEBにアップできる仕組みをつくろうと考えましたので、なるべく誰でもできるようにしました。
・FTPソフトや、レンタルサーバーの管理画面にログインしなくても、新着情報を更新できるようにする

100

11
管理画面はベーシック認証でログインできる仕組みにしました。
htaccessを使っています。

上記画像にID、パスワードを入力して管理画面にログインすることができます。

12
こちらが管理画面です。

管理画面のコード


<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="robots" content="noindex,nofollow,noarchive" />
<meta charset="utf-8">

<style type="text/css">
<!--
div#container {
	
	width: 950px;
	margin-right: auto;
	margin-left: auto;
	padding-top: 20px;
	padding-right: 0px;
	padding-bottom: 1px;
	padding-left: 0px;
	position: relative;
	border-width: 1px;
	border-style: none;
	border-color: #E0E0E0;
}

-->
</style>

<title>テンプレート</title>
</head>
<body>
<div id="container">

<a href="http://takarajima-re.com/XXXXX/XXXXXX.php">簡単なお知らせ管理ページへ移動</a>

<p>1.画像のアップロード</p>
<form action="../upload.php" method="post" enctype="multipart/form-data">
  ファイル:<br />
  <input type="file" name="upfile" size="30" /><br />
  <br />
  <input type="submit" value="アップロード" />
</form>

--------------------------------------------------------------------------------------------------------------------------------------------------------
<p>2.新着情報ファイル生成</p>

<form action="../sinnkiji/makefile.php" method="POST">
ページタイトル:<br />
<input type="text" name="pagetitle" size="70" value="リサイクルショップ"/><br />
キーワード:<br />
<input type="text" name="keyword" size="100" value="上尾市,さいたま市,出張買取,買取,上尾市,指扇,西区,買取,リサイクルショップ"/><br />
ディスクリプション:<br />
<textarea name="dis" rows="3" cols="100"/>リサイクルショップ宝島です。</textarea><br />
画像URL:アップした画像ファイルは拡張子まで入れてください<br />
<input type="text" name="gaurl" size="60"value="http://takarajima-re.com/kijiimg/"><br />
サブタイトル:<br />
<input type="text" name="sabutitle" size="50" value="リサイクルショップ "/><br />
本文<br />
  <textarea name="honbun" rows="6" cols="100" >リサイクルショップです。(<?php
print date('Y年m月d日');
?>更新)</textarea><br />
画像下本文(画像の下にここに記入した文字が入ります)<br />
  <textarea name="honbun1" rows="6" cols="100" >※店舗での販売のみです。ネットでの販売はしておりません。
売り切れの場合もございますので、お気軽にお問い合わせください。</textarea><br />

  <input type="submit" value="送信" />
</form>
-----------------------------------------------------------------------------------------------------------------------------------------------------------
<p>3.トップページ情報作成</p>
<form action="insert.php" method="post"> 
 管理番号:<br />  
<input type="text" name="id" size="10" value="" /><br />  
日付:<br /> 
<input type="text" name="date" size="30" value="<?php
print date('Y年m月d日');
?>" /><br /> 
店名:<br /> 
<select name="id_tennpo" size="1">
<option value="東京支店">東京支店</option>
<option value="神奈川店">神奈川店</option>
<option value="埼玉店">埼玉店</option>
</select><br />
コメント:<br />  
<input type="text" name="komennto" size="100" value=""><br />
画像アドレス:<br />  
<input type="text" name="gazou_link" size="80" value="http://takarajima-re.com/XXXXXXX/"><br />
新着情報リンク先アドレス:<br />  
<input type="text" name="url_link" size="70" value="http://takarajima-re.com/XXXXXX/"><br />
<br />
<input type="submit" value="登録する" /></form>
------------------------------------------------------------------------------------------------------------------------------------------------------------
<table border="1">
トップページ新着情報管理テーブル※下記情報がTOPページに反映されます
 <tr><th>管理番号</th><th>日付</th><th>店名</th><th>コメント</th><th>画像アドレス</th><th>新着リンク先</th><th>操作</th></tr>
 <?php



   $pdo = new PDO("mysql:dbname=LAA0429674-XXXXXXXXXXXXXXXXXX", "データベース名が入っている", "パスワード");
   $pdo->query('SET NAMES utf8');        //この1行を入れないと文字化けをおこします場合があります。
   $st = $pdo->query("SELECT *  FROM sin ORDER BY id DESC");
   while ($row = $st->fetch()) {
     $id = htmlspecialchars($row['id']);
     $date = htmlspecialchars($row['date']);
     $id_tennpo = htmlspecialchars($row['id_tennpo']);
     $komennto = htmlspecialchars($row['komennto']);
     $gazou_link  = htmlspecialchars($row['gazou_link']);
     $url_link  = htmlspecialchars($row['url_link']);




     echo "<tr><td>$id</td><td>$date</td><td>$id_tennpo</td><td>$komennto</td><td>$gazou_link</td><td>$url_link</td><td><a href='sin_update.php?name=$id'>修正</a>
<a href='sin_delete.php?name=$id' onclick=\"return confirm('削除してよろしいですか?')\">削除</a></td></tr>";
   }

 ?>
 </table> 
</div>

</body>
</html>


管理画面を上から見ていくと34行目から40行目までは、新着情報の画像をアップロードする為のコードです。
「form action="../upload.php"」このコードでupload.phpに移行します。
下記にコードを記載しています。OKならアップロードしました。
アップロードに失敗した場合は、ファイルをアップロードできません又はファイルが選択されていませんのメッセージがでます。

画像をアップロードしたあとには、管理画面に戻るのリンクから戻れるようにしました。
※アップロードした画像は、サムネイル画像、紹介したい商品の画像両方に設定されます。

upload.phpのコード



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sample</title>
</head>
<body>
<p><?php

if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
  if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "アップロード先のフォルダを指定/" . $_FILES["upfile"]["name"])) {
    chmod("kijiimg/" . $_FILES["upfile"]["name"], 0644);
    echo $_FILES["upfile"]["name"] . "をアップロードしました。";
  } else {
    echo "ファイルをアップロードできません。";
  }
} else {
  echo "ファイルが選択されていません。";
}

?></p>
<a href="http://takarajima-re.com/XXXXXXX/admin.php">管理画面に戻る</a>
</body>
</html>

43行目から64行目は、新着情報として、新しいページを作成するためのコードです。

-未分類