Реклама на сайте Advertise with us

Пишу на php HiLoad сайты по цене парсера

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 17.06.09
Сообщения: 3

Ссылка на сообщениеДобавлено: 18/06/09 в 15:12       Ответить с цитатойцитата 

Пишу различные проекты любой сложности на php.

Что знаю из основного :

Php со всеми тонкостями и деталями
+ различные шаблонизаторы типа smarty , и все что связано с оптимизацией php memcache , использование nginx (x-accel-redirect например) и тд

Mysql 4-5 native,
PostgreSQL 8 native,
adodb

JavaScript + ajax (jquery или JsHttpRequest)

WSDL ( формат для передачи данных между php (и не только) и различными программами на C++ и тд)

при необходимости могу
Администрирование сервера: установка сервера с 0
Верстка дизайнов на div


С чем сталкивался :
русский adult наверное в любом проявлении (платники, подключение биллингов и тд)

знакомства dating pro правда не лицензионный переделывал под нужды заказчика

системы управления трафиком типа redtram, readme и им подобных

"софтверная тема" админки ботов ( база выдерживала около миллиона коннектов в сутки ) и все что касается "софта"

разработка безопасности сайта (различные методы защиты сайта против хакеров) естественно тех сайтов которые не изначально делал icon_cool.gif

и остальное по мелочи, типа тесты

Если есть предложение о долгосрочном сотрудничестве тоже можно рассмотреть.

Для особо не доверчивых могу выполнить тестовое задание естественно в пределах разумного

ICQ: 589888988

0
 



С нами с 01.03.07
Сообщения: 304
Рейтинг: 223

Ссылка на сообщениеДобавлено: 19/06/09 в 21:23       Ответить с цитатойцитата 

заказал у человека скрипт вчера, спамить в свои блого - админки текста, качественно сделал , прогер адекватный

0
 



С нами с 17.06.09
Сообщения: 3

Ссылка на сообщениеДобавлено: 20/06/09 в 13:09       Ответить с цитатойцитата 

пример wsdl , выдержки
Код:

   <message name="GetCatList">
      <part name="uid" type="xsd:int"/>
   </message>
   <message name="GetCatListResponse">
      <part name="GetCatListReturn" type="typens:ResultArray"/>
   </message>

   <message name="GetCatListResponse">
      <part name="GetCatListReturn" type="typens:ResultArray"/>
   </message>



<complexType name="ContentElement">
            <all>
               <element name="Cat" type="typens:ArrayOfInt"/>
               <element name="ID" type="xsd:int"/>
               <element name="Previews" type="typens:ArrayOfString"/>
               <element name="Type" type="xsd:int"/>
               <element name="Files" type="typens:ArrayOfString"/>
               <element name="PRICE" type="typens:PriceClass"/>
               <element name="PROPERTIES" type="typens:PropertiesElementArray"/>
   
            </all>
         </complexType>
         <complexType name="ContentArray">
            <sequence>
               <element name="ContentElement" type="typens:ContentElement" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </complexType>
   
         <complexType name="ResultArray">
            <sequence>
               <element name="ResultElement" type="typens:ResultElement" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </complexType>
   



небольшой пример php + postgres
Код:



ini_set("soap.wsdl_cache_enabled", "1");
include($_SERVER['DOCUMENT_ROOT']."/common.php") ;
$cashe_time=0.5;
if(defined("IS_ADMIN_AREA"))
{
   $cashe_time=0;
}
define("CASHE_TIME",$cashe_time);
define("DAYTOSEE",   5);
// время доступа к просмотру
define("TIMETOSEE", 86400 * DAYTOSEE);

class catalog {
   private $memcache;
   private $partner=0;
   private $partner_site=1;
   private $bay_type=1;
   private  $database ='';
   private $util='';
   private $skey='000er7392_09737yhdndn';
   public $option=array();

   function __construct(){
      require_once(MAIN_PATH."includes/CUtil.class.php");
      $this->util = new CUtil();
      require_once(MAIN_PATH."includes/CDatabase.class.php");
      $this->database= new CDatabase();
      $this->InitMemcache();
   }

/**
* внутренняя аутентификация
*
* @param unknown_type $uid
* @return unknown
*/

