12 subscribers
182 photos
3 videos
212 links
Programmer - Курсы программирования. Канал для тех, кто не хочет остаться на задворках цивилизации.
Download Telegram
Заработок на создании сайтов под заказ
У меня часто спрашивают, как можно хорошо зарабатывать, не выходя из дома? Можно, конечно, создать сайт и зарабатывать на рекламе, однако, этот способ сложный, так как раскрутить сайт очень сложно и очень долго.

Поэтому своим друзьям я рекомендую попытаться заработать на фрилансе. Потому что если Вы хороший специалист в своём деле, то раскрутитесь обязательно. Но как ускорить этот процесс? Ведь 99% терпят неудачу.

На мой взгляд, в таких делах могут помочь только те, кто сам раскрутился с нуля. Одним из таких специалистов является Михаил Русаков. И он недавно выпустил курс "Заработок на создании сайтов под заказ", в котором и рассказывает все секреты: как правильно заполнить профиль, как писать заказчику, какие ошибки являются грубейшими и которые допускают практически все. И отличной фишкой курса является то, что в нём рассказываются секреты быстрой раскрутки своего аккаунта на фрилансе. Вот ссылка на этот курс: https://Hottab.programsite.ru/fl

Я курс уже просмотрел, и подтверждаю, что информация в нём содержится уникальная, мега-полезная и основанная на собственном опыте автора: https://Hottab.programsite.ru/fl.
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 27: Работа с файлами и загрузка данных на сервер 🐘

В этой главе мы рассмотрим, как работать с файлами в PHP, включая загрузку файлов на сервер, чтение и запись данных, а также управление файловой системой. Эти навыки необходимы для создания функциональных веб-приложений.

---

### 1. Загрузка файлов на сервер
PHP позволяет загружать файлы на сервер через HTML-форму.

#### HTML-форма
<form action="upload.php" method="post" enctype="multipart/form-data">
Выберите файл: <input type="file" name="file">
<input type="submit" value="Загрузить">
</form>


#### Обработка загрузки (upload.php)
<?php
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$upload_dir = 'uploads/';
$upload_file = $upload_dir . basename($_FILES['file']['name']);

if (move_uploaded_file($_FILES['file']['tmp_name'], $upload_file)) {
echo "Файл успешно загружен!";
} else {
echo "Ошибка при загрузке файла!";
}
} else {
echo "Ошибка: " . $_FILES['file']['error'];
}
?>


---

### 2. Чтение и запись файлов
PHP предоставляет функции для работы с файлами.

#### Чтение файла
<?php
$file = fopen("example.txt", "r") or die("Не удалось открыть файл!");
echo fread($file, filesize("example.txt"));
fclose($file);
?>


#### Запись в файл
<?php
$file = fopen("example.txt", "w") or die("Не удалось открыть файл!");
$text = "Привет, мир!";
fwrite($file, $text);
fclose($file);
?>


---

### 3. Работа с директориями
PHP позволяет создавать, удалять и переименовывать директории.

#### Создание директории
<?php
if (!file_exists("new_dir")) {
mkdir("new_dir");
echo "Директория создана!";
} else {
echo "Директория уже существует!";
}
?>


#### Удаление директории
<?php
if (file_exists("new_dir")) {
rmdir("new_dir");
echo "Директория удалена!";
} else {
echo "Директория не существует!";
}
?>


#### Переименование директории
<?php
if (file_exists("old_dir")) {
rename("old_dir", "new_dir");
echo "Директория переименована!";
} else {
echo "Директория не существует!";
}
?>


---

### 4. Работа с CSV
CSV (Comma-Separated Values) — это формат для хранения табличных данных.

#### Чтение CSV
<?php
$file = fopen("data.csv", "r");
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
print_r($data);
}
fclose($file);
?>


#### Запись в CSV
<?php
$file = fopen("data.csv", "w");
$data = [
["Иван", 25],
["Мария", 30]
];
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
?>


---

### 5. Работа с JSON
JSON (JavaScript Object Notation) — это популярный формат для обмена данными.

#### Чтение JSON
<?php
$json = '{"name": "Иван", "age": 25}';
$array = json_decode($json, true);
print_r($array);
?>


#### Запись JSON
<?php
$array = ["name" => "Иван", "age" => 25];
$json = json_encode($array);
echo $json;
?>


---

### 6. Управление файловой системой
PHP предоставляет функции для работы с файловой системой.

#### Проверка существования файла
<?php
if (file_exists("example.txt")) {
echo "Файл существует!";
} else {
echo "Файл не существует!";
}
?>


