Архив рубрики: Php

Взлом сайта через PhpMyAdmin

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

Теперь я буду периодически писать о последних попытках взлома и метода защиты от таких попыток.

Итак начнем: взлом сайта через PhpMyAdmin.

На днях по сайту прошли по следующим файлам: Читать далее

Отправка email скриптом на godaddy.com

На хостинге от godaddy отправка письма через ж.  Обычные функции не работают и нужно думать. Так вот:

Для отправки обычным mail():

<?php
ini_set('SMTP', 'relay-hosting.secureserver.net');
$to = "Email кому";
$email ='Мой Email';
$subject ='Тема письма';
$message ='Текст письма';
$headers = "From: $email";
$headers .= "\nReply-To: $email";
$sentOk = mail($to,$subject,$message,$headers);
?>

C помощью Zend Framework отправка делается так: Читать далее

Работа с куками (cookie) в Zend Framework

Для установки куки необходимо:

$cookie = new Zend_Http_Cookie('name',
    'value',
    '.site.ru',
    time() + 7200,
    '/'
);
$this->getResponse()->setHeader('Set-Cookie', $cookie->__toString());
//Для передачи всех данных нужно использовать
$this->getResponse()->setHeader('Set-Cookie', $cookie->__toStringFull());

Читать далее

Обрезание писем в Zend_mail

Обнаружил интересную проблему, некоторая часть писем с сайта доходит не полностью, письма обрезались на самом интересном месте.

Письма отправляются через Zend_Mail. Используется дефолтовый транспорт. Кодировка писем KOI8-R.

Методом перебора определил, что письмо обрезалось после знаков №, — , и нестандартных кавычек.

Таким образом проблема решается очисткой содержимого письма, следующим кодом:


	$a = str_replace('№', 'N', $a);
	$a = str_replace("–", '_', $a);
	$a = str_replace(array('«','»','„','“'), '"', $a);

Не попадайтесь на такое.

Установка правильной временной зоны в php и mysql

Установка временной зоны в mysql из php делается следующим образом:

$db->query("SET time_zone = 'Europe/Moscow'");

Установка временной зоны в php для функций работы с датой и временем :

if (function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Moscow');

Временные зоны:
Читать далее

Битовые операции и двоичное исчисление в php

Перевод числа из двоичной системы исчисления в десятичную:

int bindec(string binary_string)

$x = bindec(10101010); // $x = 170

Можно:
$x = base_convert("10101010",2,10);

Перевод наоборот, из десятичной системы в двоичную:
Читать далее

Яндекс карты — событие мышь над картой.

Код позволяющий при наведении мыши на yandex карту или ухода мыши с нее выполнять какие-либо действия:


YMaps.jQuery(map.getContainer()).bind('mouseenter', function (e) {
  alert('Мышь над картой');
});

YMaps.jQuery(map.getContainer()).bind('mouseleave', function (e) {
  alert('Мышь ушла с карты');
});

Универсальная функция редиректа на php

Универсальная функция редиректа на php:

//==== Редирект... Сначала пробуем PHP редирект, 
//затем редирект на JavaScript , 
//затем пробуем http редирект:

function redirect($url) { 
    if (!headers_sent()) { 
        //Если заголовки еще не отправлены... 
        //пробуем редирект на php 
        header("Location: " . $url); exit; 
    } else { 
        //Если заголовки отправлены... 
        //делаем редирект на javascript ...
        echo '<script type="text/javascript">';
        echo 'window.location.href="' . $url . '";'; 
        echo '</script>';
        //если javascript отключен, делаем редирект на html. 
        echo '<noscript>'; 
        echo '<meta http-equiv="refresh" content="0;url=' . $url . '" />'; 
        echo '</noscript>'; exit; 
    }
}
//==== End -- Редирект

Правила защиты от атак на php (SQL инъекции и XSS атаки)

Правила защиты от SQL инъекций и XSS атак.

Для защиты от sql инъекций необходимо соблюдать следующие правила:
1) для целых и дробных величин, перед их использованием в запросе достаточно привести величину к нужному типу.
$id=(int)$id; $total=(float)$total;
или
$id = intval($id); $total = floatval($total);

Читать далее

Php скрипт по созданию xml sitemap для google

Файл Sitemap — это файл с данными о всех страницах сайта. С помощью файла Sitemap вы сообщаете поисковикам (google, yandex), какие страницы вашего сайта нужно добавить в индекс, как часто обновляется информация на страницах, а также каких страниц наиболее важны для индексации.

Частота обновления информации на страницах задается тегом: changefreq
Важность страниц задается тегом: priority

Ниже приведен PHP скрипт генерации xml sitemap для google и яндекса:
Читать далее