337p日本大胆噜噜噜噜,国产在线|日韩,亚洲品牌自拍一品区9,精品国产一区三区,国产精品密蕾丝视频下载,国产亚洲三区

歡迎光臨
我們一直在努力

zencart后臺提示圖片目錄不可寫

admin閱讀(3036)

對于使用Linux系統的空間、vps、或者服務器的用戶來說,經常遇到在后臺上傳產品時提示圖片目錄不可寫問題。

這些不是很大的問題,我們只要按照提示要求在FTP中找到對應的目錄,右鍵屬性設置權限為777即可。

延長zencart后臺登錄時間的方法

admin閱讀(3148)

zencart官方出于安全考慮,在后臺登錄以后有一個過期時間,如果沒有任何操作的話最長15分鐘后就自動退出,這個對于后臺管理是比較麻煩的。

這個是zencart1.5及以后版本在安全性上做的一個改進,后臺設置的最大就是15分鐘。很多人都希望延遲這個后臺登陸的時間。

那么怎么樣才能讓后臺登陸的時間久一點而不自動退出呢?

可以通過修改代碼來實現延長這個后臺管理員會話時間。

打開文件includesfunctionssessions.php

?if (IS_ADMIN_FLAG === true) {
if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN)) {
$SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN);
}
}

這里的SESSION_TIMEOUT_ADMIN就是后臺設置的管理員會話時間,默認最多就是900秒。

將上面的代碼修改為:

if (IS_ADMIN_FLAG === true) {

if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN == 900 ? 900 : SESSION_TIMEOUT_ADMIN)) {
$SESS_LIFE = (SESSION_TIMEOUT_ADMIN == 900 ? 900 : SESSION_TIMEOUT_ADMIN);
}

}

然后在后臺–基本設置–管理對話超時秒數 設置為9000秒就可以了,這樣就可以在后臺管理控制會話過期時間,既可以延長也可以縮短后臺登錄時間的長短。

解決zencart提示Class ‘zcPassword’ not found的問題

admin閱讀(3809)

今天幫客戶升級了一下zencart,由zencart 1.3.8升級到zencart 1.5.4,前臺客戶登錄的時候出現空白了,然后馬上看了一下log目錄下的錯誤提示:PHP Fatal error: ?Class ‘zcPassword’ not found in E:\wamp\www\eubagus\includes\functions\password_funcs.php on line 15

這個錯誤很明顯是說明zcPassword函數找不到,然后搜索了一下代碼里面這個函數又存在,那為什么又提示找不到呢?

google搜索了很多資料 都沒有這個問題的說明解決,然后自己靈機一動,會不會是該函數沒有加載?

果真如此,客戶的程序對config.core.php該文件有修改,重新放入到了includes\auto_loaders \overrides\config.core.php目錄下,zencart默認是在includes\auto_loaders \config.core.php,所以我們升級的這個核心文件沒有被替換到。

所以接下來把overrides\config.core.php文件中有新加入的代碼,直接復制出來,把這個文件刪除掉,然后重新復制默認目錄下的config.core.php文件進入,把剛才復制出來的新加入代碼加進入就可以了。

現在看看zencart網站前臺是不是可以登錄了。

延長zencart1.5后臺的15分鐘登錄時間和取消90天強制更換密碼

admin閱讀(6048)

今天給大家講講怎么樣延長zencart1.5后臺的15分鐘登錄時間和取消90天強制更換密碼

注: 此操作建議大家在做開發的時修改,真實環境建議不要修改,畢竟這是zencart上面的一個非常好的安全措施

延長zencart1.5后臺的15分鐘登錄時間

打開includes\functions\sessions.php

1 if (IS_ADMIN_FLAG === true) {
2 ??if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN)) {
3 ????$SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN);
4 ??}

修改為

1 if (IS_ADMIN_FLAG === true) {
2 ??if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN >= 900 ? 9000 : SESSION_TIMEOUT_ADMIN)) {
3 ????$SESS_LIFE = (SESSION_TIMEOUT_ADMIN >= 900 ? 9000 : SESSION_TIMEOUT_ADMIN);
4 ??}

SESSION_TIMEOUT_ADMIN是后臺設置的管理員會話時間默認是900秒,現在延長到9000秒也就是150分鐘

取消90天強制更換密碼

法一: 打開admin/login.php

1 define('ADMIN_PASSWORD_EXPIRES_INTERVAL', strtotime('- 90 day'));

吧90調整到你想要的數值

法二: 打開admin/includes/functions/admin_access.php

1 function zen_check_for_password_problems($password, $adminID = 0)
2 {

第一行添加 return false; 取消密碼驗證

延長zencart1.5.1及以后版本后臺密碼修改重設時間

admin閱讀(6180)

zencart官方未了安全考慮,在zencart1.5版本及以后新增了密碼過期時間,默認是90天,從密碼被修改開始計算,過了90天后,密碼需要被重置才能登錄后臺,且不能設置為之前四次使用過的密碼,這些種種做法都是zencart官方為了安全考慮而新增的措施。

對于經常進入后臺操作的我們來說,有時候這種措施變得有些麻煩,需要幾個月就更換一次密碼,而且不能之前4次設置過的,使得密碼記憶起來沒那么容易。

那么怎樣延長這個后臺登錄密碼的過期時間呢?

可以通過下面修改代碼的方法來解決

打開文件 ? “后臺目錄/logo.php” 找到下面代碼

define('ADMIN_PASSWORD_EXPIRES_INTERVAL', strtotime('- 90 day'));

 

將上面的90修改為你需要的過期時間天數即可。

通過上面的一處修改,便可以自己控制延長或者縮短zencart后臺登錄密碼過去時間了。方便自己操作,不過,為了安全,我們還是要盡量經常修改后臺登錄密碼。此處修改只是為了方便操作。

ZenCart深入二次開發-核心文件說明

admin閱讀(4854)

想對ZenCart深入了解的程序猿可以認真看看zencart的文件結構…

1.大家可以看到ZenCart根目錄index.php文件中第一句話是包含include目錄下的application_top.php文件,如:require(’includes/application_top.php’);

zencart系統中application_top.php負責的是初始化工作,比如加載配置文件include(’includes/configure.php’);,如果系統沒檢測到該文件的存在則會嘗試調用安裝文件。

然后它會自動遍歷include/extra_configures下的配置文件并包含進來。

在加載了系統配置文件以后接下來是一個非常重要的文件,這也導致了zencart和oscommerce感覺上很大不同的原因,首先調用一個文件require(’includes/initsystem.php’);
在initsystem.php中最先加載include/auto_loaders/config.core.php,config.core.php 是一個二圍數組$autoLoadConfig,即以數組的形式保存文件的信息供后面文件調用,然后系統會接著加載完 include/auto_loaders目錄下所有文件名匹配$loaderPrefix(默認為config)的文件。

上面程序執行完以后就是加載自動執行程序了require(’includes/autoload_func.php’);在這里它會遍 歷$autoLoadConfig數組,它最終執行的效果會包含所有必須用到的函數或者類的定義,還有變量的初始化,config.core.php里面 的注釋比較清楚比如

$autoLoadConfig[0][] = array(’autoType’=>’class’,’loadFile’=>’class.base.php’);

在autoload_func.php里面執行完以后的效果就是require(DIR_WS_CLASSES . ‘class.base.php’),大部分的初始化化工作是通過包含init_includes目錄下的文件來實現的,如:

$autoLoadConfig[110][] = array(’autoType’=>’init_script’,’loadFile’=> ‘init_templates.php’);

它在執行完autoload_func.php文件后就已經加載了init_includes目錄下的init_templates.php文件。

 

2.下面來介紹下ZenCart是怎么根據摸版把內容顯示出來的。
在index.php的第29行有句

$directory_array = $template->get_template_part($code_page_directory, ‘/^header_php/’);

由于所有初始化工作已經完成,所以我們就可以在上面的文件找到他們的定義,如
$autoLoadConfig[100][] = array(’autoType’=>’classInstantiate’,’className’=>’template_func’,’objectName’=>’template’);

在這里就定義了$template = new template_func(); ,然后$code_page_directory變量的定義是在init_includes/init_sanitize.php文件中定義在這里必須要 對class/template_func.php中定義的template_func類比較熟悉,在該類中主要定義了兩個方法 get_template_dir()和get_template_part();
這兩個方法在zencart的模板使用中起到了決定性的作用。

get_template_dir方法function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false),它定義了5個參數,第一個參數一般是個文件名,它是用來判斷后兩個參數組成的目錄中有沒有匹配$template_code 的這個文件,該類復寫了默認的系統函數file_exists所以很多初學者可能會比較迷惑

