PHP Fatal error: Cannot redeclare ihc_init() Как исправить?

108
08 ноября 2021, 13:40

Появились ошибки на сайте. Понадобилось при регистрации на сайте загружать изображение, но при попытке загрузить получаю ошибку ERROR: Internal Server Error В логах вижу такое:

[Fri Nov 15 01:00:52.520987 2019] [fcgid:warn] [pid 1140] [client 77.111.247.202:52164] mod_fcgid: stderr: PHP Fatal error:  Cannot redeclare ihc_init() (previously declared in /var/www/www-root/data/www/xxxxxxxx.ru/wp-content/plugins/indeed-membership-pro/public/init.php:9) in /var/www/www-root/data/www/xxxxxxxx.ru/wp-content/plugins/indeed-membership-pro/public/init.php on line 87, referer: https://xxxxxxxx.ru/wp-admin/admin.php?page=ihc_manage&tab=register 
[Fri Nov 15 01:01:45.515690 2019] [fcgid:warn] [pid 9407] [client 77.111.247.202:52180] mod_fcgid: stderr: PHP Fatal error:  Cannot redeclare ihc_init() (previously declared in /var/www/www-root/data/www/xxxxxxxx.ru/wp-content/plugins/indeed-membership-pro/public/init.php:9) in /var/www/www-root/data/www/xxxxxxxx.ru/wp-content/plugins/indeed-membership-pro/public/init.php on line 87, referer: https://xxxxxxxx.ru/wp-admin/admin.php?page=ihc_manage&tab=register

Вообще не могу понять как их исправить. Подскажите, пожалуйста, что с этим можно сделать? Очень надо. Срочно.

Видно что дублируется функция, но как это исправить не понятно. Код файла init.php в котором дублируется функция:

<?php 
    function ihc_init(){ 
    	/* 
    	 * RUN EVERYTIME ON PUBLIC 
    	 * @param none 
    	 * @return none 
    	 */ 
    	//========== REGISTER SOCIAL MEDIA COOKIE 
    	if (isset($_COOKIE['ihc_register'])){ 
    		global $ihc_stored_form_values; 
    		$data = unserialize(stripslashes($_COOKIE['ihc_register'])); 
    		if (is_array($data) && count($data)){ 
    			foreach ($data as $k=>$v){ 
    				$ihc_stored_form_values[$k] = $v; 
    			} 
    		} 
    		setcookie("ihc_register", "", time()-3600, COOKIEPATH, COOKIE_DOMAIN, false);//delete the cookie 
    	} 
 
    	$restrictionOn = true; 
    	$postid = -1; 
    	$url = IHC_PROTOCOL . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; /// $_SERVER['SERVER_NAME'] 
    	$current_user = false; 
 
    	if (!empty($_POST['ihcaction'])){ 
    		/// FORM ACTIONS : REGISTER/LOGIN/UPDATE/ RESET PASS/ DELETE LEVEL FROM ACCOUNT PAGE/CANCEL LEVEL FROM ACCOUNT PAGE/ RENEW LEVEL 
    		ihc_init_form_action($url); 
    	} else { 
    		/// LOGOUT / PAY NEW LEVEL 
    		if (!empty($_GET['ihcdologout'])){ 
    			include_once IHC_PATH . 'public/functions/logout.php'; 
    			ihc_do_logout($url); 
    		} else if (!empty($_GET['ihcnewlevel'])){ 
    			ihc_do_pay_new_level(); 
    		} 
 
 
    		//// UX BUILDER 
    		if (isset($_GET['uxb_iframe']) && !empty($_GET['post_id'])){ 
    			return; 
    		} 
    		//// UX BUILDER 
 
 
    		/// REDIRECT / REPLACE CONTENT 
    		$postid = url_to_postid( $url );//getting post id 
    		$restrictionOn = true; 
 
    		if ($postid==0){ 
    			$cpt_arr = ihc_get_all_post_types(); 
    			$the_cpt = FALSE; 
    			$post_name = FALSE; 
    			if (count($cpt_arr)){ 
    				foreach ($cpt_arr as $cpt){ 
    					if (!empty($_GET[$cpt])){ 
    						$the_cpt = $cpt; 
    						$post_name = $_GET[$cpt]; 
    						break; 
    					} 
    				} 
    			} 
    			if ($the_cpt && $post_name){ 
    				$cpt_id = ihc_get_post_id_by_cpt_name($the_cpt, $post_name); 
    				if ($cpt_id){ 
    					$postid = $cpt_id; 
    				} 
    			} else { 
    				//test if its homepage 
    				$homepage = get_option('page_on_front'); 
    				if($url==get_permalink($homepage)) $postid = $homepage; 
    			} 
    		} 
 
    		$restrictionOn = apply_filters( 'ihc_filter_restriction', $restrictionOn, $postid ); 
    		if ( !$restrictionOn ){ 
    				return; 
    		} 
 
    		ihc_if_register_url($url);//test if is register page 
    		ihc_block_page_content($postid, $url);//block page 
 
    	} 
 
    	$restrictionOn = apply_filters( 'ihc_filter_restriction', $restrictionOn, $postid ); 
 
    	if ( !$restrictionOn ){ 
    			return; 
    	} 
 
    	//// BLOCK INDIVIDUAL PAGE 
    	ihc_do_block_if_individual_page($postid); 
 
    	/////////////BLOCK BY URL 
    	ihc_block_url($url, $current_user, $postid);//function available in public/functions.php 
 
    	/// Block Rules 
    	ihc_check_block_rules($url, $current_user, $postid); 
 
    	/// Hide ADMIN BAR 
    	ihc_do_show_hide_admin_bar_on_public(); 
 
    	//echo $postid,'<br/>'; 
    }

Answer 1

Можете переопределить функцию если ее обернуть в function_exists:

if ( ! function_exists( 'ihc_init' ) ) {
    function ihc_init(){
        ...
    }
}
READ ALSO
Yii2 , Rbac, как правильно вывести имя роли d GridVIew

Yii2 , Rbac, как правильно вывести имя роли d GridVIew

Я вывожу таблицу, и вывожу в ней также роль пользователя

113
Не выводить повторяющиеся значения [MySQL]

Не выводить повторяющиеся значения [MySQL]

В базе данных есть 5 строк, с полем description(описание)В каждой из строк в поле description есть хэштег "#istanbul"

131
Добавление файла PDF в Admin panel

Добавление файла PDF в Admin panel

Как правильно организовать добавление файла PDF в админ панели сайта? Где лучше хранить эти данные — в БД или папке ресурса?

182
Превращение строки в число php [дубликат]

Превращение строки в число php [дубликат]

Возможно ли в php подобную строку "125/10" превратить в 125 без использования функции, explode?

161