#### Получение размера файла
<?php
echo "Размер файла: " . filesize("example.txt") . " байт";
?>


#### Удаление файла
<?php
if (unlink("example.txt")) {
echo "Файл удалён!";
} else {
echo "Ошибка при удалении файла!";
}
?>


---

🎯 Что дальше?
В следующей главе мы изучим работу с сессиями и куками, а также управление состоянием пользователя. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Файлы #Загрузка #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
Инструкция по заработку на создании сайтов под заказ
У меня часто спрашивают, как можно хорошо зарабатывать, не выходя из дома? Можно, конечно, создать сайт и зарабатывать на рекламе, однако, этот способ сложный, так как раскрутить сайт очень сложно и очень долго.

Поэтому своим друзьям я рекомендую попытаться заработать на фрилансе. Потому что если Вы хороший специалист в своём деле, то раскрутитесь обязательно. Но как ускорить этот процесс? Ведь 99% терпят неудачу.

На мой взгляд, в таких делах могут помочь только те, кто сам раскрутился с нуля. Одним из таких специалистов является Михаил Русаков. И он недавно выпустил бесплатную пошаговую инструкцию по заработку на создании сайтов под заказ: https://Hottab.programsite.ru/freefl

В данной инструкции Михаил показывает, какие шаги и в какой последовательности необходимо предпринять, чтобы достичь успеха на фрилансе абсолютно с нуля, причём то, что он говорит, универсально, и подойдёт для любой ниши, а не только для создания сайтов.

Сама инструкция и урок к ней абсолютно бесплатны. Получить их можно здесь: https://Hottab.programsite.ru/freefl
Фреймворк Yii 2.0 с нуля. Пример создания сайта
У меня иногда спрашивают: "А как ты создаёшь свои сайты?". Вариантов создания несколько: воспользоваться готовым движком, создавать всё самому с нуля, использовать фреймворк.

Создавать на готовом движке - самый быстрый и самый худший вариант в плане конечного результата. Низкая безопасность, ограниченная функциональность, постоянная зависимость от разработчиков данного движка.

Свой движок - самый лучший, но ОЧЕНЬ трудозатратный вариант. Да, здесь будет наилучшая производительность, максимальная безопасность, но количество времени, которое будет потрачено на всё это, не так просто будет окупить.

Использование фреймворков - на мой взгляд, золотая середина. И именно с помощью фреймворков я и создаю свои сайты. Здесь и лёгкость создания, и высокая безопасность, и хорошая производительность сайта.

Из всех фреймворков я остановился на Yii - как на наиболее популярном в Рунете (особенно актуально для тех, кто хочет найти работу), а также как на наиболее производительном.

Помню я пытался изучать его самостоятельно, по книгам, но потерпел фиаско. Поскольку это был мой первый фреймворк, мне он давался крайне трудно, и тогда мне на помощь пришёл Видеокурс Михаила Русакова "Фреймворк Yii 2.0. Пример создания сайта": https://Hottab.programsite.ru/yii

Курс проходится за несколько вечеров, а знания, которые там даются, я не смог получить и за 3 месяца обучения по книгам (тем более, что они все устаревшие).

В общем, выражаю свою огромную признательность и благодарность Михаилу Юрьевичу за такой прекрасный курс, и я всем всегда его рекомендую, как наилучший способ научиться создавать сайты на фреймворке Yii: https://Hottab.programsite.ru/yii
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 28: Работа с сессиями и куками 🐘

В этой главе мы рассмотрим, как управлять состоянием пользователя с помощью сессий и кук. Эти технологии позволяют сохранять данные между запросами, что особенно полезно для авторизации, корзин покупок и персонализации.

---

### 1. Сессии
Сессии позволяют хранить данные на сервере для каждого пользователя. Каждая сессия имеет уникальный идентификатор, который передаётся через куки.

#### Начало сессии
<?php
session_start();
?>


#### Сохранение данных в сессии
<?php
session_start();
$_SESSION['username'] = "Иван";
echo "Данные сохранены в сессии!";
?>


#### Получение данных из сессии
<?php
session_start();
if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Сессия не найдена!";
}
?>


#### Удаление данных из сессии
<?php
session_start();
unset($_SESSION['username']);
echo "Данные удалены из сессии!";
?>


#### Завершение сессии
<?php
session_start();
session_destroy();
echo "Сессия завершена!";
?>


---

### 2. Куки
Куки позволяют хранить данные на стороне клиента. Они могут быть использованы для персонализации или отслеживания пользователей.

