Author Topic: Проблема  (Read 24106 times)

0 Members and 1 Guest are viewing this topic.

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Проблема
« on: January 06, 2006, 07:37:44 PM »
Подскажите пожалуйста в проблемке...
При заходе на странички галереи по ссылкам через результаты поиска поисковыми сайтами Например яндекса, сайт определяет тебя под каким нибудь юзером , и иногда даже админским....   Это проделки хакеров или  дырки скрипта???

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Re: Проблема
« Reply #1 on: January 07, 2006, 04:34:32 AM »
ага, маленькая дырочка с сессиями:
http://www.4homepages.de/forum/index.php?topic=8895.0
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #2 on: January 07, 2006, 08:40:27 PM »
Спасибо за подсказку, но разбираться с языком и проблемой придётся недели с две. Может подмогнёте по русски, а...?
Подкиньте где и что подправить пожалста....

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #3 on: January 07, 2006, 08:45:36 PM »
А сессии я зарубил:

$cache_page_index = 1;
$cache_page_categories = 1;
$cache_page_top = 1;

заменил на:

$cache_page_index = 0;
$cache_page_categories = 0;
$cache_page_top = 0;

Правильно ль я сделал???

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Re: Проблема
« Reply #4 on: January 07, 2006, 09:17:49 PM »
Я не пойму что там так трудно понять. там всего надо найти одну строку в includes/sessions.php и вставить новый блок кода, и всё (ну, если у вас PHP старше 4.3.2 то тогда ещё нужно добавить один блок в самый конец includes/functions.php)
Для трасляции инструкцый пользуйтесь:
http://babelfish.altavista.com/babelfish/urltrurl?lp=en_ru&url=http://www.4homepages.de/forum/index.php?topic=8895.0
Да, перевод ломаный, но основные инструкции что и куда можно понять ;)

Но, сам код который нужно искать и вставлять берите с оригинальной странице, не в коем случае не берите с переведённой, а то сломаете скрипт ;)


А на счёт "сессии я зарубил" - это не сессии, а кеш (cache), ну короче это никакого отношения к сессиям не имеет ;) можете включить это обратно :)
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #5 on: January 07, 2006, 09:31:25 PM »
Я конечно поскромничал но разобрался сам за три минуты без перевода, а потом увидел ваше сообщение,но  всёравно огромное спасибо за подсказку...
На локале всё работает, а файлы на сервере пока не менял, но надеюсь что дырку залотал...
У меня есть ещё проблема...
У юзера автоматом добавляются картинки в избранное. Это последствия тойже дырки иль другая. ?
Еще раз огромное спасибо

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Re: Проблема
« Reply #6 on: January 07, 2006, 09:46:28 PM »
У юзера автоматом добавляются картинки в избранное. Это последствия тойже дырки иль другая. ?
Да, похоже на то. Если после установки заплатки это повторится, то тогда будем думать, но а пока такого ещё ни у кого небыло ;)
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #7 on: January 07, 2006, 10:02:33 PM »
Я как-то выкрадывал на странички прямые ссылки типа: ..../details.php?image_id=640&action=addtolightbox&id=640
получается поисковый робот ходил по ним и сам добавлял картинки будучи залогиненым той дыркой...
Хотя ссылки тогда здесь нипричем...

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Re: Проблема
« Reply #8 on: January 07, 2006, 10:04:22 PM »
Я как-то выкрадывал на странички прямые ссылки типа: ..../details.php?image_id=640&action=addtolightbox&id=640
получается поисковый робот ходил по ним и сам добавлял картинки будучи залогиненым той дыркой...
Хотя ссылки тогда здесь нипричем...
aaa, нуда, тогда эта заплатка должна всё исправить ;)
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #9 on: January 07, 2006, 10:18:25 PM »
И последний косяк...
Когда пользователь просматривает картинку, её хозяину валится письмо типа оставили сообщение и предлагает его почитать по ссылке, а ссылка пустая, т.к. заканчивается на =0, а когда пользователь действительно оставляет на страничке сообщение отправляет два письма, только в первом письме в конце ссылки стоит =0, а во втором реальная ссылка

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #10 on: January 08, 2006, 05:06:41 AM »
Простите конечно, но я облазил весь форум... Неужели здесь говорят хоть как только не по русски.  К сожалению учить языки мне наверно поздно или можно, но между делом...
Хотел  бы узнать как установить вернее вывести на главную страничку последние сообщения-коментарии, да не знаю ваще что искать -то, какие буквы начинать зубрить или переводить.
Может кто подскажет добрым словом или советом. Обещаю сильно не приставать глупыми вопросами, так то я способный мальчик... :D
Столкнулся вот с интересной темкой, лоб расколю, язык не выучу, а результата хочется... :lol:

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #11 on: February 10, 2006, 08:15:14 PM »
Может мне кто подскажет как изменить на русскую кодировку присылаемые 4images письма  :?: :D
А то при регистрации приходит абра -кадабра неизвестного происхождения

