26
Сен
2011

Закрывающий Тег в PHP

Если файл состоит только из php кода (без вставок HTML), то хорошей практикой является опускание закрывающего тега (?>).

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

Да и вообще, раз закрывающий тег является необязательным, то и зачем его использовать?

Так, в этом случае

  1. <?php
  2. echo 'Hello, world!';
  3. ?>
  4. <html>something</html>

вы должны использовать закрывающий тег для отделения php кода от html.

В этом случае

  1. <?php
  2. echo 'Hello, world!';

закрывающий тег следует опустить.

А в этом случае

  1. <html>something</html>
  2. <?php
  3. echo 'Hello, world!';
  4. ?>

на ваше усмотрение. Хотя лучше использовать - для улучшения восприятия кода.

Category: 
0
21
Сен
2011

Часто Используемые Команды для Управления Сервером

Apache

Проверка статуса, старт, остановка, перезагрузка:

  1. /etc/init.d/apache2 status
  2. sudo /etc/init.d/apache2 start
  3. /etc/init.d/apache2 stop
  4. sudo /etc/init.d/apache2 restart
  5. sudo /etc/init.d/apache2 reload

Включение/выключение модулей:

  1. sudo a2enmod модуль
  2. sudo a2dismod модуль

Подключение/отключение виртуальных хостов:

  1. sudo a2ensite site.my
  2. sudo a2dissite site.my

MySQL

Старт, остановка, перезагрузка:

  1. sudo service mysql start
  2. sudo service mysql stop
  3. sudo service mysql restart
Category: 
0
20
Сен
2011

Как Импортировать Большие MySQL Дампы

Чаще всего для импорта sql дампов используется phpMyAdmin. Однако при дампах большого объема могут возникнуть сложности - ограничения на размер файлов, превышение времени выполнения скриптов, нехватка памяти и т. д.

Наиболее простым (и правильным) решением будет использование в данном случае утилиты mysql, которая работает через консоль. Для импорта sql дампа используется команда "source".

  1. tulvit@tulvit-desktop:~$ mysql -uroot -proot;
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. mysql> use my_db;
  4. Database changed
  5. mysql> source ~/dump.sql;
  6. ...
Category: 
0
10
Сен
2011

Редирект с WWW на Без WWW и Наоборот

Часто возникает необходимость сделать одно из зеркал сайта основным (с www или без), а со второго поставить редирект. Например, сделать основным www.site.com, а с site.com поставить редирект (на www.site.com), или наоборот - поставить редирект с www.site.com на site.com, таким образом сделав главным зеркалом домен без www.

Для этого надо использовать 301-ый редирект, который является постоянным.

Проще всего реализовать редирект можно с помощью файла .htaccess, который должен лежать в корне вашего сайта. Для этого необходим установленный модуль Apache mod_rewrite, который практически на всех хостингах предустановлен по умолчанию.

Для того, чтобы сделать 301-ый редирект с www.site.com на site.com (т. е. без www) в .htaccess следует добавить следующее:

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  4. RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
  5. </IfModule>

Если же стоит задача поставить редирект с site.com на www.site.com (т. е. с www), то код будет таким:

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} !^www\. [NC]
  4. RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  5. </IfModule>
Category: 
0
09
Сен
2011

md5 Хэш с Солью

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

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

Соль - это по сути случайные биты информации, например просто текст или даже картинка.

Т. е. вместо записи

  1. <?php
  2. $pwd = 'my_pwd';
  3. $hash = md5($pwd);
  4. ?>

мы должны использовать следующую запись

  1. <?php
  2. $salt = 'some text';
  3. $pwd = 'my_pwd';
  4. $hash = md5($pwd . $salt);
  5. ?>

или

  1. <?php
  2. $salt = 'some text';
  3. $pwd = 'my_pwd';
  4. $hash = md5(md5($pwd) . $salt);
  5. ?>

или даже

  1. <?php
  2. $salt = 'some text';
  3. $pwd = 'my_pwd';
  4. $hash = md5(md5($pwd . $salt) . $salt);
  5. ?>
Category: 
0