#### Установка куки
<?php
setcookie("username", "Иван", time() + 3600, "/");
echo "Кука установлена!";
?>


#### Получение данных из куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Кука не найдена!";
}
?>


#### Удаление куки
<?php
setcookie("username", "", time() - 3600, "/");
echo "Кука удалена!";
?>


---

### 3. Пример: Авторизация с использованием сессий
#### Форма входа
<form action="login.php" method="post">
Имя пользователя: <input type="text" name="username">
Пароль: <input type="password" name="password">
<input type="submit" value="Войти">
</form>


#### Обработка входа (login.php)
<?php
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

// Проверка логина и пароля (пример)
if ($username === "Иван" && $password === "12345") {
$_SESSION['username'] = $username;
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка авторизации
<?php
session_start();

if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


#### Выход из системы
<?php
session_start();
session_destroy();
echo "Вы вышли из системы!";
?>


---

### 4. Пример: Запоминание пользователя с использованием кук
#### Установка куки при входе
<?php
$username = $_POST['username'];
$password = $_POST['password'];

if ($username === "Иван" && $password === "12345") {
setcookie("username", $username, time() + 3600, "/");
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


---

### 5. Безопасность
- Сессии: Используйте session_regenerate_id() для предотвращения фиксации сессии.
- Куки: Устанавливайте флаг HttpOnly и Secure для защиты от XSS и перехвата.

  setcookie("username", "Иван", time() + 3600, "/", "", true, true);


---

🎯 Что дальше?
В следующей главе мы изучим работу с базами данных, включая PDO и ORM. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Сессии #Куки #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
Создание Интернет-магазина на OpenCart 2.0

Наверняка, многие из Вас хотят создать свой Интернет-магазин, либо, как минимум, интересуются этой темой. И, безусловно, у Вас нет 100-200, а то и более тысяч рублей на его создание у Web-студии. Поэтому в сегодняшней статье я решил рассказать, как это можно сделать с минимальными вложениями.

Наиболее простой способ создать Интернет-магазин - это использовать движок OpenCart, благо он бесплатный. Но им тоже нужно уметь пользоваться, и с этим могут возникнуть проблемы.

Но недавно я натолкнулся на курс от Михаила Русакова: https://Hottab.programsite.ru/im2

Особенностью данного курса является то, что автор рассматривает абсолютно все возможности OpenCart, а потом создаёт на этой системе работающий Интернет-магазин: mob-24.ru.

Полностью пройти этот курс и научиться делать любые Интернет-магазины можно всего за неделю.

Лично я прошёл этот курс на одном дыхании, всего за 1 вечер, а знания и практический опыт, особенно в области маркетинга, получил на всю жизнь: https://Hottab.programsite.ru/im2
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 29: Работа с базами данных (PDO и ORM) 🐘

В этой главе мы углубимся в работу с базами данных в PHP. Вы узнаете, как использовать PDO (PHP Data Objects) для безопасного взаимодействия с базами данных, а также познакомитесь с основами ORM (Object-Relational Mapping).

---

### 1. PDO: Подключение к базе данных
PDO — это универсальный интерфейс для работы с различными СУБД (MySQL, PostgreSQL, SQLite и др.).

#### Подключение к MySQL
<?php
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';

try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Подключение успешно!";
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
?>


---

### 2. Выполнение запросов
#### SELECT
<?php
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Имя: " . $row['name'] . ", Возраст: " . $row['age'] . "<br>";
}
?>


#### INSERT
<?php
$name = "Иван";
$age = 25;

$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt->execute(['name' => $name, 'age' => $age]);
echo "Запись добавлена!";
?>


#### UPDATE
<?php
$id = 1;
$newAge = 30;

$stmt = $pdo->prepare("UPDATE users SET age = :age WHERE id = :id");
$stmt->execute(['age' => $newAge, 'id' => $id]);
echo "Запись обновлена!";
?>


#### DELETE
<?php
$id = 1;

$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
echo "Запись удалена!";
?>


---

### 3. Транзакции
Транзакции позволяют выполнять несколько запросов как единое целое. Если один запрос завершится ошибкой, все изменения откатываются.

Пример:
<?php
try {
$pdo->beginTransaction();

$stmt1 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt1->execute(['name' => 'Иван', 'age' => 25]);

$stmt2 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt2->execute(['name' => 'Мария', 'age' => 30]);

$pdo->commit();
echo "Транзакция успешно завершена!";
} catch (Exception $e) {
$pdo->rollBack();
echo "Ошибка: " . $e->getMessage();
}
?>


---

### 4. ORM: Введение
ORM (Object-Relational Mapping) — это технология, которая позволяет работать с базой данных как с объектами в коде. Популярные ORM для PHP: Eloquent (Laravel), Doctrine.

#### Пример с Eloquent
1. Установите Eloquent через Composer:

   composer require illuminate/database

2. Настройка:

   <?php
require 'vendor/autoload.php';

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my_database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);