  function _getInsideAuth ( $uid=1, $strong=0,$sh_strong='') {
      $usArr = @unserialize($this->_getCashe("a_".$uid));
      $auth=false;

      if(is_array($usArr))
      if(sizeof($usArr))
      {
      
         if($strong)
         {
            if( $usArr["CODEWORD"] != $sh_strong)
            {
               $auth=false;
            }else
            {
               $auth=true;
            }
         }else
         {
            $auth=true;
         }
      }
      return $auth;
   }
   
/**
* выход юзера
*
* @param id  юзера $uid
*/
   function LogOut($uid=1)
   {
         $this->_setCashe("a_".$uid,serialize(array()),0);
   
         $sql="SELECT     extract('epoch' from ctime) as ctime,codeword     FROM   cl_usrnow  WHERE uid=".$uid." LIMIT 1";
   
         $rez = $this->database->query($sql);
    $obj = @$this->database->getObject($rez);
   
    if(isset($obj->ctime))
    {
       if ( time()-$obj->ctime >  TIMETOSEE)
       {
             $sql="DELETE FROM   cl_usrnow  WHERE uid = ".$uid."  ";
              $this->database->query($sql);
       }
    }
   }
/**
* GetCatList  функция генерации  меню каталога
*
* @param int $uid - ID user передается для  локализации меню на различные языки
* @return массив параметров
*
* Категории уже идут в нужном порядке
* ID  =>  id категори ,
* NAME  => ИМЯ категории ,
* COUNT => количество элементов в категории,
* PARENT_ID => родительская категория
*
*/
function GetCatList ( $uid=1) {

$arCat=array();


if(!defined("IS_ADMIN_AREA"))
{
  if(!$this->option =@unserialize($this->util->getCashe('Category',CASHE_TIME,'category')) )
{
   $this->_getCategory($arCat,$uid);
   $this->util->setCashe('Category',serialize($this->option),'category') ;
      
            }
      }else
      {
         $this->_getCategory($arCat,$uid);
      }

      return $this->option;

   }

   private  function _getCategoryForContent ($id=1  ) {

      $sql="SELECT * FROM cl_categ_fl_union WHERE  cl_categ_fl_union.contentid=".$id."  ";

      $rezult =  $this->database->query($sql);

      $arrCat=array();

      while ($obj = $this->database->getObject($rezult)) {

         $arrCat[]   =$obj->cat;
      }

      return $arrCat;

   }
   /**
    *  Функция логина
    *
    * @param unknown_type $login
    * @param unknown_type $pass
    * @param unknown_type $codeword
    * @param unknown_type $MAC
    * @return unknown
    */
   
   function Login ( $login='', $pass='', $codeword='', $MAC='') {

      $uid=0;
      $arrError=array();
      $arrIpError=array();
      $login =$this->util->GetParam($login,'');
      $codeword =$this->util->GetParam($codeword,'');
      $pass =$this->util->GetParam($pass,'');

      $usArr = @unserialize($this->_getCashe("access_".$login));
      
      $ips =$this->GetIp();
      $ipArr = @unserialize($this->_getCashe("aip_".$ips));
      $block = false;

      /**
       *  10 попыток в течении пол дня с одного IP
       */
      if(is_array($ipArr))
      {
         if(isset($ipArr["CNT"]))
               $ipArr["CNT"]++;
         else
               $ipArr["CNT"]=1;
               
         $arrIpError =$ipArr;
         
         if($ipArr["CNT"] >10 )
               $block =true;
      }
      
      /**
       *  блокировка  на один логин может быть доступ  только с 5 разных IP
       */
      if(is_array($usArr))
      {
         $arrError=$usArr;
         
         if(isset($arrError["cnt"]))
         {
            $arrError["cnt"]++;
         }
         else
         {
            $arrError["cnt"]=1;
         }
         
         if(isset($arrError["IP"][$ips]))
               $arrError["IP"][$ips]++;
         else
               $arrError["IP"][$ips]=1;

         if($arrError["cnt"] >10)
         {
               $block=true;
         }else
         {
            if(isset($arrError["IP"][$ips]))
            {
                if(sizeof($arrError["IP"]) > 5)
                {
                   $block=true;
                }
            }
         }
      }
      
      if( !$block and strlen($pass) == 40 )
      {
         
               $sql="SELECT  uid,first_login
                   
                   FROM   
                            cl_userlogin
                   WHERE 
                         login='".$login."'
                         and  UPPER(pass)='".$pass."'
                   LIMIT
                         1
                   ";
               $rezult =  $this->database->query($sql);
               $obj = @$this->database->getObject($rezult);
               if(isset($obj->uid))
               {
                  $uid=(int)$obj->uid;
               }
               if($uid)
               {
                                $this->_setCashe("access_".$login,'',0);
                  $this->GetUserNow( $uid ,  $codeword );
                  if($obj->first_login)
                  {
                         $this->RefUsers($uid,$MAC);
                  }   
                $this->setMac($uid,$MAC,$ips);
               }
      }

      if(!$uid)
      {
                $this->_setCashe("access_".$login,serialize($arrError),1);
      }
   $this->_setCashe("aip_".$ips,serialize($arrIpError),0.5);
      return $uid;
   }

0
 



С нами с 27.03.09
Сообщения: 155
Рейтинг: 320

Ссылка на сообщениеДобавлено: 20/06/09 в 14:13       Ответить с цитатойцитата 

ооо. как круто smail27.gif

программист. набираю отзывы и заказы. | блог Вордпресскина

0
 



С нами с 16.04.05
Сообщения: 754
Рейтинг: 352

Ссылка на сообщениеДобавлено: 20/06/09 в 23:33       Ответить с цитатойцитата 

Классы пишутся с большой буквы.

__construct используют в абстрактных и т.д., там где функция класса будет другой. Тут оно не при чём.

Код:
$cashe_time=0.5;
if(defined("IS_ADMIN_AREA"))
{
   $cashe_time=0;
}
define("CASHE_TIME",$cashe_time);

меняем на
Код:
define("CASHE_TIME", defined("IS_ADMIN_AREA") ? 0 : 0.5);


константа MAIN_PATH не объявлена (не будет твой скрипт работать..)

После запятой следует пробел (правила русского языка).

Код:
$uid=1
у нас теперь есть дефолтные юзеры или юзеры которым не нужно представляться? (так - же относится к логину и паролю далее).

Код:

