на одном сайте # Автоподгрузка классов function __autoload($name){ include("classes/_class.".$name.".php");} # Функции $func = new func; $ip = $func->UserIP; возвращает Ip пользователя, на другом в индекс.пхп после добавления # Функции $func = new func; от сайта остается белая страница. не могу поймать Ip, как в гребанный класс передать параметры если просто инклудить его??
депрекатед ибо spl_autoload_register() https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md скобочки где? смотри лог ошибок, там фатал
PHP Fatal error: Call to undefined method func::IpCode() другой сайт активен работает без скобок и с function __autoload(
как сделать его работу с помощью инклуда? $func = new func(); тоже дает ошибку --- Добавлено --- при создании экземпляра класса Call to undefined method func::IpCode() in www/site4/public_html/inc/classes.php on line 119 вот файл <? class isender{ var $Hosts = ""; /*======================================================================*\ Function: __construct Descriiption: Конструктор класса \*======================================================================*/ function __construct(){ $this->Hosts = str_replace("www.","",$_SERVER['HTTPS_HOST']); } /*======================================================================*\ Function: SendRegKey Descriiption: Отправляет регистрационный ключ \*======================================================================*/ function SendRegKey($mail, $key){ $text = "Вы или кто-то другой начал(а) процесс регистрации аккаунта в на ваш электронный адрес.<br><br>"; $text.= "Чтобы завершить регистрацию в , пожалуйста, перейдите по следующей ссылке: <a href='".$this->Hosts."/signup/key/{$key}'>"; $text.= "".$this->Hosts."/signup/key/{$key}</a>"; $subject = "Запрос на регистрацию в "; return $this->SendMail($mail, $subject, $text); } /*======================================================================*\ Function: RecoveryPassword Descriiption: Восстановление пароля \*======================================================================*/ function RecoveryPassword($user, $pass, $mail){ $text.= "<b>Уважаемый(ая) пользователь</b>, вы создали заявку о восстановлении пароля. <br><br>"; $text.= "Ваш пароль: {$pass}"; $subject = "Сообщение отправлено автоматически с проекта "; return $this->SendMail($mail, $subject, $text); } /*======================================================================*\ Function: SendAfterReg Descriiption: Отправляет данные после регистрации \*======================================================================*/ function SendAfterReg($user, $mail, $pass){ $text = "<b>Уважаемый(ая) пользователь</b>, Вы завершили регистрацию аккаунт в игре . Желаем вам больших заработков!<br><br>"; $text.= "Для входа используйте данные: {$user};{$pass}."; $subject = "Завершение регистрации в bestmine.online"; return $this->SendMail($mail, $subject, $text); } /*======================================================================*\ Function: SetNewPassword Descriiption: Отправляет данные после смены пароля \*======================================================================*/ function SetNewPassword($user, $pass, $mail){ $text = "<b>Уважаемый(ая) пользователь,</b><BR />"; $text.= "Ваши новые данные для входа: {$user};{$pass}<BR />"; $text.= "Если вы не проводили данные изменения или вам нужна помощь, пожалуйста, обратитесь в Службу Поддержки."; $subject = "Смена пароля в "; return $this->SendMail($mail, $subject, $text); } /*======================================================================*\ Function: Headers Descriiption: Создание заголовков письма \*======================================================================*/ function Headers(){ $headers = "MIME-Version: 1.0\r\n"; $headers.= "Content-type: text/html; charset=Windows-1251\r\n"; $headers.= "Date: ".date("d.m.Y H:m:s",time())."\r\n"; $headers.= "From: 123@mail.ru \r\n"; return $headers; } /*======================================================================*\ Function: SendMail Descriiption: Отправитель \*======================================================================*/ function SendMail($recipient, $subject, $message){ $message .= "<br><br> <small>"; return (mail($recipient, $subject, $message, $this->Headers())) ? true : false; } } class func { public $UserIP = "Undefined"; # IP пользователя public $UserCode = "Undefined"; # Код от IP public $TableID = -1; # ID таблицы public $UserAgent = "Undefined"; // Браузер пользователя public $Userparse = "Undefined"; // Браузер пользователя /*======================================================================*\ Function: __construct Output: Нет Descriiption: Выполняется при создании экземпляра класса \*======================================================================*/ public function __construct(){ $this->UserIP = $this->GetUserIp(); $this->UserCode = $this->IpCode(); $this->UserAgent = $this->UserAgent(); $this->Userparse = $this->Userparse(); } /*======================================================================*\ Function: __destruct Output: Нет Descriiption: Уничтожение объекта \*======================================================================*/ public function __destruct(){ } /*======================================================================*\ Function: IpToLong Descriiption: Преобразует IP в целочисленное \*======================================================================*/ public function IpToInt($ip){ $ip = ip2long($ip); ($ip < 0) ? $ip+=4294967296 : true; return $ip; } /*======================================================================*\ Function: IpToLong Descriiption: Преобразует целочисленное в IP \*======================================================================*/ public function IntToIP($int){ return long2ip($int); } /*======================================================================*\ Function: GetUserIp Output: UserIp Descriiption: Определяет IP пользователя \*======================================================================*/ public function GetUserIp(){ if($this->UserIP == "Undefined"){ if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" ); $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']); reset($entries); while (list(, $entry) = each($entries)) { $entry = trim($entry); if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) { $private_ip = array( '/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/'); $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); if ($client_ip != $found_ip) { $client_ip = $found_ip; break; } } } $this->UserIP = $client_ip; return $client_ip; }else return ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" ); }else return $this->UserIP; } } ?>
чувак, я читать не буду эту простыню, у меня есть свои развлечения. чтобы убрать ошибку, нужно знать, что за ошибка. ты даже описания не приводишь. Читай внимательно, переводи ошибки, если не умеешь по-английски читать. Либо учись делать сам, либо ищи того, кто сделает, иногда за бабло. но мы тут обычно рады помочь, может кто поможет.
Скобки можно не писать, если в конструктор ничего не передается. Fatal error: Uncaught Error: Call to undefined method func::IpCode() in C:\OpenServer\domains\test\test\_class.func.php:17 Stack trace: #0 C:\OpenServer\domains\test\index.php(8): func->__construct() #1 {main} thrown in C:\OpenServer\domains\test\test\_class.func.php on line 17 PHP: public function __construct () { $this->UserIP = $this->GetUserIp(); $this->UserCode = $this->IpCode(); # ??? $this->UserAgent = $this->UserAgent(); $this->Userparse = $this->Userparse(); } у тебя функция в классе отсутствует. выше код, два класса в одном файле верно ? раздельно закинь "каждый класс в свой файл" ты же не будешь автоинклюдить класс isender в _class.func.php, по логике такой класс будет загружаться с скрипта _class.isender.php
не надо удалять. это нормально, если что-то не перенёс, нашёл и исправил проблему. Другим может понадобиться тоже.
Как блин таким умным стать, читаю эти гребанные классы, ничегл не понимаю, все "зашло" нормально в голову по пхп кроме гребанных классов и их работы и обращениям к ним