Работа с загрузкой файлов в PHP

Содержание

Слайд 2

Загрузка файла PHP 5 PHP легко загружать файлы на сервер. Однако

Загрузка файла PHP 5

PHP легко загружать файлы на сервер.
Однако с легкостью возникает

опасность, поэтому всегда будьте осторожны при разрешении загрузки файлов!

Во-первых, убедитесь, что PHP настроен на разрешение загрузки файлов.
В вашем файле «php.ini» найдите директиву file_uploads и установите для неё значение:
file_uploads = On

Затем создайте форму HTML, которая позволяет пользователям выбирать файл изображения, который они хотят загрузить:

Слайд 3

Загрузка файла PHP 5 Select image to upload:

Загрузка файла PHP 5

    Select image to upload:          

Слайд 4

Загрузка файла PHP 5 Некоторые правила для HTML-формы выше: Убедитесь, что

Загрузка файла PHP 5

Некоторые правила для HTML-формы выше:
Убедитесь, что в форме используется

метод = "post"
Форма также нуждается в следующем атрибуте: enctype = "multipart / form-data". Он указывает, какой тип содержимого использовать при отправке формы
Без вышеуказанных требований загрузка файла не будет работать.
Другие примечания:
Атрибут type = "file" тега показывает поле ввода в качестве элемента выбора файла, с кнопкой «Обзор» рядом с элементом управления вводом
Вышеуказанная форма отправляет данные в файл под названием «upload.php»
Слайд 5

Загрузка файла PHP 5 Файл upload.php содержит код для загрузки файла:

Загрузка файла PHP 5

Файл upload.php содержит код для загрузки файла:

$target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) {     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);     if($check !== false) {         echo "File is an image - " . $check["mime"] . ".";         $uploadOk = 1;     } else {         echo "File is not an image.";         $uploadOk = 0;     } } ?>
Слайд 6

Загрузка файла PHP 5 $target_dir = "uploads /" - указывает каталог,

Загрузка файла PHP 5

$target_dir = "uploads /" - указывает каталог, в который

будет помещен файл
$target_file указывает путь к файлу, который будет загружен
$uploadOk = 1 еще не используется (будет использоваться позже)
$imageFileType содержит расширение файла
Затем проверяется, является ли файл фактическим или поддельным изображением
Слайд 7

Загрузка файла PHP 5 Теперь мы можем добавить некоторые ограничения. Сначала

Загрузка файла PHP 5

Теперь мы можем добавить некоторые ограничения.
Сначала мы проверим, существует

ли файл в папке «uploads». Если это так, отображается сообщение об ошибке, а $uploadOk устанавливается в 0:

// Check if file already exists if (file_exists($target_file)) {     echo "Sorry, file already exists.";     $uploadOk = 0; }

Слайд 8

Загрузка файла PHP 5 Теперь мы хотим проверить размер файла. Если

Загрузка файла PHP 5

Теперь мы хотим проверить размер файла. Если файл больше 500

КБ, отображается сообщение об ошибке, а $uploadOk устанавливается в 0:

 // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) {     echo "Sorry, your file is too large.";     $uploadOk = 0; }

Слайд 9

Загрузка файла PHP 5 Приведенный ниже код позволяет пользователям загружать файлы

Загрузка файла PHP 5

Приведенный ниже код позволяет пользователям загружать файлы JPG, JPEG,

PNG и GIF. Все остальные типы файлов выдают сообщение об ошибке перед установкой $uploadOk в 0:

// Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {     echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";     $uploadOk = 0; }

Слайд 10

image file is a actual image or fake image if(isset($_POST["submit"])) {     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);     if($check !== false) {         echo "File is an image - " . $check["mime"] . ".";         $uploadOk = 1;     } else {         echo "File is not an image.";         $uploadOk = 0;     } } // Check if file already exists if (file_exists($target_file)) {     echo "Sorry, file already exists.";     $uploadOk = 0; }
Слайд 11

// Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry,

// Check file size if ($_FILES["fileToUpload"]["size"] > 500000) {     echo "Sorry, your file is too large.";    

$uploadOk = 0; }
// Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {     echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";     $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) {     echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else {     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {         echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";     } else {         echo "Sorry, there was an error uploading your file.";     } } ?>
Слайд 12

Работа с cookies PHP

Работа с cookies PHP

Слайд 13

PHP 5 Cookies cookie часто используется для идентификации пользователя. cookie -

PHP 5 Cookies

cookie часто используется для идентификации пользователя. cookie - это небольшой файл,

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

cookie создается с помощью функции setcookie ().

Синтаксис
setcookie(name, value, expire, path, domain, secure, httponly);
Требуется только параметр name . Все остальные параметры являются необязательными.

Слайд 14

PHP 5 Cookies "; echo "Value is: " . $_COOKIE[$cookie_name]; }

PHP 5 Cookies

1 day ?> ";     echo "Value is: " . $_COOKIE[$cookie_name]; } ?>

Затем мы извлекаем значение cookie «user» (используя глобальную переменную $ _COOKIE). Мы также используем функцию isset (), чтобы выяснить, установлен ли cookie

В следующем примере создается cookie с именем «user» со значением «John Doe». Срок действия cookie истекает через 30 дней (86400 * 30). «/» Означает, что cookie доступен на всем веб-сайте (в противном случае выберите каталог, который вы предпочитаете).

Слайд 15

PHP 5 Cookies "; echo "Value is: " . $_COOKIE[$cookie_name]; }

PHP 5 Cookies

'" . $cookie_name . "' is not set!"; } else {     echo "Cookie '" . $cookie_name . "' is set!
";     echo "Value is: " . $_COOKIE[$cookie_name]; } ?>

Чтобы изменить cookie, просто установите (снова) cookie с помощью функции setcookie ():

Слайд 16

PHP 5 Cookies Чтобы удалить cookie, используйте функцию setcookie () с датой истечения в прошлом:

PHP 5 Cookies

- 3600); ?>

Чтобы удалить cookie, используйте функцию setcookie () с датой истечения в прошлом:

Слайд 17

PHP 5 Cookies В следующем примере создается небольшой скрипт, который проверяет,

PHP 5 Cookies

В следующем примере создается небольшой скрипт, который проверяет, включены ли

cookie. Сначала попробуйте создать тестовый cookie с помощью функции setcookie (), затем подсчитайте переменную массива $ _COOKIE:

 0) {     echo "Cookies are enabled."; } else {     echo "Cookies are disabled."; } ?>

Слайд 18

Сеансы PHP 5

Сеансы PHP 5

Слайд 19

Сеансы PHP 5 Сессия - способ хранения информации (в переменных), которая

Сеансы PHP 5

Сессия - способ хранения информации (в переменных), которая будет использоваться

на нескольких страницах.
В отличие от файла cookie, информация не сохраняется на компьютере пользователя.
Когда вы работаете с приложением, вы открываете его, делаете некоторые изменения и закрываете его. Это очень похоже на сеанс. Компьютер знает, кто вы. Он знает, когда вы запускаете приложение и когда закончите. Но в Интернете есть одна проблема: веб-сервер не знает, кто вы и что вы делаете, потому что HTTP-адрес не поддерживает состояние.
Переменные сеанса решают эту проблему, сохраняя информацию пользователя, которая будет использоваться на нескольких страницах (например, имя пользователя, любимый цвет и т. Д.). По умолчанию переменные сеанса сохраняются до тех пор, пока пользователь не закроет браузер.
Так; Переменные сеанса содержат информацию об одном пользователе и доступны для всех страниц в одном приложении.
Слайд 20

Сеансы PHP 5 (Начало сеанса PHP) Сессия начинается с функции session_start

Сеансы PHP 5 (Начало сеанса PHP)

= "green"; $_SESSION["favanimal"] = "cat"; echo "Session variables are set."; ?>

Сессия начинается с функции session_start ().
Переменные сеанса задаются с помощью глобальной переменной PHP: $ _SESSION.

Теперь давайте создадим новую страницу под названием «demo_session1.php».