      if(is_array($usArr))
      if(sizeof($usArr))

меняем на
Код:
if(is_array($usArr) && sizeof($usArr))


Код:
if(isset($obj->ctime))
    {
       if ( time()-$obj->ctime >  TIMETOSEE)
       {

как и все последующие двойные ифы переписывает аналогично, так как проверка одной истины, в два этапа, а не двух истин.

Код:
function Login ( $login='', $pass='', $codeword='', $MAC='') {

      $uid=0;
      $arrError=array();
      $arrIpError=array();
      $login =$this->util->GetParam($login,'');
      $codeword =$this->util->GetParam($codeword,'');
      $pass =$this->util->GetParam($pass,'');

Это очистка параметров?

(дальше читать не стал)

Мой блог: seo blog

0
 



С нами с 25.11.05
Сообщения: 25
Рейтинг: 7

Ссылка на сообщениеДобавлено: 22/06/09 в 10:57       Ответить с цитатойцитата 

Цитата:
__construct используют в абстрактных и т.д., там где функция класса будет другой. Тут оно не при чём.

Вообще-то __construct это пхп5 конструктор. Использовать classname() - deprecated с пхп5.

А резюмируя приведенный код - каменты на русском не пишут, ляпы в phpdoc, небрежное форматирование и работа с ооп в целом.

Непонятно что за класс с работой с базой, плейсхолдеров нет, экранирования нет (превед sql injection?).

Ну зато работа с WSDL и Memcache перевешивает все недостатки в коде smail54.gif

0
 



С нами с 17.06.09
Сообщения: 3

Ссылка на сообщениеДобавлено: 22/06/09 в 13:28       Ответить с цитатойцитата 

nucleus писал:
Вообще-то __construct это пхп5 конструктор. Использовать classname() - deprecated с пхп5.

А резюмируя приведенный код - каменты на русском не пишут, ляпы в phpdoc, небрежное форматирование и работа с ооп в целом.

Непонятно что за класс с работой с базой, плейсхолдеров нет, экранирования нет (превед sql injection?).

Ну зато работа с WSDL и Memcache перевешивает все недостатки в коде smail54.gif



icon_lol.gif
Цитата:
экранирования нет (превед sql injection?).


хочешь проверить насчет injection, можно написать тестовый скриптик если сможешь взломать smail101.gif удачи тебе. Пока никто не смог.

Можешь написать скрипт который потенциально уязвимый. А я просто обрабатываю все входящие переменные вот этой функцией. Если после этого скрипт останется уязвимым с меня 100$ icon_wink.gif

Цитата:
каменты на русском не пишут

Коментарии пишу на русском , потому что пишу в основном для русских. И далеко не все переводят на английском.

Цитата:
Непонятно что за класс с работой с базой
. А я и не собирался тут весь проект выкладывать. Даже мысли не было. icon_cool.gif

Цитата:
Вообще-то __construct это пхп5 конструктор. Использовать classname() - deprecated с пхп5.

это к чему ? можно конечно и classname() но для чего ? там куда я писал это стояло php5.


Цитата:
константа MAIN_PATH не объявлена (не будет твой скрипт работать..)

еще раз повторяю я не собирался и не собираюсь выкладывать сюда ВЕСЬ проект. Там много чего не объявлено. В том что ты видишь.

0
 



С нами с 13.09.06
Сообщения: 13
Рейтинг: 5

Ссылка на сообщениеДобавлено: 29/07/09 в 14:09       Ответить с цитатойцитата 

Заказывал у Sergey00 скрипт. Работу делал только в свободное время, постоянно проявлялась куча багов, которые он так не исправил до конца. Скрипт не доделал и уже 6 дней его в ICQ нет, на сообщения не отвечает. Сложилось ощущение похуистического отношения к работе.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор сайта

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »