ThinkPHP框架 | ThinkPHP Session | ThinkPHP语言包 | ThinkPHP接口API22 February 2012 22:36 Wednesday

ThinkPHP URL自己带上参数PHPSESSID

碰到个问题,ThinkPHP项目程序本地测试没问题,传到服务器后第一次访问,页面的所有URL会自己带上类似?PHPSESSID=28954583914413546c6e881cfa7c8117 这样的参数,再点击刷新下页面后访问才正常。

浏览器并没有禁止cookie,本地访问正常也证实了这点,第一猜想是服务器的环境配置与项目代码某些地方冲突所影响。

检测了服务器的关于cookie的配置对比本地的,发现session.use_trans_sid这个项的配值是不同的,本地关闭,服务器是开着的。

PHP中的会话在默认情况下是使用客户端的cookie来保存session_id的,所以当客户端的cookie出现问题的时候就会影响会话了。其实会话不一定必须依赖cookie,当客户端的cookie被禁用或出现问题时


2011-03-31 21:02:29阅读全文>>>

ThinkPHP使用Paypal支付接口的模块开发

<?php
/**
 * 
 * PaypalAction.class.php
 * 
 * ThinkPHP Paypal支付接口模块
 * 
**/


class PaymentAction extends Action { 

/** 
* 自己的paypal账号 
*/ 
private $account = 'admin@gmail.com';

/** 
* paypal支付网关地址 
*/ 
private $gateway = 'https://www.paypal.com/

2010-12-21 16:19:01阅读全文>>>

thinkphp关于session的使用总结

ThinkPHP官方的说明文档

  1. start 启 动session
  2. pause 暂 停session
  3. clear 清除session
  4. destroy 销毁session
  5. get 获取session
  6. getLocal 获取私有session
  7. set 设置session
  8. setLocal 设置私有session
  9. name 获取或者设置session_name
  10. is_set 是否设置session
  11. is_setLocal 是否设置私有session
  12. id 获取或者设置session_id
  13. path 获取或者设置session_save_path
  14. setExpire 设置session过期时 间
  15. setCookieDomain 设置 有效域名
  16. setCallback 设置Session 对象反序列化时候的回调函数

最常用的操作方法示例:

代码:

// 获 取Session变量

  1. // 检测 Session变量是否存在
  2. Session::is_set('name');
  3.  
  4. // 给Session变 量赋值
  5.  
  6. Session::set('name','value');
  7.  

2010-08-24 09:27:17阅读全文>>>

thinkphp 使用技巧总结 - 快速入门

在比较了下Zend Framework、CakePHP等框架后,我认为ThinkPHP的开发效率最高,代码最为简洁,最适合中小型项目开发。


1. 模板中不能使用的标签
{$content} {$i}
2. If标签
如: <if condition="$name eq 1 ">
试验后总是有想不到的错误, 这样,还不如直接用<?php if(...){ ...?>来得快些呢.

约定:
1.所有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致
2.控制器的类名以Action为后 缀
3.模型的类名以Model为后缀,类名第一个字母须大写
4.数据库表名全部采用小写,

如:
数据表名: 前缀_表名


2010-08-20 11:11:28阅读全文>>>

thinkphp 语言包加载失败的解决办法

 

在浏览器未设置默认语言的时候,thinkphp便检测不到语言,导致语言包加载失败直接输出。

thinkphp2.0语言检测和模板检测是在ThinkPHP\Lib\Think\Core的App.class.php的239行开始,查看代码便可知,当未检测到语言的时候,无法加载语言包。

我的解决办法是,在项目公共部分从配置表中读取站点要设置的语言和模板,代码只有三句话

cookie('think_language','en-us',3600);
cookie('think_template','default',3600);
App::init();

原理就是在thinkphp框架编译完后


2010-07-29 21:32:29阅读全文>>>

thinkphp 多主题和多语言的使用方法

ThinkPHP提供了设置多语言和多主题的接口,如

URL:
语言切换:?l=zh-cn
主题切换:?t=default

对应的目录位置:
APP/Lang/zh-cn/common.php  - 简体中文
APP/Tpl/default/Index/index.html  - 默认主题

模板使用语言输出


2010-07-20 18:41:12阅读全文>>>

thinkphp 自带常量

Action中使用的系统常量

THINK_PATH // ThinkPHP 系统目录
APP_PATH // 当前项目目录
APP_NAME // 当前项目名称
MODULE_NAME //当前模块名称
ACTION_NAME // 当前操作名称
TMPL_PATH // 项目模版目录
LIB_PATH // 项目类库目录
CACHE_PATH // 项目模版缓存目录
CONFIG_PATH //项目配置文件目录
LOG_PATH // 项目日志文件目录
LANG_PATH // 项目语言文件目录
TEMP_PATH //项目临时文件目录
PLUGIN_PATH // 项目插件文件目录
VENDOR_PATH // 第三方类库目录
DATA_PATH // 项目数据文件目录
IS_APACHE // 是否属于 Apache
IS_IIS //是否属于 IIS
IS_WIN //是否属于Windows


2010-07-20 10:35:09阅读全文>>>

thinkPHP学习笔记[持续更新]

快捷方法:
A:快速实例化Action类库
B:执行行为类
C:配置参数存取方法
D:快速实例化Model类库
F:快速简单文本数据存取方法
L:语言参数存取方法
M:快速高性能实例化模型
R:快速远程调用Action类方法
S:快速缓存存取方法
U:URL动态生成和重定向方法
W:快速Widget输出方法

导入:
Vendor\Zend\Filter\Dir.php
Vendor('Zend.Filter.Dir');

lib\Think\Util\Session.class.php
import("Think.Util.Session");

MyApp项目下面的Lib\Action\Us


2010-07-17 17:30:56阅读全文>>>

ThinkPHP去除url中的index.php

例如你的原路径是 http://localhost/test/index.php/index/add
那么现在的地址是 http://localhost/test/index/add
如何去掉index.php呢?

1.httpd.conf配置文件中加载了mod_rewrite.so模块  //在APACHE里面去配置

#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉

2.AllowOverride None 讲None改为 All      //在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为ALL)
<Directory "D:/server/apache/cgi-bin">
AllowOverride none  改   AllowOverride ALL
Options None
Order allow,deny
Allow from all


2010-07-12 11:37:58阅读全文>>>

发表评论:(这里的评论会加到留言板)