$capsule->setAsGlobal();
$capsule->bootEloquent();
?>

3. Создание модели:

   <?php
class User extends Illuminate\Database\Eloquent\Model {
protected $table = 'users';
}

$users = User::all();
foreach ($users as $user) {
echo "Имя: " . $user->name . ", Возраст: " . $user->age . "<br>";
}
?>


---

### 5. Миграции
Миграции позволяют управлять структурой базы данных через код.

#### Пример с Eloquent
1. Создайте миграцию:

   <?php
use Illuminate\Database\Capsule\Manager as Capsule;

Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>

2. Примените миграцию:

   <?php
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>


---
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
Пример создания сайта на фреймворке Yii 2.0

Не секрет, что при устройстве на работу в какую-нибудь Web-студию, да и вообще в любой офис, где так или иначе надо будет заниматься Web-программированием, одним из обязательных условий является знание какого-либо фреймворка. В большинстве случаев, требуют знание Yii.

И всё бы ничего, но изучить его оказалось сложнее, чем я думал, хотя я уже имел неплохой опыт программирования на PHP. Читая документацию на официальном сайте, у меня создавалось впечатление, что её пишут для тех, кто уже знаком с Yii, и читает её лишь для того, чтобы освежить память. Я думал, что меня ждут долгие месяцы обучения, и тут случилось нечто.

Я случайно наткнулся на одно бесплатное видео от Михаила Русакова, где как раз и показан процесс создания сайта на фреймворке Yii: https://Hottab.programsite.ru/freeyii.

Посмотрев это видео, я был в восторге, так как теперь мне всё стало понятно: что, зачем и почему. У Михаила так же есть и полный платный курс по Yii, однако, мне уже даже бесплатного видео хватило, чтобы я начал легко понимать, что написано в документации. Поэтому данное бесплатное видео я рекомендую всем, кому нужно изучить фреймворк Yii: https://Hottab.programsite.ru/freeyii.
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 30: Создание и использование RESTful API 🐘

В этой главе мы рассмотрим, как создавать и использовать RESTful API на PHP. API (Application Programming Interface) позволяет приложениям взаимодействовать друг с другом. Мы изучим основы REST, создадим простое API и научимся его использовать.

---

### 1. Что такое RESTful API?
REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов. RESTful API использует HTTP-методы (GET, POST, PUT, DELETE) для выполнения операций с ресурсами.

---

### 2. Создание простого RESTful API
#### Шаг 1: Настройка маршрутов
Создайте файл index.php и настройте маршруты:
<?php
header("Content-Type: application/json");

$request_method = $_SERVER['REQUEST_METHOD'];
$request_uri = $_SERVER['REQUEST_URI'];

switch ($request_method) {
case 'GET':
if ($request_uri == '/users') {
getUsers();
} elseif (preg_match('/\/users\/(\d+)/', $request_uri, $matches)) {
getUser($matches[1]);
}
break;
case 'POST':
if ($request_uri == '/users') {
createUser();
}
break;
default:
http_response_code(405);
echo json_encode(["message" => "Метод не поддерживается"]);
}
?>


#### Шаг 2: Функции для обработки запросов
<?php
function getUsers() {
$users = [
["id" => 1, "name" => "Иван"],
["id" => 2, "name" => "Мария"]
];
echo json_encode($users);
}

function getUser($id) {
$users = [
1 => ["id" => 1, "name" => "Иван"],
2 => ["id" => 2, "name" => "Мария"]
];
if (isset($users[$id])) {
echo json_encode($users[$id]);
} else {
http_response_code(404);
echo json_encode(["message" => "Пользователь не найден"]);
}
}

function createUser() {
$data = json_decode(file_get_contents("php://input"), true);
if (isset($data['name'])) {
echo json_encode(["message" => "Пользователь создан", "name" => $data['name']]);
} else {
http_response_code(400);
echo json_encode(["message" => "Неверные данные"]);
}
}
?>


---

### 3. Использование API
#### GET-запрос (получение списка пользователей)
curl -X GET http://localhost/users

Ответ:
[
{"id": 1, "name": "Иван"},
{"id": 2, "name": "Мария"}
]


