Advertisement
Guest User

Untitled

a guest
Aug 12th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.29 KB | None | 0 0
  1. admin.php
  2. ```php
  3. <?php
  4. ini_set('display_errors', 1);
  5.  
  6. include('Session.php');
  7. include('Database.php');
  8. include('News.php');
  9. include('Categories.php');
  10.  
  11. $session = new Session();
  12.  
  13. if ( $session->getValue('admin') == true ) {
  14. $news = new News();
  15. $category = new Categories();
  16.  
  17. $allNews = $news->getAll();
  18. echo "<a href='index.php'>Главная</a><br><h1>Новости</h1>";
  19. echo "<table><tbody><tr><th>id</th><th>categoty</th><th>title</th><th>body</th><th>date</th><th>update</th><th>delete</th></tr>";
  20. foreach ($allNews as $key => $options) {
  21. echo "<tr><td>".$options['id']."</td>";
  22. echo "<td>".$category->getCategoryName($options['category_id'])."</td>";
  23.  
  24. if ( mb_strlen($options['title']) > 100 ) {
  25. $str = mb_substr($options['title'], 0, 100);
  26. echo "<td>".$str."...</td>";
  27. } else {
  28. echo "<td>".$options['title']."</td>";
  29. }
  30.  
  31. if ( mb_strlen($options['body']) > 100 ) {
  32. $str = mb_substr($options['body'], 0, 100);
  33. echo "<td>".$str."...</td>";
  34. } else {
  35. echo "<td>".$options['body']."</td>";
  36. }
  37. echo "<td>".$options['date']."</td>";
  38. ?>
  39. <td><a href='edit.php?id=<?=$options['id']?>'>Обновить</a></td>
  40. <td><a href='delete.php?id=<?=$options['id']?>'>Удалить</a></td>
  41. <?php
  42. echo "</tr>";
  43. }
  44. echo "</tbody></table><a href='edit.php' style='float:left;'>Добавить</a><a href='delete.php' style='float:right;'>Удалить все записи</a><br>";
  45.  
  46. $allCategories = $category->getAll();
  47. echo "<h1>Категории</h1>";
  48. echo "<table><tbody><tr><th>id</th><th>name</th></tr>";
  49. foreach ($allCategories as $key => $options) {
  50. echo "<tr><td>".$options['id']."</td>";
  51. echo "<td>".$options['name']."</td>";
  52. ?>
  53. <td><a href='edit2.php?id=<?=$options['id']?>'>Обновить</a></td>
  54. <td><a href='delete2.php?id=<?=$options['id']?>'>Удалить</a></td>
  55. <?php
  56. echo "</tr>";
  57. }
  58. echo "</tbody></table><a href='edit2.php'>Добавить</a><a href='delete2.php' style='padding-left:15px;'>Удалить все записи</a>";
  59. } else {
  60. header('Location: login.php');
  61. }
  62. ?>
  63. ```
  64. Categories.php
  65. ```php
  66. <?php
  67. class Categories extends Database
  68. {
  69. public function __construct() {
  70. $this->tableName = 'categories';
  71. parent::__construct();
  72. }
  73.  
  74. public function getCategoryName($id) {
  75. $stmt = parent::getOne($id);
  76. $name = $stmt[0]['name'];
  77.  
  78. if ( isset($name) && !empty($name) ) {
  79. return $name;
  80. } else {
  81. return false;
  82. }
  83. }
  84. }
  85. ?>
  86. ```
  87. Database.php
  88. ```php
  89. <?php
  90. class Database
  91. {
  92. // CONFIGS DEFAULT
  93. private $host = 'localhost';
  94. private $db = 'blog';
  95. private $user = 'root';
  96. private $password = 'root';
  97. private $charset = 'utf8';
  98. private $options = [
  99. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  100. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  101. ];
  102.  
  103. // CONFIGS OTHER
  104. private $dsn;
  105. public $pdo;
  106. public $tableName;
  107.  
  108. // METHODS
  109. public function __construct() {
  110. $this->dsn = "mysql:host=$this->host;dbname=$this->db;charset=$this->charset";
  111. $this->pdo = new PDO($this->dsn, $this->user, $this->password, $this->options);
  112. }
  113.  
  114. public function getDsn() {
  115. return $this->dsn;
  116. }
  117.  
  118. public function getAll() {
  119. $stmt = $this->pdo->query("SELECT * FROM $this->tableName");
  120. return $stmt->fetchAll();
  121. }
  122.  
  123. public function getOne($id) {
  124. $stmt = $this->pdo->query("SELECT * FROM $this->tableName WHERE id = $id");
  125. return $stmt->fetchAll();
  126. }
  127.  
  128. public function deleteAll() {
  129. $this->pdo->query("DELETE FROM $this->tableName");
  130. }
  131.  
  132. public function deleteOne($id) {
  133. $this->pdo->query("DELETE FROM $this->tableName WHERE id = $id");
  134. }
  135.  
  136. public function updateOne($fieldArray, $fieldValue) {
  137. $strField = implode(" = ? ,",$fieldArray)." = ?";
  138. $sql = "UPDATE $this->tableName SET $strField WHERE id = ?";
  139. $stmt = $this->pdo->prepare($sql);
  140. $stmt->execute($fieldValue);
  141. return $stmt;
  142. }
  143.  
  144. public function insert($fieldArray, $fieldValue) {
  145. $strField = implode(" = ? ,",$fieldArray)." = ?";
  146. $sql = "INSERT INTO $this->tableName SET $strField";
  147. $stmt = $this->pdo->prepare($sql);
  148. $stmt->execute($fieldValue);
  149. return $stmt;
  150. }
  151. }
  152. ?>
  153. ```
  154. delete.php
  155. ```php
  156. <?php
  157. ini_set('display_errors', 1);
  158.  
  159. include('Session.php');
  160. include('Database.php');
  161. include('News.php');
  162.  
  163. $session = new Session();
  164.  
  165. if ( $session->getValue('admin') == true ) {
  166. $news = new News();
  167.  
  168. if ( isset($_GET['id']) && !empty($_GET['id']) ) {
  169. $news->deleteOne($_GET['id']);
  170. } else {
  171. $news->deleteAll();
  172. }
  173.  
  174. header("Location: admin.php");
  175. } else {
  176. header('Location: login.php');
  177. }
  178. ?>
  179. ```
  180. delete2.php
  181. ```php
  182. <?php
  183. ini_set('display_errors', 1);
  184.  
  185. include('Session.php');
  186. include('Database.php');
  187. include('Categories.php');
  188.  
  189. $session = new Session();
  190.  
  191. if ( $session->getValue('admin') == true ) {
  192. $category = new Categories();
  193.  
  194. if ( isset($_GET['id']) && !empty($_GET['id']) ) {
  195. $category->deleteOne($_GET['id']);
  196. } else {
  197. $category->deleteAll();
  198. }
  199.  
  200. header("Location: admin.php");
  201. } else {
  202. header('Location: login.php');
  203. }
  204. ?>
  205. ```
  206. edit.php
  207. ```php
  208. <?php
  209. ini_set('display_errors', 1);
  210.  
  211. include('Session.php');
  212. include('Database.php');
  213. include('News.php');
  214.  
  215. $session = new Session();
  216.  
  217. if ( $session->getValue('admin') == true ) {
  218. $news = new News();
  219.  
  220. if ( isset($_GET['id']) && !empty($_GET['id']) ) {
  221. $oneNews = $news->getOne($_GET['id']);
  222.  
  223. if ( isset($_POST) && !empty($_POST) ) {
  224. $category_id = $_POST['category_id'];
  225. $title = $_POST['title'];
  226. $body = $_POST['body'];
  227. $date = $_POST['date'];
  228. $news->updateOne(["category_id","title","body","date"],[$category_id,$title,$body,$date,$_GET['id']]);
  229. header("Location: admin.php");
  230. }
  231. } else {
  232.  
  233. if ( isset($_POST) && !empty($_POST) ) {
  234. $category_id = $_POST['category_id'];
  235. $title = $_POST['title'];
  236. $body = $_POST['body'];
  237. $date = $_POST['date'];
  238. $news->insert(["category_id","title","body","date"],[$category_id,$title,$body,$date]);
  239. header("Location: admin.php");
  240. }
  241. }
  242. ?>
  243. <!DOCTYPE html>
  244. <html>
  245. <head>
  246. <title>Обновление новостей</title>
  247. <link rel="stylesheet" type="text/css" href="style.css">
  248. </head>
  249. <body>
  250. <form action="" method="post" class="center middle">
  251. <p><input type="text" name="category_id" value="<?=(isset($oneNews))?$oneNews[0]['category_id']:''?>" required> category_id</p>
  252. <p><input type="text" name="title" value="<?=(isset($oneNews))?$oneNews[0]['title']:''?>" required> title</p>
  253. <p><textarea rows="10" cols="45" name="body" required><?=(isset($oneNews))?$oneNews[0]['body']:''?></textarea></p>
  254. <p><input type="text" name="date" value="<?=(isset($oneNews))?$oneNews[0]['date']:''?>"> date (yyyy-mm-dd hh:mm:ss)</p>
  255. <p><input type="submit"></p>
  256. </form>
  257. </body>
  258. </html>
  259. <?php
  260. } else {
  261. header('Location: login.php');
  262. }
  263. ?>
  264. ```
  265. edit2.php
  266. ```php
  267. <?php
  268. ini_set('display_errors', 1);
  269.  
  270. include('Session.php');
  271. include('Database.php');
  272. include('Categories.php');
  273.  
  274. $session = new Session();
  275.  
  276. if ( $session->getValue('admin') == true ) {
  277. $category = new Categories();
  278.  
  279. if ( isset($_GET['id']) && !empty($_GET['id']) ) {
  280. $oneCategory = $category->getOne($_GET['id']);
  281.  
  282. if ( isset($_POST) && !empty($_POST) ) {
  283. $name = $_POST['name'];
  284. $category->updateOne(["name"],[$name,$_GET['id']]);
  285. header("Location: admin.php");
  286. }
  287. } else {
  288.  
  289. if ( isset($_POST) && !empty($_POST) ) {
  290. $name = $_POST['name'];
  291. $category->insert(["name"],[$name]);
  292. header("Location: admin.php");
  293. }
  294. }
  295. ?>
  296. <!DOCTYPE html>
  297. <html>
  298. <head>
  299. <title>Обновление новостей</title>
  300. <link rel="stylesheet" type="text/css" href="style.css">
  301. </head>
  302. <body>
  303. <form action="" method="post" class="center middle">
  304. <p><input type="text" name="name" value="<?=(isset($oneCategory))?$oneCategory[0]['name']:''?>" required> name</p>
  305. <p><input type="submit"></p>
  306. </form>
  307. </body>
  308. </html>
  309. <?php
  310. } else {
  311. header('Location: login.php');
  312. }
  313. ?>
  314. ```
  315. index.php
  316. ```php
  317. <?php
  318. ini_set('display_errors', 1);
  319.  
  320. include('Database.php');
  321. include('News.php');
  322. include('Categories.php');
  323.  
  324. $news = new News();
  325. $category = new Categories();
  326.  
  327. $allNews = $news->getAll();
  328. echo "<div class='center big'><h1>Список новостей</h1><br>";
  329. foreach ($allNews as $key => $options) {
  330. echo "<strong>".$category->getCategoryName($options['category_id'])." > ";
  331. echo $options['title']."</strong><br>";
  332.  
  333. if ( mb_strlen($options['body']) > 400 ) {
  334. $str = mb_substr($options['body'], 0, 400);
  335. echo $str."...<br>";
  336. } else {
  337. echo $options['body']."<br>";
  338. }
  339. echo "<span class='left'>".$options['date']."</span>";
  340. ?>
  341. <a class="right" href="post.php?id=<?=$options['id']?>">Читать далее</a>
  342. <?php
  343. echo "<br><hr>";
  344. }
  345. echo "<br><br><a href='login.php'>Войти в админку</a></div>";
  346. ?>
  347.  
  348. <!DOCTYPE html>
  349. <html>
  350. <head>
  351. <title>Страница новостей</title>
  352. <link rel="stylesheet" type="text/css" href="style.css">
  353. </head>
  354. <body>
  355. </body>
  356. </html>
  357. ```
  358. login.php
  359. ```php
  360. <?php
  361. ini_set('display_errors', 1);
  362. include('Session.php');
  363.  
  364. $session = new Session();
  365.  
  366. if ( isset($_POST) && !empty($_POST) ) {
  367.  
  368. $defaultLogin = 'admin';
  369. $defaultPassword = 'admin';
  370. if ( $_POST['login'] == $defaultLogin && $_POST['password'] == $defaultPassword ) {
  371.  
  372. if ( $session->getValue('admin') ) {
  373. $session->updateValue('admin', true);
  374. } else {
  375. $session->saveValue('admin', true);
  376. }
  377.  
  378. header('Location: admin.php');
  379. } else {
  380. $session->destroySession();
  381. }
  382. }
  383. ?>
  384. <!DOCTYPE html>
  385. <html>
  386. <head>
  387. <title>Форма авторизации</title>
  388. <link rel="stylesheet" type="text/css" href="style.css">
  389. </head>
  390. <body>
  391. <form action="" method="post" class="center small">
  392. <p><input type="text" name="login" required> login</p>
  393. <p><input type="password" name="password" required> password</p>
  394. <p><input type="submit" value="Войти"></p>
  395. </form>
  396. </body>
  397. </html>
  398. ```
  399. News.php
  400. ```php
  401. <?php
  402. class News extends Database
  403. {
  404. public function __construct() {
  405. $this->tableName = 'news';
  406. parent::__construct();
  407. }
  408. }
  409. ?>
  410. ```
  411. post.php
  412. ```php
  413. <?php
  414. ini_set('display_errors', 1);
  415.  
  416. include('Database.php');
  417. include('News.php');
  418.  
  419. $news = new News();
  420.  
  421. $oneNews = $news->getOne($_GET['id']);
  422. echo "<div class='center big'>";
  423. echo "<h2>".$oneNews[0]['title']."</h2><br>";
  424. echo $oneNews[0]['body']."<br>";
  425. echo "<span class='left'>".$oneNews[0]['date']."</span>";
  426. echo "<a class='right' href='index.php'>Назад</a>";
  427. echo "</div>";
  428. ?>
  429.  
  430. <!DOCTYPE html>
  431. <html>
  432. <head>
  433. <title>Новость</title>
  434. <link rel="stylesheet" type="text/css" href="style.css">
  435. </head>
  436. <body>
  437. </body>
  438. </html>
  439. ```
  440. Session.php
  441. ```php
  442. <?php
  443. class Session
  444. {
  445. public function __construct() {
  446. session_start();
  447. }
  448.  
  449. public function saveValue($key, $value) {
  450.  
  451. if ( !isset($_SESSION[$key]) ) {
  452. $_SESSION[$key] = $value;
  453. }
  454. }
  455.  
  456. public function deleteValue($key) {
  457.  
  458. if ( isset($_SESSION[$key]) ) {
  459. unset($_SESSION[$key]);
  460. }
  461. }
  462.  
  463. public function updateValue($key, $value) {
  464.  
  465. if ( isset($_SESSION[$key]) ) {
  466. $_SESSION[$key] = $value;
  467. }
  468. }
  469.  
  470. public function getValue($key) {
  471.  
  472. if ( isset($_SESSION[$key]) ) {
  473. return $_SESSION[$key];
  474. } else {
  475. return false;
  476. }
  477. }
  478.  
  479. public function destroySession() {
  480.  
  481. if ( isset($_SESSION) ) {
  482. session_destroy();
  483. }
  484. }
  485. }
  486. ?>
  487. ```
  488. style.css
  489. ```css
  490. * { margin: 0; padding: 0; }
  491. p { padding: 10px 10px; }
  492. h2 { text-align: center; }
  493. .center { margin: 0 auto; text-align: justify; }
  494. .small { width: 400px; }
  495. .middle { width: 600px; }
  496. .big { width: 900px; }
  497. .left { float: left; }
  498. .right { float: right; }
  499. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement