Архив метки: шпаргалка

PHP-шпаргалка

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

<?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 «Данные успешно удалены.»;

?>