#### GET-запрос (получение одного пользователя)
curl -X GET http://localhost/users/1

Ответ:
{"id": 1, "name": "Иван"}


#### POST-запрос (создание пользователя)
curl -X POST -H "Content-Type: application/json" -d '{"name": "Алексей"}' http://localhost/users

Ответ:
{"message": "Пользователь создан", "name": "Алексей"}


---

### 4. Обработка ошибок
- 404 Not Found: Ресурс не найден.
- 400 Bad Request: Неверные данные.
- 405 Method Not Allowed: Метод не поддерживается.

Пример:
<?php
http_response_code(404);
echo json_encode(["message" => "Ресурс не найден"]);
?>


---

### 5. Работа с JSON
PHP предоставляет функции для работы с JSON:
- json_encode(): Преобразует массив в JSON.
- json_decode(): Преобразует JSON в массив.

Пример:
<?php
$data = ["name" => "Иван", "age" => 25];
$json = json_encode($data);
echo $json; // {"name":"Иван","age":25}

$array = json_decode($json, true);
print_r($array); // Array ( [name] => Иван [age] => 25 )
?>


---

### 6. Авторизация и токены
Для защиты API часто используются токены (например, JWT).

#### Пример с JWT
1. Установите библиотеку для работы с JWT:

   composer require firebase/php-jwt

2. Создайте токен:

   <?php
use Firebase\JWT\JWT;

$key = "your_secret_key";
$payload = [
"user_id" => 1,
"username" => "Иван"
];
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>

3. Проверка токена:

   <?php
try {
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
} catch (Exception $e) {
http_response_code(401);
echo json_encode(["message" => "Ошибка авторизации"]);
}
?>


---
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
Пример создания Интернет-магазина на OpenCart 2.0

В последнее время наиболее актуальным способом заработка в Интернете является создание своего Интернет-магазина.

Ещё несколько лет назад это было сделать крайне затруднительно. Во-первых, не было нормальных CMS, во-вторых, не было логистики, в-третьих, были проблемы с поставщиками, да и Интернет был слабо ещё развит, поэтому и клиентов трудно было найти. А вот сейчас просто золотая пора, так как есть прекрасная CMS под названием OpenCart, есть сотни фирм, подключающих всю логистику под ключ, начиная с обзвона клиентов и заканчивая доставкой и расчётно-кассовым обслуживанием. Клиентов в Интернете масса, так как уже все привыкли покупать товары по Интернету.

Осталась лишь одна проблема - качественное создание Интернет-магазина. И вот тут на помощь Вам придёт очень интересное бесплатное видео по OpenCart 2.0 от Михаила Русакова: https://Hottab.programsite.ru/freeim2.

Особенностью данного видео является то, что в нём с нуля создаётся полноценный Интернет-магазин, который останется лишь заполнить товарами. Фактически, те, кто вообще никогда не создавал сайты, после просмотра данного видео с лёгкостью создадут свой собственный Интернет-магазин: https://Hottab.programsite.ru/freeim2.
Создание и продвижение лендинга под ключ

Последнее время появляется всё больше и больше лендингов. И это легко объясняется тем, что на лендингах гораздо проще продавать товары и услуги. Помимо этого, на лендингах гораздо эффективнее собирать данные клиентов/подписчиков. Давно уже было протестировано, что если взять сайт-визитку под какой-то товар и лендинг под тот же товар, то итоговая конверсия будет в несколько раз выше именно у лендинга.

Однако, надо понимать, что создать хороший лендинг - не так-то и просто. Поставьте себя на место клиента, который хочет заказать лендинг. Он вводит соответствующий запрос в поисковик, и ему вываливается несколько десятков лендингов, предлагающие подобные услуги. Как ему выбрать?

Поэтому мы с Вами приходим к выводу, что крайне важно научиться создавать хорошие лендинги. А кто может научить лучше этому делу, чем тот, кто этому посветил 6 лет своей жизни, и все его лендинги были прибыльны всё это время.

И таким человеком является Михаил Русаков. Он записал курс "Создание и продвижение лендинга под ключ": https://Hottab.programsite.ru/landing. Особенностью этого курса является то, что Михаил в нём абсолютно с нуля создаёт лендинг: landing-order.ru - изначально не было даже текста. То есть, написание текста, заказ дизайна на фрилансе, затем вёрстка, программирование клиентской части и Admin-панели, а после размещение в Интернете - всё это Вы увидите в курсе "Создание и продвижение лендинга под ключ". Сам же лендинг посвещён созданию лендингов на заказ.