Слайд 21

Сеансы PHP 5(Получить значения переменных сеанса PHP) "; echo "Favorite animal

Сеансы PHP 5(Получить значения переменных сеанса PHP)

set on previous page echo "Favorite color is " . $_SESSION["favcolor"] . ".
"; echo "Favorite animal is " . $_SESSION["favanimal"] . "."; ?>

На этой странице мы получим доступ к информации о сеансе, которую мы установили на первой странице («demo_session1.php»).
Обратите внимание, что переменные сеанса не передаются отдельно для каждой новой страницы, вместо этого они извлекаются из сеанса, который мы открываем в начале каждой страницы (session_start ()).
Также обратите внимание, что все значения переменной сеанса хранятся в глобальной переменной $ _SESSION

Затем мы создаем еще одну страницу под названием «demo_session2.php».

Слайд 22

Сеансы PHP 5(Получить значения переменных сеанса) Другой способ показать все значения

Сеансы PHP 5(Получить значения переменных сеанса)


Другой способ показать все значения переменной сеанса

для сеанса пользователя 

В большинстве сеансов пользовательский ключ на компьютере пользователя выглядит примерно так: 765487cf34ert8dede5a562e4f3a7e12. 
Затем, когда сеанс открывается на другой странице, php сканирует компьютер на наличие пользовательского ключа. 
Если есть совпадение, php обращается к этому сеансу, если нет, он запускает новый сеанс.

Слайд 23

Сеансы PHP 5(Изменение переменной сеанса)

Сеансы PHP 5(Изменение переменной сеанса)

it  $_SESSION["favcolor"] = "yellow"; print_r($_SESSION); ?>
Слайд 24

Сеансы PHP 5(Удаление сеанса)

Сеансы PHP 5(Удаление сеанса)


Слайд 25

AJAX PHP 5

AJAX PHP 5

Слайд 26

Введение в AJAX AJAX = асинхронный JavaScript и XML. AJAX -

Введение в AJAX

AJAX = асинхронный JavaScript и XML.
AJAX - это способ создания

быстрых и динамичных веб-страниц.
AJAX позволяет обновлять веб-страницы асинхронно, обмениваясь небольшими объемами данных с сервером в фоновом режиме. Это означает, что можно обновлять части веб-страницы без перезагрузки всей страницы.
Классические веб-страницы (которые не используют AJAX) должны перезагружать всю страницу, если содержимое должно измениться.
Примеры приложений с использованием AJAX: вкладки Google Карты, Gmail, Youtube и Facebook.
Слайд 27

Введение в AJAX

Введение в AJAX

Слайд 28

Введение в AJAX AJAX основан на интернет-стандартах и ​​использует комбинацию: Объект

Введение в AJAX

AJAX основан на интернет-стандартах и ​​использует комбинацию:
Объект XMLHttpRequest (для обмена

данными асинхронно с сервером)
JavaScript / DOM (для отображения / взаимодействия с информацией)
CSS (для стилизации данных)
XML (часто используется как формат для передачи данных)
Приложения AJAX независимы от браузера и платформы!
Слайд 29

PHP - AJAX и PHP function showHint(str) { if (str.length ==

PHP - AJAX и PHP

Start typing a name in the input field below:

  First name: 

Suggestions: 


В приведенном выше примере, когда пользователь вводит символ в поле ввода, выполняется функция «showHint ()».
Функция запускается событием onkeyup.

Сначала проверяется, пусто ли поле ввода (str.length == 0). Если это так, очищаем содержимое поля txtHint и выходим из функции.
Однако, если поле ввода не пусто, делаем следующее:
Создание объекта XMLHttpRequest
Создание функции, которая будет выполнена, когда ответ сервера будет готов
Отправление запрос на файл PHP (gethint.php) на сервере
Обратите внимание, что параметр q добавляется в url (gethint.php?q="+ str)
И переменная str содержит значение из поля ввода

Слайд 30

PHP - AJAX и PHP // get the q parameter from

PHP - AJAX и PHP

= "Cinderella"; $a[] = "Diana"; $a[] = "Eva"; $a[] = "Fiona"; $a[] = "Gunda"; $a[] = "Hege"; $a[] = "Inga"; $a[] = "Johanna"; $a[] = "Kitty"; $a[] = "Linda"; $a[] = "Nina"; $a[] = "Ophelia"; $a[] = "Petunia"; $a[] = "Amanda"; $a[] = "Raquel"; $a[] = "Cindy"; $a[] = "Doris"; $a[] = "Eve"; $a[] = "Evita"; $a[] = "Sunniva"; $a[] = "Tove"; $a[] = "Unni"; $a[] = "Violet"; $a[] = "Liza"; $a[] = "Elizabeth"; $a[] = "Ellen"; $a[] = "Wenche"; $a[] = "Vicky";

// get the q parameter from URL $q = $_REQUEST["q"]; $hint = ""; // lookup all hints from array if $q is different from ""  if ($q !== "") {     $q = strtolower($q);     $len=strlen($q);     foreach($a as $name) {         if (stristr($q, substr($name, 0, $len))) {             if ($hint === "") {                 $hint = $name;   } else {                 $hint .= ", $name";             }         }     } } // Output "no suggestion" if no hint was found or output correct values  echo $hint === "" ? "no suggestion" : $hint; ?>

Файл PHP - «gethint.php»

Слайд 31

PHP - AJAX и MySQL В следующем примере показано, как веб-страница

PHP - AJAX и MySQL

В следующем примере показано, как веб-страница может извлекать

информацию из базы данных с помощью AJAX:
Слайд 32

PHP - AJAX и MySQL function showUser(str) { if (str ==

PHP - AJAX и MySQL


  Select a person:   Peter Griffin   Lois Griffin   Joseph Swanson   Glenn Quagmire   
Person info will be listed here...

Сначала проверяем, выбран ли человек. Если ни один человек не выбран (str == ""), очищаем содержимое txtHint и выходим из функции. Если выбран человек, выполните следующие действия:
Создание объекта XMLHttpRequest
Создайте функцию, которая будет выполнена, когда ответ сервера будет готов
Отправка запроса в файл на сервере
Обратите внимание, что параметр (q) добавляется в URL-адрес (с содержимым выпадающего списка)

Слайд 33

table { width: 100%; border-collapse: collapse; } table, td, th {

mysqli_select_db($con,"ajax_demo"); $sql="SELECT * FROM user WHERE id = '".$q."'"; $result = mysqli_query($con,$sql); echo "

"; while($row = mysqli_fetch_array($result)) {     echo "";     echo "";     echo "";     echo "";     echo "";     echo "";     echo ""; } echo "
Firstname Lastname Age Hometown Job
" . $row['FirstName'] . "" . $row['LastName'] . "" . $row['Age'] . "" . $row['Hometown'] . "" . $row['Job'] . "
"; mysqli_close($con); ?>

Исходный код в «getuser.php» 

PHP открывает соединение с сервером MySQL
Правильный человек найден
Создается таблица HTML, заполняется данными и отправляется обратно в «txtHint»

Слайд 34

jQuery - метод Load AJAX () Метод jQuery load () -

jQuery - метод Load AJAX ()

Метод jQuery load () - это простой,

но мощный метод AJAX.
Метод load () загружает данные с сервера и помещает возвращенные данные в выбранный элемент.

$(selector).load(URL,data,callback);

Требуемый URL-адрес указывает URL-адрес, который вы хотите загрузить.
Необязательный параметр данных указывает набор пар ключей / значений запроса для отправки вместе с запросом.
Необязательный параметр обратного вызова - это имя функции, которая должна быть выполнена после завершения метода load ().

jQuery and AJAX is FUN!!!

This is some text in a paragraph.


Cодержание нашего файла примера: «demo_test.txt»:

Следующий код загружает содержимое файла «demo_test.txt» в конкретный элемент

:

$("#div1").load("demo_test.txt");

Слайд 35

jQuery - методы AJAX get () и post () HTTP-запрос: GET

jQuery - методы AJAX get () и post ()

HTTP-запрос: GET против POST
Два

часто используемых метода для запроса-ответа между клиентом и сервером: GET и POST.
GET - запрашивает данные из указанного ресурса
POST - отправка данных, подлежащих обработке, на указанный ресурс
GET в основном используется для получения (получения) данных с сервера. Примечание. Метод GET может возвращать кэшированные данные.
POST также может использоваться для получения некоторых данных с сервера. Однако метод POST никогда не кэширует данные и часто используется для отправки данных вместе с запросом.
Слайд 36

jQuery - метод AJAX get () Метод $ .get () запрашивает

jQuery - метод AJAX get ()

Метод $ .get () запрашивает данные с

сервера с запросом HTTP GET.

Требуемый параметр URL указывает URL-адрес, который вы хотите запросить.
Необязательный параметр обратного вызова - это имя функции, которая будет выполнена, если запрос будет успешным.
В следующем примере используется метод $ .get () для извлечения данных из файла на сервере:

$("button").click(function(){
$.get("demo_test.asp", function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});

Первым параметром $ .get () является URL-адрес, который мы хотим запросить («demo_test.php»).
Второй параметр - это функция обратного вызова. Первый параметр обратного вызова содержит содержимое запрошенной страницы, а второй параметр обратного вызова содержит статус запроса.

Слайд 37

jQuery - метод AJAX post () Метод $ .post () запрашивает

jQuery - метод AJAX post ()

Метод $ .post () запрашивает данные с

сервера с помощью HTTP POST-запроса.

$.post(URL,data,callback);

Требуемый параметр URL указывает URL-адрес, который вы хотите запросить.
Необязательный параметр данных указывает некоторые данные для отправки вместе с запросом.
Необязательный параметр обратного вызова - это имя функции, которая будет выполнена, если запрос будет успешным.
В следующем примере используется метод $ .post () для отправки некоторых данных вместе с запросом:

$("button").click(function(){     $.post("demo_test_post.php",     {         name: "Donald Duck",         city: "Duckburg"     },     function(data, status){         alert("Data: " + data + "\nStatus: " + status);     }); });

Первым параметром $ .post () является URL-адрес, который мы хотим запросить («demo_test_post.php»).
Затем мы передаем некоторые данные для отправки вместе с запросом (имя и город).
Скрипт PHP в «demo_test_post.php» считывает параметры, обрабатывает их и возвращает результат.
Третий параметр - это функция обратного вызова. Первый параметр обратного вызова содержит содержимое запрошенной страницы, а второй параметр обратного вызова содержит статус запроса.

Слайд 38

Server Side Events -- события с сервера Современный стандарт Server-Sent Events

Server Side Events -- события с сервера

Современный стандарт Server-Sent Events позволяет

браузеру создавать специальный объект EventSource, который сам обеспечивает соединение с сервером, делает пересоединение в случае обрыва и генерирует события при поступлении данных.
Он, по дизайну, может меньше, чем WebSocket’ы.
С другой стороны, Server Side Events проще в реализации, работают по обычному протоколу HTTP и сразу поддерживают ряд возможностей, которые для WebSocket ещё надо реализовать.
Поэтому в тех случаях, когда нужна преимущественно односторонняя передача данных от сервера к браузеру, они могут быть удачным выбором.
Слайд 39

Server Side Events При создании объекта new EventSource(src) браузер автоматически подключается

Server Side Events

При создании объекта new EventSource(src) браузер автоматически подключается к

адресу src и начинает получать с него события:

var eventSource = new EventSource("/events/subscribe");
eventSource.onmessage = function(e) {
console.log("Пришло сообщение: " + e.data);
};

Чтобы соединение успешно открылось, сервер должен ответить с заголовком Content-Type: text/event-stream, а затем оставить соединение висящим и писать в него сообщения в специальном формате:

Каждое сообщение пишется после data:. Если после двоеточия есть пробел, то он игнорируется.
Сообщения разделяются двумя строками \n\n.
Если нужно переслать перевод строки, то сообщение разделяется. Каждая следующая строка пересылается отдельным data:.