Skip to content

Instantly share code, notes, and snippets.

@deuterium7
Created August 13, 2017 10:04
Show Gist options
  • Save deuterium7/8fdac288d3d7cb2fe01dc521813fc18e to your computer and use it in GitHub Desktop.
Save deuterium7/8fdac288d3d7cb2fe01dc521813fc18e to your computer and use it in GitHub Desktop.
Билет № 1

#6

<?php
	function multiplicity4($number) {

		if ( $number % 4 == 0 ) {
			return true;
		} else {
			return false;
		}
	}

	var_dump(multiplicity4(16));
?>

#7

<?php
	function getExpansion($path) {
		$base = basename($path);
		$arrayString = explode(".", $base);
		return $arrayString[count($arrayString)-1]; // getLastElement
	}

	var_dump(getExpansion("path/file.1.txt"));
?>

#8

<?php
	$array = [];
	for ($i = 10; $i <= 1000; $i++) {
		$array[] = $i;
	}

	$arrayNew = [];
	foreach ($array as $key => $value) {
		$arrayNew[] = $value + 2;
	}

	echo "First: ".$arrayNew[rand(0, 990)]."<br>";
	echo "Second: ".$arrayNew[rand(0, 990)]."<br>";
	echo "Last: ".$arrayNew[rand(0, 990)]."<br>";
?>

#9

<?php
	function dateDifference($date_1, $date_2, $differenceFormat = '%a')
	{
	    $datetime1 = date_create($date_1);
	    $datetime2 = date_create($date_2);
	    
	    $interval = date_diff($datetime1, $datetime2);
	    
	    return $interval->format($differenceFormat);
	}

	echo dateDifference('11-08-2017', '01-09-2017');
?>

#10

page1.php

<?php
	session_start();

	if ( !isset($_SESSION['visited']) || !in_array("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $_SESSION['visited']) ) {
  		$_SESSION['visited'][0] = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  	}

	echo "<a href='page2.php'>Next page</a>";
?>

page2.php

<?php
	session_start();

	if ( !isset($_SESSION['visited']) || !in_array("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $_SESSION['visited']) ) {
  		$_SESSION['visited'][1] = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  	}

	echo "<a href='page3.php'>Next page</a>";
?>

page3.php

<?php
	session_start();

	if ( !isset($_SESSION['visited']) || !in_array("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $_SESSION['visited']) ) {
  		$_SESSION['visited'][2] = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  	}

	echo "<a href='page4.php'>Next page</a>";
?>

page4.php

<?php
	session_start();

	if ( !isset($_SESSION['visited']) || !in_array("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $_SESSION['visited']) ) {
  		$_SESSION['visited'][3] = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  	}

  	foreach ($_SESSION['visited'] as $key => $value) {
  		echo $value."<br>";
  	}
?>

#11

messages.sql

-- phpMyAdmin SQL Dump
-- version 4.6.5.2
-- https://www.phpmyadmin.net/
--
-- Хост: 127.0.0.1:3306
-- Время создания: Авг 13 2017 г., 13:02
-- Версия сервера: 5.5.53
-- Версия PHP: 7.1.0

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- База данных: `phpKR1`
--

-- --------------------------------------------------------

--
-- Структура таблицы `messages`
--

CREATE TABLE `messages` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `messages`
--

INSERT INTO `messages` (`id`, `name`, `email`, `text`) VALUES
(1, 'Вася Пупкин', 'pupkin666@gmail.com', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras gravida accumsan augue a viverra. Donec eleifend urna in feugiat ornare. Praesent maximus sapien id sem malesuada, sed ullamcorper risus tincidunt. Aliquam nisl odio, vehicula viverra orci sed, tristique consequat eros. Praesent vehicula turpis et mi molestie condimentum. Nulla nec leo vel nibh dapibus laoreet a eu quam. Donec a blandit nulla. Vestibulum sit amet ligula molestie, luctus leo nec, eleifend est. Nam facilisis, nulla id aliquet tincidunt, ante ipsum fermentum augue, sit amet fermentum sem nulla vitae purus. Interdum et malesuada fames ac ante ipsum primis in faucibus.\r\n\r\nIn in elementum nunc. Pellentesque ut sem eget orci gravida fermentum. Fusce suscipit mi ut massa venenatis dictum. Sed lorem libero, varius a auctor elementum, rutrum viverra libero. Maecenas ipsum velit, mollis quis odio id, consectetur blandit ligula. Nunc mollis quam nisi, quis varius augue finibus sit amet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent fermentum, velit quis semper mollis, metus erat pretium ligula, at faucibus urna ipsum nec orci. Phasellus congue venenatis libero. Quisque libero arcu, ultricies a nulla auctor, ultrices ultrices lectus.\r\n\r\nMorbi ac dapibus dui, ac commodo turpis. Nam iaculis mattis turpis, id dapibus felis vehicula eu. Vestibulum interdum nisl congue tempus viverra. Curabitur porttitor vitae justo id auctor. In in laoreet diam. Donec iaculis tellus gravida erat mollis aliquam. Ut fringilla felis ut vehicula gravida. Donec arcu elit, egestas a massa non, mollis iaculis sem. Sed a bibendum justo.\r\n\r\nMorbi vitae erat a metus consectetur convallis. Praesent tincidunt, urna nec vestibulum eleifend, metus tortor bibendum lacus, at bibendum nulla tellus eget erat. Sed sed enim leo. In porta tellus nibh, posuere vestibulum urna consequat vel. Donec finibus, enim id sollicitudin dictum, neque velit gravida nisi, sed placerat augue justo nec eros. Donec et tellus diam. Sed a libero at eros pretium mattis.\r\n\r\nVivamus venenatis eleifend vehicula. In fermentum facilisis turpis a blandit. Donec consectetur maximus augue, a finibus magna interdum non. Donec in diam eget tellus auctor porta eget sit amet augue. In dictum ligula quam, vitae posuere ipsum auctor eu. Proin tempor nisl at finibus lobortis. Vestibulum tempor lacus eu tristique dignissim. Ut quis condimentum dui. Mauris viverra eros tempus dapibus ultrices. Curabitur porttitor lectus sed ex sodales commodo. Quisque malesuada ac lorem eget gravida.'),
(2, 'Name', 'Email@mail.ru', 'Message'),
(3, 'Ivanov Ivan', 'ivanov322@mail.ru', 'Hello my dear friend');

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `messages`
--
ALTER TABLE `messages`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `messages`
--
ALTER TABLE `messages`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Database.php

<?php
	class Database
	{
		// CONFIGS DEFAULT
		private $host = 'localhost';
		private $db = 'phpKR1';
		private $user = 'root';
		private $password = '';
		private $charset = 'utf8';
		private $options = [
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
		];

		// CONFIGS OTHER
		private $dsn;
		public $pdo;
		public $tableName;

		// METHODS
		public function __construct() {
            $this->dsn = "mysql:host=$this->host;dbname=$this->db;charset=$this->charset";
            $this->pdo = new PDO($this->dsn, $this->user, $this->password, $this->options);
		}

		public function getDsn() {
            return $this->dsn;
		}

		public function getAll() {
            $stmt = $this->pdo->query("SELECT * FROM $this->tableName");
            return $stmt->fetchAll();
		}

		public function getOne($id) {
            $stmt = $this->pdo->query("SELECT * FROM $this->tableName WHERE id = $id");
            return $stmt->fetchAll();
		}

		public function deleteAll() {
            $this->pdo->query("DELETE FROM $this->tableName");
		}

		public function deleteOne($id) {
            $this->pdo->query("DELETE FROM $this->tableName WHERE id = $id");	
		}

		public function updateOne($fieldArray, $fieldValue) {
            $strField = implode(" = ? ,",$fieldArray)." = ?";
            $sql = "UPDATE $this->tableName SET $strField WHERE id = ?";
            $stmt = $this->pdo->prepare($sql);
            $stmt->execute($fieldValue);
            return $stmt;
		}

		public function insert($fieldArray, $fieldValue) {
            $strField = implode(" = ? ,",$fieldArray)." = ?";
            $sql = "INSERT INTO $this->tableName SET $strField";
            $stmt = $this->pdo->prepare($sql);
            $stmt->execute($fieldValue);
            return $stmt;
		}
	}
?>

Messages.php

<?php
	class Messages extends Database
	{
		public function __construct() {
			$this->tableName = 'messages';
			parent::__construct();
		}
	}
?>

11.php

<?php
	function exist($param) {
		
		if ( isset($param) && !empty($param) ) {
			return true;
		} else {
			return false;
		}
	}

	if ( exist($_POST['name']) && exist($_POST['email']) && exist($_POST['text']) ) {
		include('Database.php');
		include('Messages.php');

		$db = new Messages();
		$db->insert(['name', 'email', 'text'], [$_POST['name'], $_POST['email'], $_POST['text']]);

		$to = 'post0778@gmail.com';
		$subject = 'New message';
		$message = 'Check database';
		$headers = 'From: webmaster@example.com'."\r\n".
		'Reply-To: webmaster@example.com'."\r\n".
		'X-Mailer: PHP/'.phpversion();
		mail($to, $subject, $message, $headers);
	} else {
		echo "Не заполнены поля!!!";
	}
?>

<form action="" method="post">
	<p><input type="text" name="name" required> name</p>
	<p><input type="email" name="email" required> email</p>
	<p>Message</p>
	<p><textarea cols="45" rows="10" name="text" required></textarea></p>
	<p><input type="submit"></p>
</form>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment