Magento报错:Call to a member function extend() on a non-object in app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115

遇到报错:Fatal error: Call to a member function extend() on a non-object in \app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115

错误原因及解决办法参见:

Magento错误 - Notice: Undefined index:***app\code\core\Mage\Core\Model\Mysql4\Config.php on line 92的解决办法

里的

SET FOREIGN_KEY_CHECKS=0;
update `core_store` set store_id = 0 where code='admin';
update `core_store_group` set group_id = 0 where name='Default';
update `core_website` set website_id = 0 where code='admin';
update `customer_group` set customer_group_id = 0 where customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

执行一遍清缓存就OK。

magento安全 - 修改后台路径/改变后台地址

为了安全考虑, 相信很多人都会想修改Magento默认的后台地址/admin

下面记录一下如何改变Magento的后台访问路径。

System - Configuration - Advanced - Admin - Use custom admin URL 设为YES

Custom admin URL 填入要改的后台路径,比如newadmin

另外修改:/app/etc/local.xml文件

找到<frontName><![CDATA[admin]]></frontName>,将admin改为newadmin

清空var/cache 和 var/session,OK。

 

出现问题报错的话检查以下:

select * from core_config_data where path='admin/url/custom'; -- should be http://www.yourdomain.com/newadminpath
select * from core_config_data where path='admin/url/use_custom'; -- should be: 0
select * from core_config_data where path='web/secure/base_url'
select * from core_config_data where path='web/unsecure/base_url'; -- should be: http://www.yourdomain.com/

标签: magento, admin, 后台

PHP中Session()函数使用

 

对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。

<?php
// 启动 Session
session_start();
// 声明一个名为 admin 的变量,并赋空值。
$_SESSION["admin"] = null;
?>

<?php
session_start();
// 这种方法是将原来注册的某个变量销毁
unset($_SESSION['admin']);
// 这种方法是销毁整个 Session 文件
session_destroy();
?>

<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>

<?php
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_SESSION["admin"] = true;
?>

<?php
// 保存一天
$lifeTime = 24 * 3600;
// 取得当前 Session 名,默认为 PHPSESSID
$sessionName = session_name();
// 取得 Session ID
$sessionID = $_GET[$sessionName];
// 使用 session_id() 设置获得的 Session ID
session_id($sessionID);

session_set_cookie_params($lifeTime);
session_start();
$_SESSION['admin'] = true;
?>

<?php
// 设置一个存放目录
$savePath = './session_save_dir/';
// 保存一天
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
$_SESSION['admin'] = true;
?>
另外,我们还可以使用 session_set_save_handler 函数来自定义 Session 的调用方式。