Giter VIP home page Giter VIP logo

php-mysql's Introduction

prototype

PHPを用いた試作品です。故郷の鹿児島の観光をテーマに作成してみました。
開発環境にコピーして、下のDbManager.phpの説明のところから順に実行するとMySQL上にテーブルとデータの挿入をおこなえます。
作品には一番下の作品掲載のurlよりアクセスしてください。       ##開発環境 php 5.3.3
MySQL 5.6.35 ###signup.php 新規ユーザー登録を行います。ユーザー名とパスワードを入力して、パスワードはpassword_hash()を用いてパスワードハッシュを作成してDBのuserテーブルに挿入してます。

password_hash($password, PASSWORD_DEFAULT)

###login.php, logout.php, password.php login.php
signup.phpで作成したパスワードハッシュとユーザーが入力したパスワードをpassword_verify()を用いて認証します。

password_verify($password, $row['password']) //$passwordはユーザーの入力、$row['password']はDBより取り出したハッシュパスワードです。

認証された場合は入力したユーザー名をsession変数に格納します。

$_SESSION['USERID'] = $userid;

logout.php
login.phpで発行したsession変数を破棄します

session_destroy();

password.php
password_hash()とpassword_verify()はphp5.5.0以降の関数なのでphp5.5.0以前の環境においても使用できるようにしたpassword_compatライブラリのpassword.phpを使用しています。     ###top.php メインの画面になります。session変数を用いてゲストでログインしたときとID登録をしてログインしたときでは使える機能に差ができるようにしています。

ログインレベル   表示件数          機能                 その他
個別ID         全て             ジャンル検索         リンク付き 画像ホバー時に詳細説明文がでる
ゲスト         10件             無し                 無し    

ユーザーがゲスト、もしくは登録IDからログインせずに、urlを直打ちしたときにはログイン画面に飛ぶようにしている。

//$_SESSION['USERID']に値が無ければ(ログインしていなければ)login.phpに返す
if(!isset($_SESSION['USERID'])){
  header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/login.php");
}

###DbManager.php PDOを用いてMySQLと接続しています。

//dbName, userName, passwordを自分の環境に合わせて変更してください
$dsn = 'mysql:dbname=dbName; host=localhost; charset=utf8';
$usr = 'userName';
$passwd = 'password';

###getcsv.php, createtable.php, insert.php getcsv.php
鹿児島県の観光情報のオープンデータ(csv形式)を読み込み、phpで連想配列として取り込む処理を書いてます。
createtable.php
新規ユーザー登録時のテーブルやオープンデータを挿入するためのテーブルを生成するためのqueryを記述しています。
開発環境で試してみるときには、ファイル内に「create文を実行するときのみ外す」という部分のコメントアウトタグを外し、直接このファイルをurlに打ち込みページを開くとDBにテーブルを作成してくれます。
insert.php
get.csvで連想配列にしたデータを用いて、作成したテーブルにデータを挿入します。createtable.php同様、データの挿入時にはコメントアウトタグを外してurlに直打ちするとデータをDBに取り込みます。     ###getdata.php     DBからデータを取り出すqueryを書くだけのファイル ###作品掲載 urlをクリックし新規ユーザー登録から行ってください。

php-mysql's People

Contributors

mergitto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.