ブログ作成 2
3
<kiji テーブル > id integer unique primary key not null auto_increment koshinbi integer title varchar(100) honbun text category_id interger <comment テーブル >( 以下前と同じ ) id kiji_id koshinbi name com_honbun <category テーブル > d category_name 4
5 新規記事作成
6
7 記事作成確認 extract($_post); # extract($_post); $title = $_POST['title']; $honbun = $_POST['honbun']; if ($_POST['honbun'] == "" or $_POST['title'] == "") { die(" <a href=\"#\"
8 onclick=\"history.back(); return false;\"> </a>"); koshinbi $koshinbi = time(); $hiduke = date("y n j G:i:s", $koshinbi); time() date koshinbi date $hiduke http://php.net/manual/ja/function.date.php HTML table <table> <tr> <th> <td> echo $title;</td> <td> echo nl2br($honbun);</td> <td> echo $hiduke;</td> </table> form shinki_touroku.php <input type="text"> type="hidden" <form> shinki_touroku.php
<input type="hidden" name="title" value=" echo $title;" /> honbunecho $honbun koshinbi <p class="button"> <input type="submit" value="" /> <input type="button" onclick="history.back();" value="" </p> </form> $db = new mysqli(,,, ); if ($db->connect_error) { die(" "); # localhost root''( ) blog2018 9 記事登録 shinki.touroku.php?php SQL $title varchar text <h2></h2> ; $sql = "insert into kiji (title, honbun, koshinbi) values ('$title', '$honbun', $koshinbi)"; # insert の sql 文でデータを登録
10 $result = $db->query($sql); # SQL $db() if ($result == false) { print "<p> </p>"; else { print "<p>{$title </p>"; $db->close(); # <p>[<a href="kiji_itiran.php"> </a>]</p> 記事一覧 () kiji_itiran.php table SQL while ($data = $result->fetch_assoc()) <table> <tr><td></td><td></td><td> </td><td></td></tr> $sql = "select * from kiji order by koshinbi desc"; # $result = $db->query($sql); while ($data = $result->fetch_assoc()) { extract($data); $hiduke = date("y n j ", $koshinbi); print "<tr><td>$hiduke</td><td><a href=\"kiji_shosai.php?id=$id\">$title</a>< /td><td></td><td></td></tr>";
</table> # select 1, 2,... from where order by desc; # *() order by desc asc kiji_shosai.php p.honbun { border : 1px solid black; padding : 5px; text-align : left; 記事詳細 1. 2. kiji_itiran.php id 11
3.id $id sql ) shoseki sql $sql 4.$sql mysql $result 5. $result ($data= $result->fetch_assoc())$data 6. if $record extract 7. <body> <hr /> $id = $_GET['id']; $sql = "select * from kiji where id=$id"; $result = $db->query($sql); if ($data = $result->fetch_assoc()) { extract($data); $hiduke = date("y n j G:i:s", $koshinbi); print "<h2>$title</h2>\n"; print "<p class=\"honbun\">". nl2br($honbun). "</p>\n"; print "<p class=\"hiduke\">$hiduke </p>\n"; # <p>[<a href="kiji_itiran.php"></a>] [<a href="henshu.php?id= echo $id;"></a>]</p> </body> 記事編集 henshu.php kiji_shosai.php kiji_shosau.php henshu.php 12
13 kiji_shosai.php id $id = $_GET['id']; $sql = "select * from kiji where id=$id"; $result = $db->query($sql); if ($data = $result->fetch_assoc()) { extract($data); $hiduke = date("y n j G:i:s", $koshinbi); form table kiji_shosai.php henshu.php <input type="text" name="" value=" echo $; " echo $; form henshu_sakujo.php henshu_sakujo.php henshu_kakunin.php ( javascript )sakujo.php henshu.php henshu_kaku nin.php henshu_touro ku.php henshu_sakujo.php sakujo.php <input type="button" value=" " onclick="history.back()">
14 henshu_sakujo.php henshu_sakujo.php extract($_post); if ($action == "") { require 'henshu_kakunin.php'; else { // $action == "" require 'sakujo.php'; 編集確認 henshu_kakunin.php ; ; </table> <form> henshu_touroku.php input type="hidden" id () <p class="button"> </p> </form>
編集登録 ( 更新 henshu_tourokou.php ; ; $sql = "update kiji set title='$title', honbun='$honbun', koshinbi=$koshinbi where id=$id"; $sql mysql $result SQL print "<p> </p>"; else { print "<p> {$title </p>"; <p>[<a href="kiji_itiran.php"> </a>]</p> # update update set =, 2=, where ; id=$idid kiji id 15
削除確認 henshu.php henshu.php <script> function sakujo_kakunin() { $yes = confirm(" "); return $yes; </script> <p class="button"> <input type="submit" name="action" value="" /> <input type="submit" name="action" value="" onclick="return sakujo_kakunin();" /> <input type="button" value=" " onclick="history.back()" /> #onclick javascript confirm YES NO 削除登録 sakujo.php sakujo.php html body <h2> 16
<hr /> $sql = delete from where ; 1. (index.php) 2. (menu.php) 1. header.phpkanri_header.php 2. db_access.php 17
1. (index.php) index.php kiji_itiran.php index.php kiji_itiran.php kiji_itiran.php table $where = "order by koshinbi desc"; if (isset($_get['id'])) { #isset $id = $_GET['id']; $where = " where id=$id"; $sql = "select * from kiji $where"; $result = $db->query($sql); while ($data = $result->fetch_assoc()) { extract($data); $hiduke = date("y n j G:i:s", $koshinbi); print "<h2><a href=\"kiji_shosai.php?id=$id\">$title</a>< /h2>\n"; print "<p class=\"honbun\">". nl2br($honbun). "</p>\n"; kiji_shosai.php kiji_shosai.php henshu.php 18
menu kiji_shosai.php index.php 2. (menu.php) (index.php) <h3></h3> <ul> # <ul> <li> $sql = "kiji id "; $sql mysql $result ; while ($data = $result->fetch_assoc()) { $menu_id = $data['id']; $menu_title = $data['title']; $menu_koshinbi = $data['koshinbi']; $menu_hiduke = date("y n j G:i", $k_koshinbi); print "<li><a href=\"kiji_shosai.php?id=$menu_id\">$m enu_title ($menu_hiduke)</a></li>"; </ul> menu.php index.php kiji_shosai.php require 'menu.php'; 19
index.php header CSS (kiji_itiran.php) kanri_menu.php menu.php () menu.php l kiji_itiran.php l shinki.php l shinki_kakunin.php l shinki_touroku.php l henshu.php l henshu_kakunin.php l henshu_touroku.php l sakujo.php kanri_menu.php 20
21 head 1 require <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="style.css"> </head> <body> <h1>my Blog</h1> 1. header.phpkanri_header.php () header.php kanri_header.php require 'header.php.php'; header.php index.php kiji_shosai.php kanri_header.php l kiji_itiran.php l shinki.php l shinki_kakunin.php l shinki_touroku.php l henshu.php l henshu_sakujo.php l henshu_touroku.php 2. db_access.php
db_access.php header.php kanri_header.php require_once require_once 'db_access.php'; #require_once require menu(kanri_menu)footer () 22 (footer.php) <p>copyright : fukudasemi, 2018</p> $db->close(); footer.php header menu header(kanri_header) -Web header.php kanri_header.php <body>
23 <div id="wrapper"> <div id="header"> <h1>my blog</h1> </div> <!-- of header --> #<!--of header--> div kanri_header.php wrapper <div id="kanri_wrapper"> menu headerdb_access henshu_sakujo.php require 'header.php'; <div id="menu"> require 'kanri_menu.php'; </div><!-- of menu --> <div id="contents"> </div><!-- of contents --> <div id="footer"> require "footer.php"; </div><!-- of footer --> </div><!-- of wrapper --> </body> CSS css html { height : 100%; body { height : 100%; div#wrapper { width : 804px; height : auto; background-color : #CEFDFA; div#kanri_wrapper { width : 804px; height : 80%;
24 div#menu { width : 204px; height : 100%; background-color : #CEFDFA; float : left; div#contents { width : 600px; height : 100%; float : right; background-color : #EFFEF6; div#header { width : 803px; height : 150px; background-color : #99CCCC; text-align : center; font-size : LARGE; div.kiji { border : black solid 1px; margin : 5px;.kiji h2 { margin : 5px; background-color : #66FFCC; p.hiduke { padding-right : 10px; text-align : right; div#footer { width : 803px; background-color : #BFF5FD; clear : both; text-align : center;
border : 1px solid black; index.php kiji_shosai.php $hiduke = $hiduke = print "<div class=\"kiji\">\n"; print "</div><!-- of kiji-->\n"; p.honbun { 25
26 1. 2. 3. 4. 5. () 6. 7. 1. 2. 3. 4. 5. 6. 7. 8. 9.
27 1. 2. 1. (category.php) kanri_menu category.php shinki.php category.php require kanri_header.php <div > require kanri_menu.php </div > <div > <h2> <hr /> // form category_kakunin.php <table> <tr> <th> <td><"text" "category_name" /> </tr> </table> p </p> </form> </div> <div > require </div > </div > 2. (category_kakunin.php)
3. (category_touroku.php) 28 ; die { ; ; form hidden category_touroku.php p ; $sql = insert で SQL select ; $sql $db $result ; false { 4.()
category_kanri.php <table> $sql = "select where id!=0 ; # 0 print " category_henshu.php "; </table> 5.() category_henshu.php id ; $sql = categoty; if form category_henshu_sakujo.php <th></th> <"category_name" value=" echo $category_name;" /> 29
30 hidden id <script> function sakujo() { return confirm(" "); </script> p </form> else { print ""; category_henshu_sakujo.php henshu_sakujo.php category_henshu_sakujo.php $id = $_GET['id']; if ($_POST['action'] == '') { require 'category_koshin.php'; else { require 'category_sakujo.php'; </body>
</html> category_koshin.php 31 ; $sql = update category else { {$category_name 6. category_sakujo.php id ; $sql = "delete else { 7. shinki.php td <select name="category">
<option value=0></option> $sql = "select * from category order by category_name"; $record = $db->query($sql); while ($data = $record->fetch_assoc()) { extract($data); print "<option value=$id>$category_name</option>\n"; </select> $record = $db->query($sql); if ($data = $record->fetch_assoc()) { $category_name = $data['category_name']; else { $category_name = ""; table td echo $category_name; form input hidden category 32 shinki_kakunin.php $hiduke = $sql = "select category_name from category where id=$category"; shinki_touroku.php sql
$sql = "insert (title,, koshinbi, category_id) ('$title',, $koshinbi, $category_id)"; kiji_itiran.php $hiduke = $category_name = ""; if (is_null($category_id) == false) { $sql2 = "select category_name from category where id=$category_id"; $record2 = $db->query($sql2); if ($data2 = $record2- >fetch_assoc()) { $category_name = $data2['category_name']; print <td>$category_name</td> henshu.php henshu_kakunin.php henshu_touroku.php 33
print $category_name print </div > index.php 34 print honbun kiji_itiran.php { { kiji_shosai.php
1. (kiji_shosai.php) $kiji_id = $id; kiji_shosai.php <h3></h3> <div > form comment_kakunin.php <p><br /><input type="text" name="name" /></p> <p><br /> <textarea name="com_honbun" cols="80" rows="6"></textarea></p> hidden kiji_id p input </form> <hr /> </div> 2. (comment_kakunin.php) shinki_kakunin.php () form comment_touroku.php 35
3. (comment_touroku.php) shinki_touroku.php namecom_honbunkoshinbi kiji_id </div> 4. (kiji_shosai.php) kiji_shosai.php <h3></h3> <div > sql kiji_id $id select; while ; $hiduke print css div.comment { padding : 0 20px; p.com_honbun { padding-left : 10px; p.com_name { font-weight : bold; background-color : #99FFCC; 36
#contents h3 { margin-left : 5px; padding-left : 5px; background-color : #CCFFCC; str1 : int1 : int2 : str2 : 5. ()(comment_kanri.php) kiji_itiran.php $hiduke $sql2 = "select title from kiji where id=$kiji_id"; $result2 = $db->query($sql2); if ($data2 = $result2->fetch_assoc()) { $title = $data2['title']; else { $title = ''; $comment = mb_substr($com_honbun, 0, 15); print # mb_substr( str1, int1, int2, str2) 6. () comment_henshu.php henshu.php id id 37
38 #$sql2 result2$kiji_hiduke id ; kiji_id ; sql id $id $sql mysql $result $result ($data = $result->fetch_assoc()) $record $data ; ; $sql2 = " id $kiji_id ; $sql2 mysql $result2 $result2 $data2 $data2 ; ; form comment_sakujo.php <table> </table> hidden id </script>
7. sakujo.php id ; sql if 8. index.phpkiji_shosai.phpkiji_itiran.php db_access.php function comment_number($kiji_id) { global $db; $sql = "select id from comment where kiji_id=$kiji_id"; $result = $db->query($sql); return $result->num_rows; # global : https://uxmilk.jp/14993 https://techacademy.jp/magazine/4953 39
index.php if else if (isset($_get['c_id'])) { $c_id = $_GET['c_id']; $where = " where category_id=$c_id"; $com_num = comment_number($id); print ($com_num) kiji_shiosai.phpkiji_itiran.php 9. 40
else { $sql = "delete from comment where kiji_id=$id"; $result = $db->query($sql); if ($result == false) { print "<p>{$title </p>"; print "<p> </p>"; else { print "<p>{$title </p>"; 1. () 41
category_kanri.php menu.php <h3></h3> <ul> sql id 0 ; $sql mysql $result $result $data { $c_id = $data['id']; $c_category_name = $data['category_name']; print "<li><a href=\"index.php?c_id=$c_id\">$c_categor y_name</a></li>"; </ul> 2. (kensaku.php) menu.php form(kensaku.php ) input type name search placeholder 42
kensaku.php kiji_shosai 43 $search sql kiji honbun like '%$search%' or title like '%&search%' ; kiji_shosai.php kiji_shosai.php ID ID 1. 2. ID password ID
OK 3. kanrisha_shinki kanrisha_kakunin kanrisha_touroku login login_kanrisha kanri_header login_check kanri_header.php require_once (password.sql) ID password.sql user 44
idname, password varchar(255)id id MySQL ID (kanrisha_shinki.php) shinki.php ID form kanrisha_kakunin.php (ID) </table> </p> (kanrisha_kakunin.php) ; (ID) form kanrisha_touroku.php (ID) hidden (ID) 45
session_start(); $_SESSION['kanrisha'] = $name; 46 (kanrisha_touroku.php) ; $password_hash = password_hash($password, PASSWORD_DEFAULT); sql ; sql ($result); else { (login.php) kanrisha_shinki.php form login_kanrisha.php (login_kanrisha.php)
db_access.php ; sql neme name ; $sql mysql $data $result while ($record = $data->fetch_assoc()) $db_password = $record['password']; $login = password_verify($password, $db_password); #password_verify session_start(); $_SESSION['username'] = $name; header('location: kiji_itiran.php'); exit; header('location: login.php'); # header WEB URL header Location URL login_check.php session_start(); if (isset($_session['username']) == false) { login.php kanri_header.php login_check.php require_once 47
(logout.php) session_destroy() $_SESSION = array(); # if (isset($_cookie["phpsessid"])) { # setcookie("phpsessid", '', time() - 1800, '/'); # session_destroy(); # header('location: kiji_itiran.php'); 48