Более того, созданием и размещением лендинга в Интернете дело не заканчивается. Михаил ещё и начинает продвигать его, в том числе, и через Яндекс.Директ прямо в курсе, рассказывая и показывая всё максимально детально. И, наконец, было произведено тестирование, результаты которого удивили даже Михаила. Оказалось, что заявка в такой конкурентной теме как создание лендингов на заказ, стоит всего 200 рублей! Более того, в день приходит по 1-2 заявки. Сами же цены на создание лендинга начинаются от 15 тысяч рублей. Средняя же составляет где-то 30-40 тысяч рублей. Представьте, Вы получаете клиента за 200 рублей, а он Вам даёт заказ даже пусть всего на 15 000 рублей. Не это ли доказательство качества лендинга? Вот именно такой со всеми комментариями Вы создадите в этом курсе: https://Hottab.programsite.ru/landing.
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 31: Работа с файлами и загрузка данных на сервер 🐘

В этой главе мы рассмотрим, как работать с файлами в PHP, включая загрузку файлов на сервер, чтение и запись данных, а также управление файловой системой. Эти навыки необходимы для создания функциональных веб-приложений.

---

### 1. Загрузка файлов на сервер
PHP позволяет загружать файлы на сервер через HTML-форму.

#### HTML-форма
<form action="upload.php" method="post" enctype="multipart/form-data">
Выберите файл: <input type="file" name="file">
<input type="submit" value="Загрузить">
</form>


#### Обработка загрузки (upload.php)
<?php
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$upload_dir = 'uploads/';
$upload_file = $upload_dir . basename($_FILES['file']['name']);

if (move_uploaded_file($_FILES['file']['tmp_name'], $upload_file)) {
echo "Файл успешно загружен!";
} else {
echo "Ошибка при загрузке файла!";
}
} else {
echo "Ошибка: " . $_FILES['file']['error'];
}
?>


---

### 2. Чтение и запись файлов
PHP предоставляет функции для работы с файлами.

#### Чтение файла
<?php
$file = fopen("example.txt", "r") or die("Не удалось открыть файл!");
echo fread($file, filesize("example.txt"));
fclose($file);
?>


#### Запись в файл
<?php
$file = fopen("example.txt", "w") or die("Не удалось открыть файл!");
$text = "Привет, мир!";
fwrite($file, $text);
fclose($file);
?>


---

### 3. Работа с директориями
PHP позволяет создавать, удалять и переименовывать директории.

#### Создание директории
<?php
if (!file_exists("new_dir")) {
mkdir("new_dir");
echo "Директория создана!";
} else {
echo "Директория уже существует!";
}
?>


#### Удаление директории
<?php
if (file_exists("new_dir")) {
rmdir("new_dir");
echo "Директория удалена!";
} else {
echo "Директория не существует!";
}
?>


#### Переименование директории
<?php
if (file_exists("old_dir")) {
rename("old_dir", "new_dir");
echo "Директория переименована!";
} else {
echo "Директория не существует!";
}
?>


---

### 4. Работа с CSV
CSV (Comma-Separated Values) — это формат для хранения табличных данных.

#### Чтение CSV
<?php
$file = fopen("data.csv", "r");
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
print_r($data);
}
fclose($file);
?>


#### Запись в CSV
<?php
$file = fopen("data.csv", "w");
$data = [
["Иван", 25],
["Мария", 30]
];
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
?>


---

### 5. Работа с JSON
JSON (JavaScript Object Notation) — это популярный формат для обмена данными.

#### Чтение JSON
<?php
$json = '{"name": "Иван", "age": 25}';
$array = json_decode($json, true);
print_r($array);
?>


#### Запись JSON
<?php
$array = ["name" => "Иван", "age" => 25];
$json = json_encode($array);
echo $json;
?>


---

### 6. Управление файловой системой
PHP предоставляет функции для работы с файловой системой.

#### Проверка существования файла
<?php
if (file_exists("example.txt")) {
echo "Файл существует!";
} else {
echo "Файл не существует!";
}
?>


#### Получение размера файла
<?php
echo "Размер файла: " . filesize("example.txt") . " байт";
?>


#### Удаление файла
<?php
if (unlink("example.txt")) {
echo "Файл удалён!";
} else {
echo "Ошибка при удалении файла!";
}
?>


---

🎯 Что дальше?
В следующей главе мы изучим работу с сессиями и куками, а также управление состоянием пользователя. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Файлы #Загрузка #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 32: Работа с сессиями и куками 🐘

В этой главе мы рассмотрим, как управлять состоянием пользователя с помощью сессий и кук. Эти технологии позволяют сохранять данные между запросами, что особенно полезно для авторизации, корзин покупок и персонализации.

---

### 1. Сессии
Сессии позволяют хранить данные на сервере для каждого пользователя. Каждая сессия имеет уникальный идентификатор, который передаётся через куки.

#### Начало сессии
<?php
session_start();
?>


#### Сохранение данных в сессии
<?php
session_start();
$_SESSION['username'] = "Иван";
echo "Данные сохранены в сессии!";
?>


#### Получение данных из сессии
<?php
session_start();
if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Сессия не найдена!";
}
?>


#### Удаление данных из сессии
<?php
session_start();
unset($_SESSION['username']);
echo "Данные удалены из сессии!";
?>


#### Завершение сессии
<?php
session_start();
session_destroy();
echo "Сессия завершена!";
?>


---

### 2. Куки
Куки позволяют хранить данные на стороне клиента. Они могут быть использованы для персонализации или отслеживания пользователей.

#### Установка куки
<?php
setcookie("username", "Иван", time() + 3600, "/");
echo "Кука установлена!";
?>


#### Получение данных из куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Кука не найдена!";
}
?>


#### Удаление куки
<?php
setcookie("username", "", time() - 3600, "/");
echo "Кука удалена!";
?>


---

### 3. Пример: Авторизация с использованием сессий
#### Форма входа
<form action="login.php" method="post">
Имя пользователя: <input type="text" name="username">
Пароль: <input type="password" name="password">
<input type="submit" value="Войти">
</form>


#### Обработка входа (login.php)
<?php
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

// Проверка логина и пароля (пример)
if ($username === "Иван" && $password === "12345") {
$_SESSION['username'] = $username;
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка авторизации
<?php
session_start();

if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


#### Выход из системы
<?php
session_start();
session_destroy();
echo "Вы вышли из системы!";
?>


---

### 4. Пример: Запоминание пользователя с использованием кук
#### Установка куки при входе
<?php
$username = $_POST['username'];
$password = $_POST['password'];

if ($username === "Иван" && $password === "12345") {
setcookie("username", $username, time() + 3600, "/");
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


---

### 5. Безопасность
- Сессии: Используйте session_regenerate_id() для предотвращения фиксации сессии.
- Куки: Устанавливайте флаг HttpOnly и Secure для защиты от XSS и перехвата.

  setcookie("username", "Иван", time() + 3600, "/", "", true, true);


---

🎯 Что дальше?
В следующей главе мы изучим работу с базами данных, включая PDO и ORM. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Сессии #Куки #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
React JS, Redux, ES2015 с Нуля до Гуру

Последнее время все большим и большим спросом на рынке пользуется язык программирования Javascript.

Именно благодаря ему появилась возможность создавать большие веб приложения, или так называемые одностраничники – single page application - сайты, где есть всего одна страница, а все остальное динамически делается Javascript’ом. Т.е движок сайта находится на клиентской стороне. Например Google Docs, Google Spreadsheet, Microsoft Outlook и многое другое.

Все перечисленные приложения – аналоги полноценных компьютерных программ, которые ничуть не уступают им, а даже наоборот, превосходят своих прародителей как минимум из-за того, что браузер доступен с любого устройства и не зависит от системы, в которой он запускается.

Созданы целые Javascript фреймворки, позволяющие ускорить и упростить процесс их разработки.

Одним из самых популярных фреймворков является React JS от компании Facebook. Если вы хотите попасть в данную сферу, вне зависимости от ваших целей: будь то разработка своего собственного стартапа, или работа в большой компании – у вас есть уникальный шанс получить отличную выборку по данной профессии, в курсе по React JS, который позволит вам понять и научиться делать профессиональные, мощные, современные проекты: https://Hottab.programsite.ru/reactjs

За этим подходом – будущее. И все это стало возможным благодаря javascript. Из-за этого сейчас у работодателей обнаружился большой спрос на такую профессию, как FrontEnd разработчик, и в будущем этот спрос будет только расти и расти, так как эта профессия появилась относительно недавно.

Конкуренция небольшая, а зарплаты очень высокие. Настолько, что данный курс вы полностью окупите за половину рабочего дня.

В рамках данного курса Вами будет изучено как в 2016 году создаются мощные веб приложения, какие инструменты Вам понадобятся и какие технологии лучше использовать: https://Hottab.programsite.ru/reactjs

Помимо основного курса, в него также будут входить 3 дополнительных бонусных урока.

И последний, очень важный бонус – целый курс «JavaScript, jQuery и Ajax с Нуля до Гуру»! Он позволит вам полностью погрузиться в мир JavaScript, а от этого сразу перейти к изучению современных, более сложных технологий: https://Hottab.programsite.ru/reactjs
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Полное руководство по PHP – Глава 33: Работа с базами данных (PDO и ORM) 🐘

В этой главе мы углубимся в работу с базами данных в PHP. Вы узнаете, как использовать PDO (PHP Data Objects) для безопасного взаимодействия с базами данных, а также познакомитесь с основами ORM (Object-Relational Mapping).

---

### 1. PDO: Подключение к базе данных
PDO — это универсальный интерфейс для работы с различными СУБД (MySQL, PostgreSQL, SQLite и др.).

#### Подключение к MySQL
<?php
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';

try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Подключение успешно!";
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
?>


---

### 2. Выполнение запросов
#### SELECT
<?php
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Имя: " . $row['name'] . ", Возраст: " . $row['age'] . "<br>";
}
?>


#### INSERT
<?php
$name = "Иван";
$age = 25;

$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt->execute(['name' => $name, 'age' => $age]);
echo "Запись добавлена!";
?>


#### UPDATE
<?php
$id = 1;
$newAge = 30;

$stmt = $pdo->prepare("UPDATE users SET age = :age WHERE id = :id");
$stmt->execute(['age' => $newAge, 'id' => $id]);
echo "Запись обновлена!";
?>


#### DELETE
<?php
$id = 1;

$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
echo "Запись удалена!";
?>


---

### 3. Транзакции
Транзакции позволяют выполнять несколько запросов как единое целое. Если один запрос завершится ошибкой, все изменения откатываются.

Пример:
<?php
try {
$pdo->beginTransaction();

$stmt1 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt1->execute(['name' => 'Иван', 'age' => 25]);

$stmt2 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt2->execute(['name' => 'Мария', 'age' => 30]);

$pdo->commit();
echo "Транзакция успешно завершена!";
} catch (Exception $e) {
$pdo->rollBack();
echo "Ошибка: " . $e->getMessage();
}
?>


---

### 4. ORM: Введение
ORM (Object-Relational Mapping) — это технология, которая позволяет работать с базой данных как с объектами в коде. Популярные ORM для PHP: Eloquent (Laravel), Doctrine.

#### Пример с Eloquent
1. Установите Eloquent через Composer:

   composer require illuminate/database

2. Настройка:

   <?php
require 'vendor/autoload.php';

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my_database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);

$capsule->setAsGlobal();
$capsule->bootEloquent();
?>

3. Создание модели:

   <?php
class User extends Illuminate\Database\Eloquent\Model {
protected $table = 'users';
}

$users = User::all();
foreach ($users as $user) {
echo "Имя: " . $user->name . ", Возраст: " . $user->age . "<br>";
}
?>


---

### 5. Миграции
Миграции позволяют управлять структурой базы данных через код.

#### Пример с Eloquent
1. Создайте миграцию:

   <?php
use Illuminate\Database\Capsule\Manager as Capsule;

Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>

2. Примените миграцию:

   <?php
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>


---
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
Создание и продвижение лендинга для начинающих

В последние годы всё больше и больше товаров и услуг предлагается не на обычных сайтах-визитках, а на лендингах. Причина этому проста: лендинги дают в разы большую конверсию. Безусловно, у них есть и другие преимущества: проще (дешевле) создать, проще тестировать, проще изменять, проще настраивать рекламную кампанию - в общем, преимущества очевидны, отсюда и спрос на них.

Однако, надо понимать, что создать хороший лендинг достаточно трудно, сразу возникает масса вопросов: как написать текст, как сделать дизайн, как сверстать, как запрограммировать, как выложить в Интернет. А после ещё возникает вопрос, а как создать поток трафика на него, чтобы уже начать получать первых клиентов.

Так вот на все эти вопросы отвечает Михаил Русаков в своём бесплатном курсе по созданию и продвижению лендинга: https://Hottab.programsite.ru/freelanding

Это абсолютно бесплатный набор уроков, где Вы получите ответы на все вопросы, указанные выше. Причём, Михаил Русаков - это практик, который создал уже больше сотни лендингов для себя и на заказ, начиная с 2010-го года.

Более того, эта информация необходима и тем, кто планирует заказывать лендинги, так как в обязательном порядке нужно контролировать качество того, что делают. Поэтому всем, кто планирует заниматься лендингами, я настоятельно рекомендую пройти бесплатный курс от Михаила Русакова: https://Hottab.programsite.ru/freelanding.