[PHP] Новичкам: задаем вопросы

Discussion in 'PHP' started by Kaimi, 7 May 2015.

  1. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    Code:
    <style>
    table.calendar    { border-left:1px solid #999; }
    tr.calendar-row  {  }
    td.calendar-day  { min-height:80px; font-size:11px; position:relative; } * html div.calendar-day { height:80px; }
    td.calendar-day:hover  { background:#eceff5; }
    td.calendar-day-np  { background:#eee; min-height:80px; } * html div.calendar-day-np { height:80px; }
    td.calendar-day-head { background:#ccc; font-weight:bold; text-align:center; width:120px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; }
    div.day-number    { padding:5px; color:#1C1C1C; font-weight:bold; font-size: 25px; font-family: Arial Black; float:right; margin:-5px -5px 0 0; width:100%; text-align:center; }
    td.calendar-day, td.calendar-day-np { width:120px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; }
    td.calendar-day-weekend  { min-height:80px; font-size:11px; position:relative; background-color: #ffc0c0;} // this line added
    
    </style>
    <?php
    /* Функция генерации календаря */
    function draw_calendar($month,$year){
      /* Начало таблицы */
      $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
      /* Заглавия в таблице */
      $headings = array('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье');
      $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
      /* необходимые переменные дней и недель... */
      $running_day = date('w',mktime(0,0,0,$month,1,$year));
      $running_day = $running_day - 1;
      $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
      $days_in_this_week = 1;
      $day_counter = 0;
      $dates_array = array();
      $starting_monthly_position = $running_day; // this line added
      /* первая строка календаря */
      $calendar.= '<tr class="calendar-row">';
      /* вывод пустых ячеек в сетке календаря */
      for($x = 0; $x < $running_day; $x++):
        $calendar.= '<td class="calendar-day-np"> </td>';
        $days_in_this_week++;
      endfor;
      /* дошли до чисел, будем их писать в первую строку */
      for($list_day = 1; $list_day <= $days_in_month; $list_day++):
        if(($list_day+$starting_monthly_position)%7 == 0  or ($list_day+$starting_monthly_position+1)%7 == 0):    // this line added
         $calendar.= '<td class="calendar-day-weekend">'; // this line added
        else:                                                                // this line added
         $calendar.= '<td class="calendar-day">';             // this line added
        endif;                                                              // this line added; That;s it.
         /* Пишем номер в ячейку */
    if ($list_day==date('d')) $calendar.= '<div class="day-number" style="color:#CD0000">' . $list_day . '</div>';
    else $calendar.= '<div class="day-number">' . $list_day . '</div>';
          /** ЗДЕСЬ МОЖНО СДЕЛАТЬ MySQL ЗАПРОС К БАЗЕ ДАННЫХ! ЕСЛИ НАЙДЕНО СОВПАДЕНИЕ ДАТЫ СОБЫТИЯ С ТЕКУЩЕЙ - ВЫВОДИМ! **/
          $calendar.= str_repeat('<p> </p>',2);
      
        $calendar.= '</td>';
        if($running_day == 6):
          $calendar.= '</tr>';
          if(($day_counter+1) != $days_in_month):
            $calendar.= '<tr class="calendar-row">';
          endif;
          $running_day = -1;
          $days_in_this_week = 0;
        endif;
        $days_in_this_week++; $running_day++; $day_counter++;
      endfor;
      /* Выводим пустые ячейки в конце последней недели */
      if($days_in_this_week < 8):
        for($x = 1; $x <= (8 - $days_in_this_week); $x++):
          $calendar.= '<td class="calendar-day-np"> </td>';
        endfor;
      endif;
      /* Закрываем последнюю строку */
      $calendar.= '</tr>';
      /* Закрываем таблицу */
      $calendar.= '</table>';
    
      /* Все сделано, возвращаем результат */
      return $calendar;
    }
    /* СПОСОБ ПРИМЕНЕНИЯ */
    //месяцы и недели на русском
    function rdate($param, $time=0) {
    if(intval($time)==0)$time=time();
    $MN=array('Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря');
    $MonthNames[]=$MN[date('n',$time)-1];
    $MN=array('Воскресенье','Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', '');
    $MonthNames[]=$MN[date('w',$time)];
    $arr[]='M';
    $arr[]='N';
    if(strpos($param,'M')===false) return date($param, $time); else return date(str_replace($arr,$MonthNames,$param), $time);
    }
    //месяцы и недели на русском
    $mesjac = date('n');
    $god = date('Y');
    echo '<h2 style="text-align:center; font-family: Arial Black; font-size: 19px; color: #1E90FF;">Сегодня '.rdate('j M Y года. N. H:i').'</h2>';
    echo draw_calendar($mesjac,$god);
    ?>
    
     
    SARCASM, GAiN and dondy like this.
  2. Alekseii

    Alekseii New Member

    Joined:
    30 Dec 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Вот код простого счётчика
    <?php
    if(!file_exists("count.txt"))
    {$counter=fopen("count.txt", "a");}
    else
    {$counter=fopen("count.txt", "r+");}
    $auf=fgets($counter, 100);
    $auf=$auf+1;
    rewind($counter);
    fputs($counter, $auf);
    fclose($counter);
    echo $auf;
    ?>

    Решил узнать, что будет, если убрать rewind() т.е.
    <?php
    if(!file_exists("count.txt"))
    {$counter=fopen("count.txt", "a");}
    else
    {$counter=fopen("count.txt", "r+");}
    $auf=fgets($counter, 100);
    $auf=$auf+1;
    fputs($counter, $auf);
    fclose($counter);
    echo $auf;
    ?>
    Как ожидал я. При первом запросе будет 1, при втором запросе будет 12, при третьем 1213, при четвёртом 121314, ну понятно...

    Как вышло. При первом запросе 1, при втором 2(????), при третьем вообще 13, при четвёртом 1214
    Почему так? Почему он так обработал второй запрос, а последующие запросы он обрабатывал как я хотел, только уменьшая предыдущую пару на 1 (например в 4 запросе 1214, а не 1314). Он же должен добавлять просто число+1 к уже записанной строчке чисел, т.е. записанное число+записанное число+1?
     
  3. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Кривой древний код писанный для пхп4 боюсь представить сколько лет назад. Сейчас для таких мелочей все используют file_get_contents и file_put_contents вместо поблочной записи/чтения. Или вообще классы из фреймворков.

    Потому что мануалы надо читать. http://php.net/manual/ru/function.rewind.php
    У тебя из файла читается первая и единственная строка. И после вызова fgets указатель чтения/записи уже стоит в конце файла. Поэтому дальнейшая запись будет добавлять данные в текст. Rewind сдвигает указатель на 0 позицию и поэтому новые данные накладываются на старые.
     
  4. Alekseii

    Alekseii New Member

    Joined:
    30 Dec 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Я и сам понимаю, что накладывается, я не понимаю, почему так накладывается. Первый результат 2, второй 13, третий 1214? Почему уменьшает предыдущее значение на 1 и поч второе значение 2?
     
  5. Prog-t

    Prog-t New Member

    Joined:
    24 Nov 2015
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    День добрый,использую класс для работы с curl
    Code:
    <?php
    //***************************************************//
    //                            //
    //         Class for cURL      //
    //  *********************************************  //
    //    Author: Stsepanchuk Ruslan              //
    //  *********************************************  //
    //  Blog: swblog.ru                  //
    //  //
    //***************************************************//
    
    class curl {
    
       var $ch;
       var $httpget = ''; 
       var $head = '';
       var $postparams = array (); 
       var $httpheader = array ();
       var $cookie = array ();
       var $proxy = '';
       var $proxy_user_data = '';
       var $verbose = 0;
       var $referer = '';
       var $autoreferer = 0;
       var $writeheader = '';
       var $agent = 'Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0';
       var $url = ''; 
       var $followlocation = 1;
       var $returntransfer = 1;
       var $ssl_verifypeer = 0;
       var $ssl_verifyhost = 0;
       var $sslcert = '';
       var $sslkey = '';
       var $cainfo = '';
       var $cookiefile = '';
       var $timeout = 0;
       var $connect_time = 0;
       var $encoding = 'gzip,deflate'; 
       var $interface = '';
     
       function __construct (){
         $this->ch = curl_init();
         $this->set_httpheader(array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3','Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'));
       }
     
       function get ($url){
         $this->url = $url;
         return $this->exec();
       }
     
       function post ($url, $postparams, $enctype = false){
         $this->url = $url;
       
         if (!$enctype) {
           $this->postparams = $postparams;
         }
         else {
           $this->postparams = array ();
           $params = explode("&", $postparams);
           for($i = 0; $i < count($params); $i++) {
             list($name, $value) = explode("=", $params[$i]);
             $this->postparams[$name] = $value;
           }
         }
       
         return $this->exec();
       }
     
       function set_httpget ($httpget){
         $this->httpget = $httpget;
       }
     
       function set_referer ($referer){
         $this->referer = $referer;
       }
     
       function set_autoreferer ($autoreferer){
         $this->autoreferer = $autoreferer;
       }
     
       function set_useragent ($agent){
         $this->agent = $agent;
       } 
     
       function set_cookie (){
         preg_match_all('/Set-Cookie: (.*?)=(.*?);/i', $this->head, $matches, PREG_SET_ORDER);
       
         for ($i = 0; $i < count($matches); $i++) {
           if ($matches[$i][2] == 'deleted') {
             $this->delete_cookie($matches[$i][1]);
           } else {
             $this->cookie[$matches[$i][1]] = $matches[$i][2];
           }
         } 
       }
     
       function add_cookie ($cookie){
         foreach ($cookie as $name => $value) {
           $this->cookie[$name] = $value;
         }
       }
     
       function delete_cookie ($name){
         if (isset($this->cookie[$name]))
           unset($this->cookie[$name]);
       }
     
       function get_cookie (){
         return $this->cookie;
       }
     
       function clear_cookie (){
         $this->cookie = array ();
       }
     
       function set_httpheader ($httpheader){
         $this->httpheader = $httpheader;
       }
     
       function clear_httpheader (){
         $this->httpheader = array ();
       }
     
       function set_head ($head){
         $this->head = $head;
       }
     
       function set_encoding ($encoding){
         $this->encoding = $encoding;
       } 
     
       function set_interface ($interface){
         $this->interface = $interface;
       }
    
       function set_writeheader ($writeheader){ 
         $this->writeheader = $writeheader;
       }
    
       function set_followlocation ($followlocation){
         $this->followlocation = $followlocation;
       }
    
       function set_returntransfer ($returntransfer){
         $this->returntransfer = $returntransfer;
       }
     
       function set_ssl_verifypeer ($ssl_verifypeer){
         $this->ssl_verifypeer = $ssl_verifypeer;
       }
     
       function set_ssl_verifyhost ($ssl_verifyhost){
         $this->ssl_verifyhost = $ssl_verifyhost;
       }
     
       function set_sslcert ($sslcert) {
         $this->sslcert = $sslcert;
       }
     
       function set_sslkey ($sslkey) {
         $this->sslkey = $sslkey;
       }
     
       function set_cainfo ($cainfo) {
         $this->cainfo = $cainfo;
       }
     
       function set_timeout ($timeout){
         $this->timeout = $timeout;
       }
     
       function set_connect_time ($connect_time){
         $this->connect_time = $connect_time;
       }
     
       function set_cookiefile ($cookiefile){
         $this->cookiefile = $cookiefile;
       }
    
       function set_proxy ($proxy){
         $this->proxy = $proxy;
       }
     
       function set_proxy_auth ($proxy_user_data){
         $this->proxy_user_data = $proxy_user_data;
       }
     
       function set_verbose ($verbose){
         $this->verbose = $verbose;
       }
     
       function get_error (){
         return curl_errno($this->ch);
       }
     
       function get_location (){
         $result = '';
       
         if (preg_match("/Location: (.*?)\r\n/is", $this->head, $matches)) {
           $result = end($matches);
         }
     
         return $result;
       }
     
       function get_http_state (){
         if (curl_getinfo($this->ch, CURLINFO_HTTP_CODE) == 200) {
           return true;
         } else {
           return false;
         }
       }
     
       function get_speed_download (){
         return curl_getinfo($this->ch, CURLINFO_SPEED_DOWNLOAD);
       }
     
       function get_content_type (){
         return curl_getinfo($this->ch, CURLINFO_CONTENT_TYPE);
       }
     
       function get_url (){
         return curl_getinfo($this->ch, CURLINFO_EFFECTIVE_URL);
       }
     
       function join_cookie() {
         $tcookie = array ();
         foreach ($this->cookie as $key => $value)
           $tcookie[] = "$key=$value";
         return join('; ', $tcookie);
       }
     
       function exec (){
         curl_setopt($this->ch, CURLOPT_USERAGENT, $this->agent);
         curl_setopt($this->ch, CURLOPT_AUTOREFERER, $this->autoreferer);
         curl_setopt($this->ch, CURLOPT_ENCODING, $this->encoding);
         curl_setopt($this->ch, CURLOPT_URL, $this->url);
         curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION , $this->followlocation);
         curl_setopt($this->ch, CURLOPT_RETURNTRANSFER,$this->returntransfer); 
         curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
         curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, $this->ssl_verifyhost);
         curl_setopt($this->ch, CURLOPT_HEADER, 1);
         curl_setopt($this->ch, CURLOPT_TIMEOUT, $this->timeout);
         curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, $this->connect_time);
         curl_setopt($this->ch, CURLOPT_VERBOSE, $this->verbose);
         curl_setopt($this->ch, CURLOPT_POST, 0);
       
         if ($this->referer)
           curl_setopt($this->ch, CURLOPT_REFERER, $this->referer);     
       
         if ($this->interface)
           curl_setopt($this->ch, CURLOPT_INTERFACE, $this->interface);
       
         if ($this->httpget)
           curl_setopt($this->ch, CURLOPT_HTTPGET, $this->httpget);
       
         if ($this->writeheader != '')
           curl_setopt($this->ch, CURLOPT_WRITEHEADER, $this->writeheader);
    
         if ($this->postparams) {   
           curl_setopt($this->ch, CURLOPT_POST, 1);
           curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->postparams);
         }   
       
         if ($this->proxy)
           curl_setopt($this->ch, CURLOPT_PROXY, $this->proxy);
       
         if ($this->proxy_user_data)
           curl_setopt($this->ch, CURLOPT_PROXYUSERPWD, $this->proxy_user_data);
    
         if ($this->cookie)
           curl_setopt($this->ch, CURLOPT_COOKIE, $this->join_cookie());
       
         if (count($this->httpheader))
           curl_setopt($this->ch, CURLOPT_HTTPHEADER, $this->httpheader);
    
         if ($this->sslcert)
           curl_setopt($this->ch, CURLOPT_SSLCERT, $this->sslcert);
         
         if ($this->sslkey)
           curl_setopt($this->ch, CURLOPT_SSLKEY, $this->sslkey);
         
         if ($this->cainfo)
           curl_setopt($this->ch, CURLOPT_CAINFO, $this->cainfo);
       
         if ($this->cookiefile) {   
           curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookiefile);
           curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookiefile);
         }   
       
         $response = curl_exec($this->ch);
         $this->set_head(substr($response, 0, curl_getinfo($this->ch, CURLINFO_HEADER_SIZE)));
         $response = substr($response, curl_getinfo($this->ch, CURLINFO_HEADER_SIZE));
         $this->set_cookie();
       
         $this->postparams = array ();
       
         return $response;
       }
     
       function __destruct (){
         curl_close($this->ch);
       }
    }
    ?>
    
    хочу сделать авторизацию на один сайт,но сами параметры не передаются,авторизация через multipart/form-data

    при коде

    Code:
    <?php
    require_once 'curl.class.php';
    $curl = new curl ();
    $send=$curl->get('https://letyshops.ru/user');
    $pos = strpos($send,'logout');
    if ($pos === false) {
    $postdata=array('mail'=>'login','pass'=>'password','op'=>'');
    $send=$curl->post('https://letyshops.ru/ajax/login2/ajax',$postdata);
    echo 'не найдено';
    print_r($send);
    } else {
       echo 'найдено';
    }
    
    
    передаётся только

    Code:
    POST /ajax/login2/ajax HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
    Host: letyshops.ru
    Accept-Encoding: gzip,deflate
    Cookie: uid=0; old_session=MZVsUw5k9nkxKB6gKSKi-Mm8ZyM5TX2z1KeAtFLIGbA; bui=0; SSESS5288efca5cc8ebc9d12b8cd700a1566b=MZVsUw5k9nkxKB6gKSKi-Mm8ZyM5TX2z1KeAtFLIGbA
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Content-Length: 344
    Expect: 100-continue
    Content-Type: multipart/form-data; boundary=----------------------------209c8d3994a2
    
    
    
    
    весь вечер бьюсь,с другими сайтами всё нормально
     
    #145 Prog-t, 12 Apr 2016
    Last edited: 13 Apr 2016
  6. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    81
    Reputations:
    0
  7. cheebeez

    cheebeez Member

    Joined:
    28 Feb 2010
    Messages:
    34
    Likes Received:
    43
    Reputations:
    1
    Bmite likes this.
  8. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    Вы наркоман?) лучше напишите что хотите
     
  9. 3acuson

    3acuson Member

    Joined:
    31 Jan 2010
    Messages:
    426
    Likes Received:
    5
    Reputations:
    0
    Хелп народ нужна ваша помощь,в php почти дуб-дерево есть форма авторизации в админку но при вводе пароля стоит как я понял двухфакторная авторизация "Enter Authy Token"
    Вот сам форма
    PHP:
    if(isset($_POST['login'])){
            if(!
    $_COOKIE['adminusername']){
                    if(
    $_POST['username']){
                    
    setcookie("adminusername"$_POST['username'], time() + 3600);
                    }else{
                    
    setcookie("adminusername"'nouser'.date('mdHis'), time() + 3600);
                    }
            }
            if(!empty(
    $_POST['username']) && !empty($_POST['password'])){
                if(
    $_COOKIE['adminusername']){
                    unset(
    $_COOKIE['adminusername']);
                }
                
    setcookie("adminusername"$_POST['username'], time() + 3600);
                
                
    $adminQuery mysqli_query($GLOBALS['mydbi'],"select * from admin where username = '".mysqli_real_escape_string($GLOBALS['mydbi'],$_POST['username'])."' and status = 1");
                if(
    $admin mysqli_fetch_array($adminQuery,MYSQLI_BOTH)){
                    if(
    valid_password($_POST['password'], $admin['password'])){
                    if(
    $admin['xfactor'] == && in_array($_SERVER['REMOTE_ADDR'],$goodness) || $admin['xfactor'] == && in_array($_SERVER['REMOTE_ADDR'],$goodness)){
                        
    $_SESSION['adminUsername'] = $admin['username'];
                        
    $_SESSION['adminPassword'] = mightyCrypt($_POST['password']);
                        
    $_SESSION['adminLastLogin'] = $admin['last_login_date'];
                        
                        if(
    $admin['chat_user'] == '1' && $admin['username'] != 'mcruz'){
                            
    $_SESSION['chatuser'] =  $admin['chat_user'];
                            
    //mysql_query("update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."', chat_ready = '1' where admin_id = '$admin[admin_id]'");                        
                        
    }
                        
    mysqli_query($GLOBALS['mydbi'],"update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."' where admin_id = '$admin[admin_id]'");
                        
    adminLog($admin['admin_id'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                        
    header("Location: index.php");
                    }else{
                        if(
    $admin['authy_id'] >= 1){
                            
    $_SESSION['authy_id'] = mightyCrypt($admin['authy_id']);
                            
    $_SESSION['adminPassword'] = mightyCrypt($_POST['password']);
                            }else{
                            
    $_SESSION['message'] = '<p class="error" align="center">You do not have access to this site.</p>';
                            }
                            
    header("Location: login.php");
                    }
                        exit();    
                    }else{
                        
    loginFail($_POST['username'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                        
    $_SESSION['message'] = '<p class="error" align="center">Invalid Access</p>';
                    }
                }else{
                    
    loginFail($_POST['username'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                    
    $_SESSION['message'] = '<p class="error" align="center">Username does not exist</p>';
                }
            }else{
                
    loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                
    $_SESSION['message'] = '<p class="error" align="center">Invalid Login</p>';
            }
            
    header('Location: login.php');
            exit();    
        }
        
        if(isset(
    $_POST['logindos']) && trim(mightyCrypt($_SESSION['authy_id'],'decrypt')) >= 1){
            if(!
    $_COOKIE['adminusername']){
                    
    setcookie("adminusername"trim(mightyCrypt($_SESSION['authy_id'],'decrypt')), time() + 3600);
            }
            
    $usertoken $_POST['usertoken'];
            
    $verification $authy_api->verifyToken(trim(mightyCrypt($_SESSION['authy_id'],'decrypt')), $usertoken, array("force" => "true"));
            if(
    $verification->ok()){
                
    $adminQuery mysqli_query($GLOBALS['mydbi'],"select * from admin where authy_id = '".trim(mightyCrypt($_SESSION['authy_id'],'decrypt'))."' and status = 1");
                if(
    $admin mysqli_fetch_array($adminQuery,MYSQLI_BOTH)){
                        
    $_SESSION['adminUsername'] = $admin['username'];
                        
    $_SESSION['adminLastLogin'] = $admin['last_login_date'];
                        
                        if(
    $admin['chat_user'] == '1' && $admin['username'] != 'admin'){
                            
    $_SESSION['chatuser'] =  $admin['chat_user'];                    
                        }
                        
    mysqli_query($GLOBALS['mydbi'],"update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."' where admin_id = '$admin[admin_id]'");
                        
    adminLog($admin['admin_id'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                        
    header("Location: index.php");
                        exit();    
                }else{
                    
    loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                    
    $_SESSION['message'] = '<p class="error" align="center">User does not exist</p>';
                }        
            }else{
                
    loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login');
                
    $_SESSION['message'] = '<p class="error" align="center">Invalid Access</p>';
            }
            
    header('Location: login.php');
            exit();    
        }    
        
        
    $message $_SESSION['message'];
        unset(
    $_SESSION['message']); 
    Есть данные
    $authy_api = e2c4383cb9531f5bcc91825315500a86
    authy_id = 5215964
     
  10. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Есть сорсы класса, объектом которого является $authy_api и ф-ии mightyCrypt?
     
  11. 3acuson

    3acuson Member

    Joined:
    31 Jan 2010
    Messages:
    426
    Likes Received:
    5
    Reputations:
    0
    require('includes/authy-settings.php');
    PHP:
    <?
    //authy info
    require_once('vendor/autoload.php');
    $authyKey 'e2c4383cb9531f5bcc91825315500a86';
    $authy_api = new Authy\AuthyApi($authyKey);
    ?>
    vendor/autoload.php
    PHP:
    <?php

    // autoload.php @generated by Composer

    require_once __DIR__ '/composer' '/autoload_real.php';

    return 
    ComposerAutoloaderInitc4f47eda716896151c65658cdaf9cca6::getLoader();
    include('includes/twix.php');
    PHP:
    <?
    $monkey md5('furyfunlovingpets'true);
    //special stuff
        
    function mightyCrypt($id,$type 'encrypt'){
                if(
    $type == 'decrypt'){
                    
    $data decryptmeText($id);
                }else{
                    
    $data encryptmeText($id);
                }
             
                return 
    $data;
        }
         
        function 
    encryptmeText($text){
            global 
    $monkey;
            
    $iv_size mcrypt_get_iv_size(MCRYPT_BLOWFISHMCRYPT_MODE_ECB);
            
    $iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);
            
    $data mcrypt_encrypt(MCRYPT_BLOWFISH$monkey$textMCRYPT_MODE_ECB$iv);
            
    $data bin2hex($data);
            return 
    $data;
        }
     
        function 
    decryptmeText($encryptedtext){
            global 
    $monkey;
            
    $iv_size mcrypt_get_iv_size(MCRYPT_BLOWFISHMCRYPT_MODE_ECB);
            
    $iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);
            
    $encryptedtext pack('H*'$encryptedtext);
            
    $data mcrypt_decrypt(MCRYPT_BLOWFISH$monkey$encryptedtextMCRYPT_MODE_ECB$iv);
            return 
    $data;
        }
     
    ?>
    Вроде оно,если еще что нужно могу скинуть сюда или в ПМ
     
    #151 3acuson, 28 Apr 2016
    Last edited: 28 Apr 2016
  12. 3acuson

    3acuson Member

    Joined:
    31 Jan 2010
    Messages:
    426
    Likes Received:
    5
    Reputations:
    0
    В добавок к верхнему посту класс Authy
    AuthyApi.php
    PHP:
    <?php
    /**
    * ApiClient
    *
    * PHP version 5
    *
    * @category Services
    * @package Authy
    * @author David Cuadrado <[email protected]>
    * @license http://creativecommons.org/licenses/MIT/ MIT
    * @link http://authy.github.com/pear
    */

    /**
    * Authy API interface.
    *
    * @category Services
    * @package Authy
    * @author David Cuadrado <[email protected]>
    * @license http://creativecommons.org/licenses/MIT/ MIT
    * @link http://authy.github.com/pear
    */
    namespace Authy;

    use 
    Resty\Resty;

    class 
    AuthyApi
    {
    const 
    VERSION '1.3.0';
    protected 
    $rest;
    protected 
    $api_key;
    protected 
    $api_url;

    /**
    * Constructor.
    *
    * @param string $api_key Api Key
    * @param string $api_url Optional api url
    */
    public function __construct($api_key$api_url "https://api.authy.com")
    {
    $this->rest = new Resty();
    $this->rest->setBaseURL($api_url);
    $this->rest->setUserAgent("authy-php v".AuthyApi::VERSION);

    $this->api_key $api_key;
    $this->api_url $api_url;
    }

    /**
    * Register a user.
    *
    * @param string $email New user's email
    * @param string $cellphone New user's cellphone
    * @param int $country_code New user's country code. defaults to USA(1)
    * @return AuthyUser the new registered user
    */
    public function registerUser($email$cellphone$country_code 1)
    {
    $params $this->defaultParams();
    $params['user'] = array(
    "email" => $email,
    "country_code" => $country_code,
    "cellphone" => $cellphone
    );

    $resp $this->rest->post('/protected/json/users/new'$params);

    return new 
    AuthyUser($resp);
    }

    /**
    * Verify a given token.
    *
    * @param string $authy_id User's id stored in your database
    * @param string $token The token entered by the user
    * @param array $opts Array of options, for example: array("force" => "true")
    *
    * @return AuthyResponse the server response
    */
    public function verifyToken($authy_id$token$opts = array())
    {
    $params array_merge($this->defaultParams(), $opts);
    if (!
    array_key_exists("force"$params)) {
    $params["force"] = "true";
    }
    $url '/protected/json/verify/'urlencode($token)
    .
    '/'urlencode($authy_id);
    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Request a valid token via SMS.
    *
    * @param string $authy_id User's id stored in your database
    * @param array $opts Array of options, for example: array("force" => "true")
    *
    * @return AuthyResponse the server response
    */
    public function requestSms($authy_id$opts = array())
    {
    $params array_merge($this->defaultParams(), $opts);
    $url '/protected/json/sms/'.urlencode($authy_id);

    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Cellphone call, usually used with SMS Token issues or if no smartphone is available.
    * This function needs the app to be on Starter Plan (free) or higher.
    *
    * @param string $authy_id User's id stored in your database
    * @param array $opts Array of options, for example: array("force" => "true")
    *
    * @return AuthyResponse the server response
    */
    public function phoneCall($authy_id$opts = array())
    {
    $params array_merge($this->defaultParams(), $opts);
    $url '/protected/json/call/'.urlencode($authy_id);

    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Deletes an user.
    *
    * @param string $authy_id User's id stored in your database
    *
    * @return AuthyResponse the server response
    */
    public function deleteUser($authy_id)
    {
    $params array_merge($this->defaultParams());
    $url '/protected/json/users/delete/'.urlencode($authy_id);

    $resp $this->rest->post($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Gets user status.
    *
    * @param string $authy_id User's id stored in your database
    *
    * @return AuthyResponse the server response
    */
    public function userStatus($authy_id)
    {
    $params array_merge($this->defaultParams());
    $url '/protected/json/users/'.urlencode($authy_id).'/status';

    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Starts phone verification. (Sends token to user via sms or call).
    *
    * @param string $phone_number User's phone_number stored in your database
    * @param string $country_code User's phone country code stored in your database
    * @param string $via The method the token will be sent to user (sms or call)
    *
    * @return AuthyResponse the server response
    */
    public function phoneVerificationStart($phone_number$country_code$via='sms')
    {
    $params = array(
    "phone_number" => $phone_number,
    "country_code" => $country_code,
    "via" => $via
    );
    $params array_merge($params$this->defaultParams());
    $url '/protected/json/phones/verification/start';

    $resp $this->rest->post($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Phone verification check. (Checks whether the token entered by the user is valid or not).
    *
    * @param string $phone_number User's phone_number stored in your database
    * @param string $country_code User's phone country code stored in your database
    * @param string $verification_code The verification code entered by the user to be checked
    *
    * @return AuthyResponse the server response
    */
    public function phoneVerificationCheck($phone_number$country_code$verification_code)
    {
    $params = array(
    "phone_number" => $phone_number,
    "country_code" => $country_code,
    "verification_code" => $verification_code
    );
    $params array_merge($params$this->defaultParams());
    $url '/protected/json/phones/verification/check';

    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Phone information. (Checks whether the token entered by the user is valid or not).
    *
    * @param string $phone_number User's phone_number stored in your database
    * @param string $country_code User's phone country code stored in your database
    *
    * @return AuthyResponse the server response
    */
    public function phoneInfo($phone_number$country_code)
    {
    $params = array(
    "phone_number" => $phone_number,
    "country_code" => $country_code
    );
    $params array_merge($params$this->defaultParams());
    $url '/protected/json/phones/info';

    $resp $this->rest->get($url$params);

    return new 
    AuthyResponse($resp);
    }

    /**
    * Return the default parameters.
    *
    * @return array array with the default parameters
    */
    protected function defaultParams()
    {
    return array(
    "api_key" => $this->api_key);
    }
    }
    AuthyResponse.php
    PHP:
    <?php

    /**
    * ApiClient
    *
    * PHP version 5
    *
    * @category Services
    * @package Authy
    * @author David Cuadrado <[email protected]>
    * @license http://creativecommons.org/licenses/MIT/ MIT
    * @link http://authy.github.com/pear
    */

    /**
    * Friendly class to parse response from the authy API
    *
    * @category Services
    * @package Authy
    * @author David Cuadrado <[email protected]>
    * @license http://creativecommons.org/licenses/MIT/ MIT
    * @link http://authy.github.com/pear
    */
    namespace Authy;

    class 
    AuthyResponse
    {
    protected 
    $raw_response;
    protected 
    $body;
    protected 
    $errors;

    /**
    * Constructor.
    *
    * @param array $raw_response Raw server response
    */
    public function __construct($raw_response)
    {
    $this->raw_response $raw_response;
    $this->body $raw_response['body'];
    $this->errors = new \stdClass();

    // Handle errors
    if (isset($this->body->errors)) {
    $this->errors $this->body->errors// when response is {errors: {}}
    unset($this->body->errors);
    } elseif (
    $raw_response['status'] == 400) {
    $this->errors $this->body// body here is a stdClass
    $this->body = new \stdClass();
    } elseif (!
    $this->ok() && gettype($this->body) == 'string') {
    // the response was an error so put the body as an error
    $this->errors = (object) array("error" => $this->body);
    $this->body = new \stdClass();
    }
    }

    /**
    * Check if the response was ok
    *
    * @return boolean return true if the response code is 200
    */
    public function ok()
    {
    return 
    $this->raw_response['status'] == 200;
    }

    /**
    * Returns the id of the response if present
    *
    * @return integer id of the response
    */
    public function id()
    {
    return isset(
    $this->body->id) ? $this->body->id null;
    }

    /**
    * Get the request errors
    *
    * @return stdClass object containing the request errors
    */
    public function errors()
    {
    return 
    $this->errors;
    }

    public function 
    message()
    {
    return 
    $this->body->message;
    }
    }

    Change dir:
    >
    " style="margin0pxcolorrgb(255255255); border1px solid rgb(22125585); font-size9ptfont-familymonospace'Courier New'background-colorrgb(858585);">
    AuthyUser.php
    PHP:
    <?php/**
     * ApiClient
     *
     * PHP version 5
     *
     * @category Services
     * @package Authy
     * @author David Cuadrado <[email protected]>
     * @license http://creativecommons.org/licenses/MIT/ MIT
     * @link http://authy.github.com/pear
     */

    /**
     * User implementation. Extends from Authy_Response
     *
     * @category Services
     * @package Authy
     * @author David Cuadrado <[email protected]>
     * @license http://creativecommons.org/licenses/MIT/ MIT
     * @link http://authy.github.com/pear
     */
    namespace Authy;

    class 
    AuthyUser extends AuthyResponse{/**
     * Constructor.
     *
     * @param array $raw_response Raw server response
     */
    public function __construct($raw_response)
     {
     if (isset(
    $raw_response['body']->user)) {// response is {user: {id: id}}$raw_response['body'] = $raw_response['body']->user;
     
    }
    parent::__construct($raw_response);
     }
    }
    помогите с решением проблемы:(
     
  13. Romfenix

    Romfenix New Member

    Joined:
    4 May 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Ребята, у меня очень важная и срочная просьба. Помогите, пожалуйста найти этот скрипт. Он очищает тексты от мусора, тут его описание.
    PHP-скрипт для очистки текстов от мусора (по заданным фильтрам)

    Описание
    Скрипт разбивает текст на предложения, затем проверяет каждое предложение по фильтрами. Если совпало - предложение удаляется. Все предложения, прошедшие проверку записываются в результирующий файл.
    Скрипт хорошо подходит для создания текстовок для доров из сканированных книг, в которых бывает полно мусора. И что ещё хуже, часто бывает, что русские буквы заменены на внешне идентичные английские буквы.
    После работы скрипта в результирующем файле будут сохранены только чистые предложения (в зависимости от выбранных фильтров).

    Требования
    PHP 4

    Фильтры
    Для удобства все фильтры выведены в отдельный файл "filters.txt" и легко могут быть изменены\добавлены.
    ps) Для тех, кто хочет другой фильтр и не разбирается в регулярных выражениях - пишите в ветке, подскажу
    #
    # Фильтры, по которым будут проверяться предложения.
    # При совпадении фильтра с предложением - предложение удаляется.
    # Формат записи: [регулярное выражение] [разделитель-символы табуляции] [описание]
    #

    /^.{0,5}$/ Удалять предложения длинной менее 6 символов
    /^[^А-ЯЁA-Z]/ Удалять предложения, начинающиеся не с заглавной буквы
    /[А-ЯЁ]{2}/ Удалять предложения, в которых присутствует 2 и более подряд идущих заглавных букв
    /[^а-я0-9ё \-,]/i Удалять предложения, в которых присутствуют любые символы отличные от русских букв, цифр, тире и запятой
    /^([^\s]+\s?){0,3}$/ Удалять предложения, в которых менее 4 слов
    /^.+[А-ЯЁA-Z]/ Удалять предложения, в которых есть заглавные буквы не в начале предложения (обычно, это имена собственные, названия и т.п.)

    Просто я нигде его найти не могу, а ссылка под описанием, где я нашел его, уже недействительна. Очень нужен этот скрипт. Помогите найти
     
  14. antonwolf

    antonwolf Banned

    Joined:
    29 Apr 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Посоветуйте пожалуйста учебника для новичка по PHP
     
  15. kolodec

    kolodec New Member

    Joined:
    17 Aug 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Есть папка shablon. В ней лежат скрипты и пару папок.
    Необходимо:
    1. Сделать замену в этих скриптах по макросам и записать в папку с катерориями.
    {TIRE}
    {PROBEL}
    {KREST}

    2. Макросы реализовать из списка категорий в файле txt.
    EXAMPLE:
    HTML:
    кино онлайон
    мильтики про черепаху
    ...
    ...
    просто интересный сериал
    кино онлайон
    HTML:
    {TIRE}кино-онлайон
    {PROBEL}кино онлайон
    {KREST}кино+онлайон
    мильтики про черепаху
    HTML:
    {TIRE}мильтики-про-черепаху
    {PROBEL}мильтики про черепаху
    {KREST}мильтики+про+черепаху
    То ест берется первая строка из файла с категориями и начинается замена по макросам с сохранением в папку по названию категории.
    gotovo/кино-онлайон/ и тут уже скрипты с заменой по макросу.
    gotovo/мильтики-про-черепаху/ и тут уже скрипты с заменой по макросу.

    И так со всеми категориями.
    Спасибо
     
  16. Newdah

    Newdah New Member

    Joined:
    1 Sep 2016
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, вот такая проблема

    PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user ' u0229_u0229180'@'localhost' (using password: YES)' in C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php:71
    Stack trace:
    #0 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php(71): PDO->__construct
    #1 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php(58): NG\Database->connect(Array)
    #2 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Application\Bootstrap.php(58): NG\Database->__construct(Array)
    #3 [internal function]: Bootstrap->_initDB()
    #4 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Bootstrap.php(69): call_user_func(Array)
    #5 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Bootstrap.php(57): NG\Bootstrap->initMethods()
    #6 C:\inetpub\vhosts\u0229180.plsk.regruhost in C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php on line 71
    Что это значит ?
    Заранее спасибо
     
  17. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    пароль неверный у данного пользователя u0229_u0229180
     
    Newdah likes this.
  18. Newdah

    Newdah New Member

    Joined:
    1 Sep 2016
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Да всё верно пароль был не тот,спасибо
     
  19. Cyber_Cat

    Cyber_Cat New Member

    Joined:
    1 Dec 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, нужно написать скриптик.
    Вообщем так, например ввожу ключ в поле, и если ключ верный выполнить определенную процедуру.
    Ключ брать из базы данных MySQL.

    Спасибо заранее.
     
  20. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    Что не так?
    <?php $i % 2 == 0 ? echo "<td>" : echo "<td class=\"black\">"; ?>