Разделы
Veselov CV | vvShop © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2
» » » Страница 53

Прячим сапачку от поисковиков


Скажем так если у Вас качественный СДЛ и на нем стоит биржа с правильно расставленными ссылками, то поисковик ничего Вашему драгоценному сайту не сделает.

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

И так, есть страница с продажной ссылкой site.ua/link.html бот подставляет, что то вида site.ua/link.html?trololo (это не догма, может быть любой другой мусор) и смотрит есть ли там эта самая ссылка, если ее нет, значит Вы спалились...

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

. Создайте в саповской папке файл sape_venality_name.php:
<?php

$sape_venality_name=array();

# Документы, работающие с глобалом GET:
$allowed_pages=array("key.php","ping","remoute");

# Разрешённые переменные в УРле иных документов:
$allowed_var=array("");

$tm=explode("?",$_SERVER['REQUEST_URI']);
if (isset($tm[1]) and $tm[0]==str_replace($allowed_pages,"",$tm[0])) {
$k=preg_match_all("/(.*)=(.*)\&/Uis",$tm[1]."&",$am);
$bm=array();
for ($i=0; $i < $k; $i++) {
if ($am[2][$i]=="" or !in_array($am[1][$i],$allowed_var))continue;
$bm[]=$am[1][$i]."=".$am[2][$i];
}
$tm[1]=implode("&",$bm);
$sape_venality_name['request_uri']=
$_SERVER['REQUEST_URI']=($tm[1]=="") ? $tm[0]: implode("?",$tm);
}

?>

2. Код вызова, используемый на сайте:
<?php 
     if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'идентификатор');
     }
     require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
     $sape = new SAPE_client();
?>

замените на следующий:
<?php 
     if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'идентификатор');
     }
     require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
     require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape_venality_name.php');
     $sape=new SAPE_client($sape_venality_name);
?>

Имейте в виду, что данная инструкция не гарантирует 100% скрытие ссылок. Какие методы применяет Яндекс никому неизвестно.

Расширенный таймлайн событий на PHP, MySQL, jQuery & CSS


Расширенный таймлайн событий на PHP, MySQL, jQuery & CSS

Красивый и интересный скрипт который позволяет выводить в удобной форме таймлайн каких либо событий за определенный период времени. По заголовку поста можно понять что использует он PHP, MySQL, jQuery.

ДЕМО / Скачать

А вот тут http://ideal.kiev.ua/ занимаются раскруткой сайтов и рекламой в интернете

Эмуляторы мобильных устройств


Иногда заказчик настолько требователен, что хочет, что бы сайт был четк и на телефоне.

Эмуляторы мобильных устройств


Opera Mobile emulator

Opera Mini Simulator

Iphone emulator

Android SDK

BlackBerry

Число тегов в облаке DLE


Хак, который позволит вам изменять количество выводимых меток (тегов) в блоке.

Открываем файл \engine\modules\tagscloud.php и ищем:
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,40");

и заменяем на:
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,60");

где LIMIT 0,60 — количество тегов извлекаемые из базы данных.
Ищем в том же файле:
if ($row['count'] >= 40) { 

и заменяем на:
if ($row['count'] >= 60) { 

где >= 60— количество тегов выводимые в блоке.

POST через AJAX


POST это тот же GET только параметры передаются скрыто, поэтому формировать строку нужно самому (function get).

ajax:
var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
  
   function get(obj) {
      var poststr = "usr=" + encodeURI( document.getElementById("usr").value ) + "&pass=" + encodeURI( document.getElementById("pass").value );
      makePOSTRequest('post.php', poststr);
   }

вызывается:
<form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
<input name="usr" id="usr" type="text" size="10" maxlength="10" /><br/><br/>
<input name="pass" id="pass" type="text" size="10" maxlength="10" /><br/><br/>
<input type="button" name="button" value="Submit" onclick="javascript:get(this.parentNode);">
</form>

пост обработчик:
<?
print_r($_POST);
?>

ДЕМО POST

GET через AJAX


То что AJAX заменит все и вся врядле, но то что он стал уже необходимым атрибутом в вебе это факт. В посте пойдет речь о простой отправке данных через GET запрос используя AJAX.

index.html
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>GET AJAX</title>
<script src="ajax.js" type="text/javascript"></script>
</head>
<body>
<strong>Введите какой-нибудь текст латинницой</strong><br>
<input name="getparam" type="text" size="10" id="input" maxlength="15">
<div id="show"> </div>
</body>
</html>


ajax.js
window.onload = initAll; /*При завершении загрузки запустить функцию initAll*/
var xmlhttp = false;
var outputtext = "";
function initAll() {
document.getElementById("input").addEventListener('keyup',startAjax,false);/*Добавляем слушателя событий для текстого поля в файле index.html*/
}

function startAjax(){
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}

var url = "a.php?module="+this.value;/*создаем переменую урла и добавляем вконце новое значение текстого поля при помощи this.value*/
xmlhttp.onreadystatechange = checking;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function checking(){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
outputtext = xmlhttp.responseText;
}
else {
outputtext = "Ошибка: " + xmlhttp.status;
}

}

document.getElementById("show").innerHTML = outputtext; /*Вывод данных с a.php в елемент div c id="show"*/
}


a.php
<?php
if(isset($_GET['module'])){
echo "Обработка <strong>GET</strong> в файле a.php прошла успешно: <b>".$_GET['module']."</b> <br><br>
Обращение произошло по адрессу: /a.php?module=".$_GET['module'];
}
?>

ДЕМО
«»
Вверх