Offline vanish

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
    • White Album
Re: Проблема
« Reply #12 on: February 11, 2006, 12:08:58 PM »
Замени содержимое файла includes/email.php на это:
Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: email.php                                            *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.1                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) f&#1100;r weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die(
"Security violation");
}

class 
Email {

  var 
$auth_type "LOGIN"// Default: "LOGIN". Set to "PLAIN" if required.
  
var $no_error 0;
  var 
$use_smtp;
  var 
$to;
  var 
$subject;
  var 
$body;
  var 
$bcc = array();
  var 
$from "";
  var 
$from_email "";
  var 
$word_wrap 76;
  var 
$template_extension "html";
  var 
$start "{";
  var 
$end "}";
  var 
$key_cache = array();
  var 
$val_cache = array();
  var 
$crlf "\r\n";

  function 
Email() {
    global 
$config;
    
$this->use_smtp = ($config['use_smtp'] == 1) ? 0;
    
$this->smtp_auth = (!empty($config['smtp_username']) && !empty($config['smtp_password'])) ? 0;
    
$this->crlf = ($this->use_smtp) ? "\r\n" "\n";
  }

  function 
set_from($email$name "") {
    
$this->from_email $email;
    
$this->from sprintf("Return-Path: %s".$this->crlf$email);
    
$this->from .= ($name != "") ? sprintf("From: %s <%s>".$this->crlf"=?windows-1251?B?".base64_encode($name)."?="$email) : sprintf("From: %s".$this->crlf$email);
  }

  function 
set_to($to) {
    
$this->to $to;
  }

  function 
set_subject($subject) {
    
$this->subject "=?windows-1251?B?".base64_encode($subject)."?=";
  }

  function 
register_vars($var_name$value "") {
    if (!
is_array($var_name)) {
      if (!empty(
$var_name)) {
        
$this->key_cache[$var_name] = "/".$this->add_identifiers($var_name)."/";
        
$this->val_cache[$var_name] = $value;
      }
    }
    else {
      foreach (
$var_name as $key => $val) {
        if (!empty(
$key)) {
          
$this->key_cache[$key] = "/".$this->add_identifiers($key)."/";
          
$this->val_cache[$key] = $val;
        }
      }
    }
  }

  function 
add_identifiers($var_name) {
    return 
preg_quote($this->start.$var_name.$this->end);
  }

  function 
get_template($template$lang) {
    
$path ROOT_PATH."lang/".$lang."/email/".$template.".".$this->template_extension;
    
$line = @implode("", @file($path));
    if (empty(
$line)) {
      
$this->error("Couldn't open Template ".$path);
    }
    return 
$line;
  }

  function 
prepare_text($message) {
    
$message preg_replace("/\r\n/si""\n"$message);
    if (
$this->word_wrap) {
      
$lines explode("\n"$message);
      
$message "";
      for (
$i ;$i sizeof($lines); $i++) {
        
$line_part explode(" "trim($lines[$i]));
        
$buf "";
        for (
$j 0$j count($line_part); $j++)  {
          
$buf_o $buf;
          
$buf .= (($j == 0) ? "" " ").$line_part[$j];
          if (
strlen($buf) > $this->word_wrap && $buf_o != "") {
            
$message .= $buf_o.$this->crlf;
            
$buf $line_part[$j];
          }
        }
        
$message .= $buf.$this->crlf;
      }
    }
    return 
$message;
  }

  function 
set_body($template_name ""$lang "english") {
    
$template_name trim($template_name);
    
$body "";
    if (
$template_name != "") {
      
$template $this->get_template($template_name$lang);
      
$body preg_replace($this->key_cache$this->val_cache$template);
    }
    
$this->body = ((!empty($this->body)) ? $this->body "").$this->prepare_text($body);
  }

  function 
set_simple_body($body "") {
    
$this->body = ((!empty($this->body)) ? $this->body "").$this->prepare_text($body);
  }

  function 
set_bcc($bcc) {
    foreach (
$bcc as $val) {
      
$val trim($val);
      if (
preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i'$val)) {
        
$this->bcc[] = $val;
      }
    }
  }

  function 
create_header() {
    global 
$config;
    
$header "";
    if (empty(
$this->from)) {
      
$header .= sprintf("Return-Path: %s\r\n"$config['site_email']);
      
$header .= sprintf("From: %s\r\n"$config['site_email']);
    }
    else {
      
$header .= $this->from;
    }
    
//$header .= sprintf("Reply-to: %s\r\n", $config['site_email']);
    //$header .= sprintf("To: %s\r\n", $this->to);
    
if (!empty($this->bcc) && !$this->use_smtp) {
      
$bcc_list "";
      foreach (
$this->bcc as $key => $val) {
        
$bcc_list .= (($bcc_list != "") ? ", " "").$val;
      }
      
$header .= sprintf("Bcc: %s\r\n"$bcc_list);
    }
    
$header .= sprintf("Subject: %s\r\n"$this->subject);
    
$header .= sprintf("Subject: %s\r\n"$this->subject);
    
$header .= "MIME-Version: 1.0\n";
    
$header .= "Content-Type: text/plain; charset=\"windows-1251\"\n";
    
$header .= "Content-Transfer-Encoding: 8bit\n";
    return 
$header;
  }

  function 
send_email() {
    if (
$this->use_smtp) {
      return (
$this->smtp_mail($this->to$this->subject$this->body$this->create_header())) ? 0;
    }
    else {
      return (
mail($this->to$this->subject$this->body$this->create_header())) ? 0;
    }
  }

  function 
smtp_mail($mail_to$subject$body$headers "") {
    global 
$config;
    
$ok 1;

    if (empty(
$config['smtp_host'])) {
      
$config['smtp_host'] = "localhost";
    }

    
// open socket.
    
$fp fsockopen($config['smtp_host'], 25);
    
$result fgets($fp1024);
    if (
substr($result03) != 220) {
      
$ok 0;
      
$this->error("Invalid mail server response (service not ready?): $result"1);
    }

    
// send helo
    
if ($this->smtp_auth) {
      
fputs($fp"EHLO ".$config['smtp_host'].$this->crlf);

      
/**
       * Patch by forum user blueshift. Thanks!
       */

      // not ok until first valid server response
      
$ok 0;

      
// fetch response line after line
      
while (!feof($fp)) {
        
$result fgets($fp1024);
        if (
strlen($result)!=0) {
          if (
substr($result03) == 250) {
            
$ok 1;
            
// lower timeout after first valid response
            
if (function_exists('stream_set_timeout')) {
              
stream_set_timeout($fp1);
            }
          }
          else {
            
// reset ok on error
        $ok 0;
            break;
          }
    }
        else {
          
// EOF
          
break;
    }
      }

      if (
$ok == 0) {
        
$this->error("EHLO invalid mail server response: $result"1);
      }

      if (
function_exists('stream_set_timeout')) {
        
// reset timeout for subsequent ops
        
stream_set_timeout($fp30);
      }

      if (
strtoupper($this->auth_type) == "PLAIN") {
        
fputs($fp"AUTH PLAIN ".base64_encode($config['smtp_username'].chr(0).$config['smtp_password']).$this->crlf);
        
$result fgets($fp1024);
        if (
substr($result03) != 235) {
          
$ok 0;
          
$this->error("AUTH PLAIN invalid mail server response: $result<br /> Maybe your SMTP Server does'nt support authentification. Try to leave Username and Password blank in your settings."1);
        }
      }
      else {
        
fputs($fp"AUTH LOGIN".$this->crlf);
        
$result fgets($fp1024);
        if (
substr($result03) != 334) {
          
$ok 0;
          
$this->error("AUTH LOGIN invalid mail server response: $result<br /> Maybe your SMTP Server does'nt support authentification. Try to leave Username and Password blank in your settings."1);
        }

        
fputs($fpbase64_encode($config['smtp_username']).$this->crlf);
        
$result fgets($fp1024);
        if (
substr($result03) != 334) {
          
$ok 0;
          
$this->error("USERNAME invalid mail server response: $result"1);
        }

        
fputs($fpbase64_encode($config['smtp_password']).$this->crlf);
        
$result fgets($fp1024);
        if (
substr($result03) != 235) {
          
$ok 0;
          
$this->error("PASSWORD invalid mail server response: $result"1);
        }
      }
    }
    else {
      
fputs($fp"HELO ".$config['smtp_host'].$this->crlf);
      
$result fgets($fp1024);
      if (
substr($result03) != 250) {
        
$ok 0;
        
$this->error("HELO invalid mail server response: $result"1);
      }
    }

    
// MAIL FROM
    
if (empty($this->from_email)) {
      
$this->from_email $config['site_email'];
    }
    
fputs($fp"MAIL FROM: ".$this->from_email.$this->crlf);
    
$result fgets($fp1024);
    if (
substr($result03) != 250) {
      
$ok 0;
      
$this->error("MAIL FROM invalid mail server response: $result"1);
    }

    
// RCPT TO
    
$mail_to_array explode(","$mail_to);
    
$to_header "To: ";
    foreach (
$mail_to_array as $key => $val) {
      
$val trim($val);
      
fputs($fp"RCPT TO: <$val>".$this->crlf);
      
$result fgets($fp1024);
      if (
substr($result03) != 250) {
        
$ok 0;
        
$this->error("RCPT TO invalid mail server response: $result"1);
      }
      
$to_header .= "<$val>, ";
    }
    
$to_header ereg_replace(", $"""$to_header);

    if (!empty(
$this->bcc)) {
      foreach (
$this->bcc as $key => $val) {
        
fputs($fp"RCPT TO: <$val>".$this->crlf);
        
$result fgets($fp1024);
        if (
substr($result03) != 250) {
          
$ok 0;
          
$this->error("RCPT TO invalid mail server response: $result"1);
        }
        
//$to_header .= "<$val>, ";
      
}
      
//$to_header = ereg_replace(", $", "", $to_header);
    
}

    
// DATA
    
fputs($fp"DATA".$this->crlf);
    
$result fgets($fp1024);
    if (
substr($result03) != 354) {
      
$ok 0;
      
$this->error("DATA invalid mail server response: $result"1);
    }

    
// Send subject
    
fputs($fp"Subject: $subject".$this->crlf);

    
// Send headers
    
fputs($fp$to_header.$this->crlf);
    
$headers preg_replace("/([^\r]{1})\n/""\\1\r\n"$headers);
    
fputs($fp$headers.$this->crlf.$this->crlf);

    
// Send body
    
$body preg_replace("/([^\r]{1})\n/""\\1\r\n"$body);
$body preg_replace("/\n\n/""\n\r\n"$body);
$body preg_replace("/\n\./""\n.."$body);
    
fputs($fp$body.$this->crlf);

    
// End of DATA: CRLF.CRLF
    
fputs($fp$this->crlf.".".$this->crlf);
    
$result fgets($fp1024);
    if (
substr($result03) != 250) {
      
$ok 0;
      
$this->error("DATA(end): invalid mail server response: $result"1);
    }

    
// QUIT
    
fputs($fp"QUIT".$this->crlf);
    
$result fgets($fp1024);
    if (
substr($result03) != 221) {
      
$ok 0;
      
$this->error("QUIT: invalid mail server response: $result"1);
    }

    
// Close connection
    
fclose($fp);

    return 
$ok;
  }

  function 
reset($reset_template_vars 0) {
    
$this->to "";
    
$this->subject "";
    
$this->body "";
    
$this->bcc = array();
    
$this->from "";
    
$this->from_email "";
    if (
$reset_template_vars) {
      
$this->key_cache = array();
      
$this->val_cache = array();
    }
  }

  function 
error($errmsg$halt 0) {
    if (!
$this->no_error) {
      echo 
"<br /><font color='#FF0000'><b>Email Error</b></font>: ".$errmsg."<br />";
      if (
$halt) {
        exit;
      }
    }
  }
// end of class
?>

Offline Alex_Ok

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: Проблема
« Reply #13 on: February 15, 2006, 09:18:59 PM »
Большое спасибо за оперативную подсказку.
А такой вот вопрос...
Как называется мод лист загрузок ? И где о нём почитать. Подкиньте ссылочку :?: