摘要: session问题集锦 对于PHP的session功能,始终找不到合适的答案,尤其是一些错误,还有一些没有错误的结果,最可怕的就是后者,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。1.错误提示Warning: Cannot send session cookie - headers already sentWarning: Cannot send session cache limiter - headers already sent分析及解决办法这一类问题,的原因是你在程序中使用session_start()时,之前已经有实. 阅读全文
posted @ 2012-06-08 12:47 曾是土木人 阅读(374) 评论(0) 推荐(0) 编辑
摘要: $_FILES数组的内容如下所示。我们假设文件上传字段的名称为file(名称可随意命名) $_FILES['file']['name']客户端机器文件的原名称。 $_FILES['file']['type']文件的MIME类型,需要浏览器提供该信息的支持,例如“image/gif”。 $_FILES['file']['size']已上传文件的大小,单位为字节。 $_FILES['file']['tmp_name']文件被上传后在服务端储存的临时文件名。 $_FILES 阅读全文
posted @ 2012-06-08 12:47 曾是土木人 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 1、mysql_fetch_row,这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。2、mysql_fetch_array,从结果集中取得一行作为关联数组,或数字数组,或二者兼有,除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。3、mysql_fetch_object,顾名思义,从结果集中取得一行作为对象,并将字段名字做为属性。4、mysql_fetch_assoc,从结果集中取得一行作为关联数组,也就是说这个函数不能像mysql_fetch_r 阅读全文
posted @ 2012-06-08 12:46 曾是土木人 阅读(2232) 评论(1) 推荐(0) 编辑
摘要: MySQL中的UNIX_TIMESTAMP函数有两种类型供调用1 无参数调用:UNIX_TIMESTAMP()返回值:自'1970-01-01 00:00:00'的到当前时间的秒数差例子:SELECT UNIX_TIMESTAMP() => 13391234152 有参数调用:UNIX_TIMESTAMP(date)其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字返回值:自'1970-01-01 00:00:00'与指定时间的秒数差举例说明:DATE字符串格式: 阅读全文
posted @ 2012-06-08 12:06 曾是土木人 阅读(77150) 评论(1) 推荐(5) 编辑
摘要: 做开发的时候经常会碰到以下几个问题使用mysql的内置函数将时间轴转成对应的日期 方法一:使用from_unixtime(unix_timestamp)函数即可实现, 如:SELECT FROM_UNIXTIME('1339127478'); 结果:2012-06-08 11:51:18 SELECT FROM_UNIXTIME('1339127478','%Y-%m-%d'); 结果:2012-06-08 2.使用mysql的内置函数对日期进行计算 如:选择符合“三个小时之前”的所有订单 方法一:使用UNIX_TIMESTAMP()将时间转成时 阅读全文
posted @ 2012-06-08 12:03 曾是土木人 阅读(1266) 评论(0) 推荐(0) 编辑
摘要: 分页思路:只需要得到两个变量就成功了一半:每页要显示的记录数$pageSize表中总的数据量 $rowCount有了以上两个变量,我们就可以得出 共有几页了$pageCount然后通过for循环,比如总共有13个页面,那么很容易就能通过for循环输出页数$nav='';//用来保存页数的一个变量for ($i=1;$i<=13;$i++){ $nav.="<a href='index.php?page=".$i."'>第".$i."页</a> "; } 以上的for循环将输 阅读全文
posted @ 2012-05-30 17:59 曾是土木人 阅读(1099) 评论(2) 推荐(0) 编辑
摘要: PHP面向对象分析设计的61条军规(1)所有数据都应该隐藏在所在的类的内部。(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。 如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。 (6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。 (7)类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要 阅读全文
posted @ 2012-05-15 11:45 曾是土木人 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。【2】Win32下apache2 用get方法传递中文参数会出错:test.php?a=你好&b=你也好传递参数是会导致一个内部错误解决办法:"test.p 阅读全文
posted @ 2012-05-15 10:51 曾是土木人 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 今天,总监跟我说,由于客户需要,让我针对zencart进行些简单的二次开发。 大体功能如下:当商品的库存为0的时候,在前台显示一个提示信息(由于这个功能,zencart默认就已经有了,所以就没去修改)在后台也应该提示相关信息,以提醒网站运营人员最终的效果如下:Code:<!-----------------库存警告 start--><?php $sql="SELECT products_id,products_name,(SELECT count('products_id') FROM ".TABLE_PRODUCTS." WHE 阅读全文
posted @ 2012-04-25 22:31 曾是土木人 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 从这里免积分下载插件:zencart二次开发之改进zencart批量上传插件,支持批量上传细节图zencart批量上传插件easypopulate是对products数据表进行操作的,我们只需在easypopulate.php文件中进行一些修改即可让其支持批量上传细节图的功能最终效果截图:注意:这个新增功能主要是考虑到每次产品采集回来后,都得按照规则修改产品细节图的名称,比如:产品大图名称:test.jpg,则要让zencart系统自动帮我们识别产品细节图的话,需要我们手动更改产品名称,比如产品细节图的名称:test_01.jpg,test_02.jpg,如此即可。但是按照系统的默认做法将带来 阅读全文
posted @ 2012-03-29 13:54 曾是土木人 阅读(3472) 评论(4) 推荐(1) 编辑
摘要: 从这里免积分下载zencart二次开发之自动查找产品细节图通过以下代码,可以在打开zencart产品信息页面的时候,让系统自动根据信息页面的产品id号,找到相对应的产品细节图,比系统默认的方法查找效率更高 1 $sql='SELECT `products_additional_image` FROM '.TABLE_PRODUCTS.' WHERE products_id='.$_GET['products_id']; 2 $small_pic = $db->Execute($sql); 3 $small_pic_path=explode( 阅读全文
posted @ 2012-03-29 13:46 曾是土木人 阅读(2208) 评论(0) 推荐(0) 编辑
摘要: Zend Framework的项目结构比较复杂,但是有既定的结构。Zend Framework提供了使用Command命令行生成项目结构的工具,使用非常方便,初学者可以不用为了复杂的结构而Orz。配置ZF命令行涉及到的文件:Zend Framework的library文件夹Zend Framework下载时所带的bin文件夹PHP根目录下的php.exe第一步:将library和bin文件夹拷贝到服务器根目录,我的服务器跟目录为E:\wamp\www第二步:设置环境变量,修改系统变量中的Path值。具体方法,打开cmd,运行“path=路径”,路径可以根据下面两个进行判断。添加上bin文件夹路 阅读全文
posted @ 2012-03-18 11:16 曾是土木人 阅读(446) 评论(0) 推荐(1) 编辑
摘要: 通过启用php.ini配置文件中的相关选项,就可以将大部分想利用SQL注入漏洞的骇客拒绝于门外。 开启magic_quote_gpc=on之后,能实现addslshes()和stripslashes()这两个函数的功能。在PHP4.0及以上的版本中,该选项默认情况下是开启的,所以在PHP4.0及以上的版本中,就算PHP程序中的参数没有进行过滤,PHP系统也会对每一个通过GET、POST、COOKIE方式传递的变量自动转换,换句话说,输入的注入攻击代码将会全部被转换,将给攻击者带来非常大的困难。 虽然如此,攻击者仍然有机会进行SQL注入攻击。。。。。。前提是,当参数为数字型的时候,且未经过I.. 阅读全文
posted @ 2012-01-14 12:54 曾是土木人 阅读(4249) 评论(4) 推荐(0) 编辑
摘要: ASCII(str)返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。也可参见ORD()函数。ORD(str)如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。CONV(N,from_base,to_base)在不同的数字基之间变换数字。比 阅读全文
posted @ 2012-01-13 11:04 曾是土木人 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 想在本地测试的话,可以在此免积分下载:利用SQL注入漏洞拖库同上一篇文章(利用SQL注入漏洞登录后台)一样,我们需要创建数据表,并在表中出入几条数据以备测试之用。在数据库中建立一张表:CREATE TABLE `article` ( `articleid` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT '', `content` text CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`articleid`) 阅读全文
posted @ 2012-01-12 21:24 曾是土木人 阅读(9568) 评论(2) 推荐(1) 编辑