Обратиться с вопросом

PHP-шпаргалка

19.03.2016

Конструкция открывается и закрывается:

<?php Здесь пишется код ?>

Вид переменных:

$a, или $blababla, или $supermegaparamname

Особый гемор:

  • всегда ставить точку с запятой ";" в конце строки
  • стараться избегать пробелов в конце строк, это ведет к ошибкам

Присвоение значений переменным:

$a = 10; $a = "Аз есьм значение переменной";

Операции с переменными самые обычные:

$a = $a+1; увеличивает на 1 значение $a++; увеличивает на 1 значение $a--; тут два минуса, уменьшает на 1 значение $a = $b * $c; перемножение

Вывод значений:

echo "Да будет переменная $a"; для строки единичных значений print $a; - для массивов чаще

Массив создается повторением переменной с разными значениями:

$param = "Иван"; $param = "Иванович"; $param = 21; $param = "мужчина";
Встроенные функции:
count($param); - посчитает количество ячеек в массиве isset($param); - проверит, есть ли такая переменная empty($param); - проверит, пустая я ли переменная date("y-m-d"); - выводит текущую дату. Можно играть кеглем и разделителем date("h-i-s"); - выводит текущее время. Можно играть разделителем.

Работа с функциями php

Объявляем функцию с именем hello и переменной $name. Функция введет имя во фразу, а выведется при обращении к имени функции с назначением значения в функцию.

function hello($name){ echo "$name, привет!" } hello("Степан");

Тоже самое с двумя переменными:

function hello($name, $sur_name){ echo "$name $sur_name, привет!" } hello("Степан", "Чельцов");

Тоже самое, переменные определяются отдельно от функции:

function hello($name, $sur_name){ echo "$name $sur_name, привет!" } $name = "Степан"; $sur_name = "Чельцов"; hello($name, $sur_name);

Выдаем результат при вызове через return:

function $matem($b){ $b = $b*2; return $b; } $result = matem("10");

Пример с массивом:

$mas10[] = "Иван"; $mas10[] = "Иванов"; $mas10[] = 21; $mas10[] = "муж."; $mas11[] = "Иван"; $mas11[] = "Иванов"; $mas11[] = 21; $mas11[] = "муж."; $mas12[] = "Иван"; $mas12[] = "Иванов"; $mas12[] = 21; $mas12[] = "муж.";   function anketa(){ foreach($array as $item){ echo "$item <br>"; } } anketa(mas10); anketa(mas11); anketa(mas12);

Вызов значения и функций из других файлов. Вызов через include не останавливает работу страницы в случае ошибки:

include "some_function.php";

Вызов значения и функций из других файлов. Вызов через require останавливает работу всей страницы в случае ошибки:

require "some_function.php";

Вызов значения и функций из других файлов только один раз:

include_once "some_function.php";

Вызов значения и функций из других файлов только один раз:

require_once "some_function.php";

Глобальные массивы

Массив POST

Массив POST хранит данные из форм сайта в заданные файлы:

form method = "post" action = "tutor-putor.php> <input type = "text" name = "login" value = "Логин"/><br> <input type = "email" name = "email" value = "Почта"/><br> <input type = "submit" name = "save" value = "Сохранить"/><br> </form>

В файле tutor-putor.php следующее содержимое для приема и вывода данных:

<?php $_POST["login"]; $_POST["email"]; ?>

Чтобы защитить сайт от инъекций, начинаем чистить ввод. Сначала от html-текстов через strip_tags:

$login = strip_tags($_POST['login']);
Уберем пробелы из логина через trim:
$login = strip_tags(trim($_POST['login']));
Преобразуем спец.символы в их код через htmlspecialchars:
$login = htmlspecialchars(strip_tags(trim($_POST['login'])));
Сделаем очистку через функцию:
function clear_data($same_data){ return htmlspecialchars(strip_tags(trim($same_data))); } $login = clear_data($_POST['login']); $email = clear_data($_POST['email']);

Массив GET

Массив нужен для создания динамики на сайте. С одной стороны, можно передать данные на сервер. С другой, определить содержимое сайта в зависимости от параметра.

Чтобы передать данные можно использовать метод GET:

form method = "get" action = "tutor-putor.php> <input type = "text" name="login" value = "Логин"/><br> <input type = "email" name = "email" value = "Почта"/><br> <input type = "submit" name = "save" value = "Сохранить"/><br> </form>   <?php $_GET["login"]; $_GET["email"]; ?>

Выдача получится через адресную строку:

http://cheltsov.ru/tutor-putor.php?login=vasya&email=vasya@gmail.com&save=Сохранить

Пример работы без предварительной подготовки через GET:

<?php if($_GET['id']==1) echo "Пункт номер 1"; else echo "Другой пункт"; ?>

Переход по адресу с заданным значением:

http://cheltsov.ru/tutor-putor.php?id=1
Выдаст
Пункт номер 1

Изменим содержимое сайта в зависимости от параметра:

<?php switch($page){ case = "main"; $title = "Главная страница"; $text = "Это главная страница"; break; case = "news"; $title = "Страница новостей; $text = "Это новостная страница"; break; default; $title = "404 страница; $text = "Это страница для ошибочных данных"; break; } ?> <h1><?php echo $title ?></h1> <p><?php echo $text ?></p>
http://cheltsov.ru/tutor-putor.php?page=main
Выдаст
Главная страница Это главная страница

Массив SERVER

Массив SERVER для получения данных от сервера. Например, получение IP-адреса посетителя:

$_SERVER['REMOTE_ADDR']

Или информация про браузер посетителя:

$_SERVER['HTTP_USER_AGENT']

Вывод содержимого ответа сервера в явном виде:

<html> <body> <pre> <?php print_r($_SERVER); ?> </pre> </body> </html>

Константы

Определяем константы через define:

<?php define ("MYNAME","Stepan"); echo MYNAME; ?>

Подстановка адреса нашего сайта для указания неполного адреса при программировании:

<?php define ("BASE_URL","http://cheltsov.ru/"); ?> <img src="<?php BASE_URL;?>images/logo.png"/>

Cookies

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

Чтобы создать файл cookies, надо:

<?php setcookie("name","Stepan", time()+36000); ?> <DOCTYPE> <html>

Чтобы вызвать вызвать значение сохраненной куки, пишем $_COOKIE['']:

<body> <?php echo $_COOKIE['name']; ?> </body> </html>
Получаем:
Stepan
 
<?php if (isset($_POST['send'])){ $bg = $_POST['bg']; setcookie("background","$bg", time()+3600); } ?> <DOCTYPE> <html> <head></head> <body> <?php if(isset($_COOKIE['background'])){?> <style> body { background:<?php echo $_COOKIE['background'];?>; } </style> <?php }?> <form method="post" action=""> Выберите цвет фона страницы:<br> <select name="bg"> <option value="red">Красный</value> <option value="black">Черный</value> <option value="yellow">Желтый</value> </select> <input type="submit" name="send" value="Выбрать"/> </form> <p>В куки записан цвет <?php echo $_COOKIE['background'];?></p> </body> </html>

Чтобы удалить куку, есть способы через вывод отрицательного времени жизни куки:

setcookie("background","$bg", time()-3600);

Или через обнуление данных:

setcookie("background","");

Или проще:

setcookie("background");

Сессии

Сессии выполняют примерно те же роли, что и куки. Разница в количестве сохраняемых данных. Куки могут сохранять немного, а сессии много. Куки хранятся долго, независимо от открытости браузера. А сессии обычно заканчиваются при закрытии браузера.

Начинаем объявление сессии:

<?php session_start(); if (isset($_POST['send'])){ $_SESSION['name'] = strip_tags(trim($_POST['name'])); } if(!isset($_SESSION['name'])){ ?> <DOCTYPE> <html> <head></head> <body> <form method="post" action=""> Звать как?<br> <input type="text" name="name" value="Имя"/> <input type="submit" name="send" value="Выбрать"/> </form> <?php } else{ echo "Hello, ".$_SESSION['name']; } ?> </body> </html>

Уничтожить сессию можно командой session_destroy():

session_destroy();

Частичное уничтожение сессии (отдельные данные) делаем через unset:

unset($_SESSION['name']);

Подключение базы данных

Если база уже создана, с ней надо работать. Подключается база готовой функцией:

mysql_connect("localhost","root","12345"); mysql_select_db("base_name");

Красивый подход через переменные:

$connection = mysql_connect("localhost","root","12345"); $data_base = mysql_select_db("base_name");

Добавим кодировку:

mysql_set_charset("utf8");

Или так:

mysql_query("SET NAMES 'UTF8'");

Проверим соединение:

<?php if(!$connection || !$data_base){ exit(mysql_error()); } else{ echo "Соединение успешно прошло"; } ?>

После окончания работы с базой данных закрываем соединение через:

mysql_close();

Выборка из базы данных. Готовим выборку и передаем все в переменную:

$result = mysql_query("SELECT * FROM base_name"); mysql_close();

Создаем массив для всех полученных данных, чтобы работать с ним:

$row = mysql_fetch_array($result);

Выводим какую-нибудь ячейку из полученного массива:

echo $row['title']."<br>"; echo $row['text'];

Чтобы вывести все данные по строчно из базы, введем условие while:

while($row = mysql_fetch_array($result)){ echo $row['title']."<br>"; echo $row['text']; }
И добавим верстки к нашему выводу данных:
<?php while($row = mysql_fetch_array($result)){ ?> <div class="content"> <h2><?php echo $row['title'];?></h2> <p><?php echo $row['text'];?></p> </div> <?php } ?>

Добавим в выборку сортировку по какому-нибудь параметру. Для этого добавляем при формировании массива "ORDER BY". Значение DESC сортирует в обратном порядке по полю id:

$result = mysql_query("SELECT * FROM base_name ORDER BY id DESC");

Ограничим выборку количеством выдачи, скажем только 25 результатов. Используем команду LIMIT:

$result = mysql_query("SELECT * FROM base_name ORDER BY id DESC LIMIT 25");

Введем фильтрацию выдачи по заданному слову через команду WHERE:

$result = mysql_query("SELECT * FROM base_name WHERE text='новость' ORDER BY id DESC LIMIT 25");

Ограничим получение данных из базы перечислением нужных колонок. Убираем * и пишем через запятую имена полей:

$result = mysql_query("SELECT title,text FROM base_name WHERE text='новость' ORDER BY id DESC LIMIT 25");

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

Как добавлять записи в бд через формы

Для соединения с базой сделаем отдельный файл подключения с содержимым, назовем его "db.php":

<?php $connection = mysql_connect("localhost","root","12345"); $data_base = mysql_select_db("base_name"); mysql_set_charset("utf8"); if(!$connection || !$data_base){ exit(mysql_error()); } else{ echo "Соединение успешно прошло"; } ?>

Создаем форму добавления:

<form method = "post" action = "tutor-putor.php> <input type = "text" name = "title" value = "Заголовок"/><br> <textarea cols="40" name="text" rows="10" value="Текст сообщения"><?textarea><br> <input type = "text" name = "author" value = "Автор"/><br> <input type = "hidden" name = "date" value = "<?php echo date('Y-m-d')?>"/><br> <input type = "hidden" name = "time" value = "<?php echo time('H:i:s')?>"/><br> <input type = "submit" name = "add" value = "Отправить"/><br> </form>
Подключаем нашу базу через include_once:
include_once("db.php");

Принимаем значения из формы в переменные:

if(isset($_POST['add'])){ $title = strip_tags(trim($_POST['title'])); $text =strip_tags(trim($_POST['text'])); $author =strip_tags(trim($_POST['author'])); $date =strip_tags(trim($_POST['date'])); $time =strip_tags(trim($_POST['time']));

Делаем запрос к базе:

mysql_query(" INSERT INTO data_base(title, text,author, date, time) VALUES ('$title'.'$text'.'$author'.'$date'.'$time')"); mysql_close(); echo "Данные успешно добавлены."; } //закрыли if сверху

Как обновлять данные в базе

Если нам надо что-то поправить в уже введенной информации, надо ее сначала запросить на вывод.

<?php include_once("db.php"); $id = $_GET['id']; $result = mysql_query("SELECT title,text,author,date,time FROM base_name WHERE id='$id'"); ?>

Создаем цикл заполнения:

while($row = mysql_fetch_array($result)){ }

Подставляем значения в форму редактирования:

<form method = "post" action = "tutor-putor.php?id=<?php echo $id; ?>"> <input type = "text" name = "title" value = "<?php echo $row('title');?>"/><br> <textarea cols="40" name="text" rows="10" value="<?php echo $row('text');?>"><?textarea><br> <input type = "text" name = "author" value = "<?php echo $row('author');?>"/><br> <input type = "submit" name = "save" value = "Изменить"/><br> </form>

Далее в форме мы редактируем данные, если необходимо. Чтобы данные сохранились, надо сделать:

if(isset($_POST['save'])){ $title = strip_tags(trim($_POST['title'])); $text =strip_tags(trim($_POST['text'])); $author =strip_tags(trim($_POST['author'])); mysql_query(" UPDATE data_base SET title='', text='',author='' WHERE id='$id'"); mysql_close(); echo "Данные успешно обновлены."; }

Удаление записей из базы данных

Повторяем ту же конструкцию, только меняем запрос к базе:
<?php include_once("db.php"); $id = $_GET['id']; mysql_query("DELETE FROM base_name WHERE id='$id' "); mysql_close(); echo "Данные успешно удалены."; ?>

Вернуться ко всем статьям

Записаться на курс обучения Планфикс

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

Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности .

Равным образом начало повседневной работы по формированию позиции играет важную роль в формировании
системы обучения кадров, соответствует насущным потребностям.
Это поле обязательно для заполнения
Введён некорректный e-mail
Уровень