+4.06
Рейтинг
7.83
Сила

Юрий

  • avatar Hrom
  • 0
В свое время делал так:

public function MakeUrlNoIndex($sText) {

		$sText = preg_replace('#<a([^<]*)href=["\']http://(?![a-z0-9.-]*'.quotemeta($_SERVER['HTTP_HOST']).'\/)([^"\']*)["\']([^<]*)>(.*)</a>#ismU','<noindex><a$1href="http://$2"$3 rel="nofollow">$4</a></noindex>', $sText);  

		return $sText;


	}
  • avatar Hrom
  • -1
Предлагал подобный способ изначально:)
  • avatar Hrom
  • 0
Ну тогда надо хотя бы фильтровать данные.

Ajax Запрос:
$sStatInfo=@$_REQUEST['stat_info'];
....
$sStatInfo = $sStatInfo.','.str_replace(',', '.', ''.$nAjaxTime);
....
$result=@fwrite($fp, $sStatInfo."\n");

В Меппере:
$aData = @file($sFile);
....
$sql = 'INSERT IGNORE INTO '.$sTable.'('.$sColumns.') VALUES('.$aData[$i].')';

Запросом в $_REQUEST['stat_info'] можно послать что угодно.
Итого: SQL-injection, XSS.

P.S. XSS конечно в 32 байта надо постараться (`uid` varchar(32) NOT NULL). Но за счет намеренно кривого запроса и вывода об этом ошибки админу — только в путь.
  • avatar Hrom
  • 0

$sql = 'INSERT IGNORE INTO '.$sTable.'('.$sColumns.') VALUES('.$aData[$i].')';
$this->oDb->query($sql);

И т.д.

Юзай плейсхолдеры и жить станет легче;)
  • avatar Hrom
  • 0
Да.
  • avatar Hrom
  • 0
На моем хостинге (ИМХО не на единственном) грантов не хватает на LOAD DATA INFILE (метод NewDataLoad() в меппере). Я бы переделал под парсинг файла.
  • avatar Hrom
  • 0
Все зависит от нагрузки… Здесь все характеристики более подробно.
  • avatar Hrom
  • 0
Месяца 4 на нем ЛС уже стоит. Вообще там разместились только по тому, что у друга год хостинга был оплачен… и он пустовал. Вырастет нагрузка — перейдем на VPS от hc.ru. Один проект 9 месяцев на нем — полет нормальный.
  • avatar Hrom
  • 0
best-hoster.ru
  • avatar Hrom
  • 0
файловый кеш
  • avatar Hrom
  • 0
Шаред хостинг за 60р. в месяц, 15 пользователей онлайн:

*   MySql
         query: 3
         time: 0,001	
    * Cache
         query: 15
                  set: 4
                  get: 11
         time: 0,00353
    * PHP
         time load modules:0,027
         full time:0,081


  • avatar Hrom
  • 3
Делаю немного по другому (Лс, не ЛС — пофиг).
В прошлом году написал мини плагин для smarty и везде его использую:

<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */


/**
 * Smarty {fckeditor} function plugin
 *
 * Type:     function
 * Name:     fckeditor
 * Date:     May 5, 2008
 * Purpose:  fckeditor
 * @version  1.0
 * @param array
 * @param Smarty
 * @return string
 */
function smarty_function_fckeditor($params, &$smarty)
{
 if (!isset($params['name'])) {
     $smarty->trigger_error("fckeditor: missing 'name' parameter");
    return;
 }
 if($params['name'] == '')
 	return;

 if (!isset($params['BasePath'])) {
     $smarty->trigger_error("fckeditor: missing 'BasePath' parameter");
    return;
 }
 if($params['BasePath'] == '')
 	return;

 $params['BasePath'] = trim($params['BasePath']);

 if($params['BasePath']{0} == '/' || $params['BasePath']{0} == '\\')
 $params['BasePath'] = substr($params['BasePath'],1);

  if(!file_exists($params['BasePath'].'fckeditor.php')){
  	 $smarty->trigger_error("fckeditor: false 'BasePath' parameter");
    return;
    }
  else require_once(str_replace('\\','/',$params['BasePath']).'fckeditor.php');

  if(isset($params['value'])) $value = $params['value'];
  else $value = '';

  ob_start();

  $oFCKeditor = new FCKeditor($params['name']) ;
  $oFCKeditor->BasePath = '/'.$params['BasePath'];
  $oFCKeditor->Value = $value;
  if(isset($params['ToolbarSet'])) $oFCKeditor->ToolbarSet = $params['ToolbarSet'];
  if(isset($params['SkinPath']))   $oFCKeditor->Config['SkinPath']  = $params['SkinPath'];
  if(isset($params['Width'])) $oFCKeditor->Width = $params['Width'];
  if(isset($params['Height'])) $oFCKeditor->Height = $params['Height']; 

  $oFCKeditor->Create();
  $fckeditor = ob_get_contents();
  ob_end_clean();

  return $fckeditor;
}
/* vim: set expandtab: */

?>


закидывается в smarty\plugins\function.fckeditor.php

И потом в шаблоне просто:


{fckeditor name=aricle_text BasePath="/scripts/fckeditor/" value=$text}

Также есть параметры ToolbarSet=«Имя тулбара», Width и Height. Можно было сделать больше, но мне этого хватало.

В нашем случае для ЛС вместо

<textarea name="page_text" id="page_text" rows="20">{$_aRequest.page_text}</textarea></p>


Можно было бы вставить

{fckeditor name=page_text BasePath="$DIR_STATIC_SKIN/js/fckeditor/" value=$_aRequest.page_text}


И все:)
  • avatar Hrom
  • 1
Вы наверное слишком большие изображения грузите
  • avatar Hrom
  • 1
Это потому, что у вас тег
<b></b>
как-то в скрипте оказался)) вот посмотрите сами:

<script language="JavaScript" type="text/javascript"> 
 
 window.addEvent('domready', function(){
      $$('a[option="highslide"]').addEvent('click', function(){return hs.expand(this)});
 });
 
<b></b>
</script>
  • avatar Hrom
  • 0
www.avtoturistu.ru/blog/129.html вот… все у вас заработало
  • avatar Hrom
  • 1
Верните в header.tpl на option

Т.к. там у вас title, а в теге с картинкой option=«highslide»
  • avatar Hrom
  • 2
У вас в header.tpl лишняя строка
<script language="JavaScript" type="text/javascript">

Перед
<script type="text/javascript" src="{$DIR_STATIC_SKIN}/js/highslide.packed.js"></script>


Удалите ее
  • avatar Hrom
  • 0
Была такая идея пару лет назад=) Сделать сайт аля башорг, только присылать смешные истории по MMS (фото, видео). Где-то на западе даже видел аналог) В общем реализовать это можно через email. Т.к. ММС можно спокойно послать на мыло. Остается только парсить по крону электронный ящик. И добавлять сообщения.
  • avatar Hrom
  • 1
Было глупо конечно ставить это на рабочий сайт)) вот посмотри сам fotoshaba.ru/people/
  • avatar Hrom
  • 0
Любой профиль