function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false) {
//echo ‘template_default/’ . $template_dir . ‘=’ . $template_code;

if($this->file_exists($current_template . $current_page, $template_code)){
return $current_template . $current_page . ‘/’;
}elseif ($this->file_exists(DIR_WS_TEMPLATES . ‘template_default/’ . $current_page, ereg_replace(’/’, ”, $template_code), $debug)){
return DIR_WS_TEMPLATES . ‘template_default/’ . $current_page;
} elseif ($this->file_exists($current_template . $template_dir, ereg_replace(’/’, ”, $template_code), $debug)){
return $current_template . $template_dir;
} else {
return DIR_WS_TEMPLATES . ‘template_default/’ . $template_dir;
//return $current_template . $template_dir;
}
}

/*

includes/templates/zccn/index

includes/templates/template_default/index

includes/templates/zccn/common

includes/templates/template_default/common

*/

get_template_part()方法有兩個函數,第一個參數是文件目錄,第二個參數是匹配的條件,執行的結果是包含該目錄下所有文件名匹配這個條件的文件

比如$directory_array = $template->get_template_part($code_page_directory, ‘/^header_php/’);

這句話執行的結果就是返回目錄下$code_page_directory所有文件名以header_php開頭的文件

如此時的url(http://localhost/zencart/index.php?main_page=product_info&cPath=49_27&products_id=83)

你現在應該查看init_sanitize.php中$code_page_directory的定義此時的$code_page_directory的值應該是includes/modules/product_info/

所以它就應該包含該目錄下所有以header_php開頭的文件,在這里好象就只有一個header_php.php

$directory_array = $template->get_template_part($code_page_directory, ‘/^header_php/’);這個包含文件其實是初始化前臺不同頁面顯示所需要用到的變量函數,主要是初始化數據庫的東西,因為每個頁面需要的數據 資料都有可能不同,所以index.php?main_page=index 當main_page的值不同是在includes/modules/目錄下都會有個對應的目錄,這里是index目錄

只要知道了這兩個方法的用法,你就會知道模板文件都是怎么顯示出來的了

 

再來解釋一 require($template->get_template_dir(’html_header.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/html_header.php’);

假設當前url:http://localhost/zencart/index.php?main_page=index&cPath=48

DIR_WS_TEMPLATE 定義是在includes/init_templates.php中定義define(’DIR_WS_TEMPLATE’, DIR_WS_TEMPLATES . $template_dir . ‘/’);,因為我現在用的是默認的zccn模板

所以現在的DIR_WS_TEMPLATE=includes/templates/zccn/

$current_page_base在這里已經就是index

上面已經解釋了$template->get_template_dir()的方法了

程序會依次在
includes/templates/zccn/index
includes/templates/template_default/index
includes/templates/zccn/common
includes/templates/template_default/common

在以上四個目錄中找html_header.php,最終在template_default/common目錄下找到html_header.php,最先優先當前模板的。

zencart 注冊流程簡化教程

admin閱讀(5101)

zencart 注冊流程簡化教程

1)修改注冊條目時首先應查看后臺“商店設置——客戶資料”,其欄目可更改一些可見項,可以根據自己的理念進行設置;false不顯示,true顯示。

2)在根據自己需要進行可見與不可見設置后,刷新即可看見自己設置的客戶填寫項目,發現zencart 模板都打上星號,是為必填,坦白說這功能需要改進,應該讓站長根據需要進行設置嘛,我們接著來做這個工作;

3)首先要取消星號標示,免得讓客戶誤解,解決方法方案如下:

A、找到includes/languages下的english.php文件,

B、用editplus編輯工具打開,找到諸如

define(‘ENTRY_TELEPHONE_NUMBER_TEXT’, ‘*’);

具體怎么對應,zencart命名挺規范,大家就自己猜啦;

C、去掉’*’中的星號,記得不是去掉單引號哦;

D、刷新,發現相關項目的紅色星號不見了吧,不過此時注冊仍然是必填項;

4)接著來修改表單檢查一項,其為js完成檢查,找到該JS,文件路徑為:includes/modules/pages/create_account下的jscript_form_check.php,看看代碼吧;

A、想好把哪些項目設置為選填項目后,即可注釋掉該項目,根據操作,用/* */比較好,不會出錯,比如:

/*<?php if ((int)ENTRY_LAST_NAME_MIN_LENGTH > 0) { ?>
check_input(“lastname”, <?php echo ENTRY_LAST_NAME_MIN_LENGTH; ?>, “<?php echo ENTRY_LAST_NAME_ERROR; ?>”);
<?php } ?>*/

B、注釋所有你無需檢查提交項目,完成保存即可;

5)自己注冊下,怎么還是提示說XX最少為一個字符,不過細心點,這次提示錯誤是一個橫條系統提示,明顯不是來著js的CHECK_FORM的,接著下一步啦;

6)進入“商店——最小值”設置項目,把那些你想設置為選填的項目設置為0

7) 修改完成!

Zencart如何轉移客戶資料

admin閱讀(3851)

今天主要給大家推薦一個Zencart如何轉移客戶資料的簡化版主要的用途就是就一個zencart網站的客戶字全部遷移到另一個zencart外貿商城網站

<?php
// +----------------------------------------------------------------------
// | Project:Zencart客戶資料轉移合并工具簡化版 Customers Manage
// +----------------------------------------------------------------------
// | Explanation:2013-12-1
// +----------------------------------------------------------------------
// | Version: V1.8
// +----------------------------------------------------------------------

header('Content-Type:text/html;charset=UTF-8');
require('includes/application_top.php');

function ez_get_customers_books($customers_id,$customers_default_address_id){
  global $db;
  $books_data=array();
  $books=$db->Execute("SELECT * FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id=".$customers_id);
  while(!$books->EOF){
    $books->fields['primary'] = ($books->fields['address_book_id']==$customers_default_address_id) ? 1 : 0;
    $books_data[]=$books->fields;
    $books->MoveNext();
  }
  return $books_data;
}

function ez_get_customers_info($customers_id){
  global $db;
  $customers_info=$db->Execute("SELECT * FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id=".$customers_id);
  unset($customers_info->fields['customers_info_id']);
  return $customers_info->fields;
}

$customers_data=array();

//導出
if($_GET['toolaction']=='export'){
  $customers = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS);

  while(!$customers->EOF){
    $customers->fields['books']=ez_get_customers_books($customers->fields['customers_id'],$customers->fields['customers_default_address_id']);
    $customers->fields['customers_info']=ez_get_customers_info($customers->fields['customers_id']);
    $customers_data[$customers->fields['customers_email_address']]=$customers->fields;
    $customers->MoveNext();
  }
  file_put_contents(DIR_FS_SQL_CACHE.'/customers_data.log', json_encode($customers_data));
  echo '導出成功';
  exit;
}

//導入
if($_GET['toolaction']=='import'){
  if(!file_exists(DIR_FS_SQL_CACHE.'/customers_data.log')) {echo '客戶資料文件不存在';die;}
  $customers_data_json=file_get_contents(DIR_FS_SQL_CACHE.'/customers_data.log');
  $customers_data=json_decode($customers_data_json,true);
  foreach($customers_data as $email_address => $email_data){

    $check_email_query = "select count(*) as total
                            from " . TABLE_CUSTOMERS . "
                            where customers_email_address = '" . $email_address . "'";
    $check_email = $db->Execute($check_email_query);
    if ($check_email->fields['total'] > 0) continue;  //郵箱已存在跳出

    $book_data=$email_data['books'];
    $customers_info=$email_data['customers_info'];

    unset($email_data['books'],$email_data['customers_id'],$email_data['customers_info']);

    //插入客戶表
    zen_db_perform(TABLE_CUSTOMERS, $email_data);
    $customers_id = $db->Insert_ID();

    //插入客戶信息表
    $customers_info['customers_info_id']=$customers_id;
    zen_db_perform(TABLE_CUSTOMERS_INFO, $customers_info);

    //插入地址表
    foreach($book_data as $book){
      $book['customers_id']=$customers_id;
      unset($book['address_book_id']);
      $primary= ($book['primary']==1) ? 1 : 0;
      unset($book['primary'],$book['address_book_id']);

      zen_db_perform(TABLE_ADDRESS_BOOK, $book);
      $books_id = $db->Insert_ID();

      //更新客戶表默認地址
      if($primary==1)  $db->Execute("UPDATE ".TABLE_CUSTOMERS." SET customers_default_address_id=".$books_id." WHERE customers_id=".$customers_id);
    }
  }
  echo '導入成功';
  exit;
}
?>
<a href="?toolaction=export">導出</a>
<a href="?toolaction=import">導入</a>

使用方法很簡單,只用將文件上傳到網站根目錄,然后瀏覽器運行http://xxx.com/customers_populate.php,導出后將cache/customers_data.log轉移到另一個站的cache下,然后執行導入
下載地址:鏈接:http://pan.baidu.com/s/1bnFbOcf 密碼:j6w2

35PHP 更全 更專業 更方便