① 关于php的问题
给你思想:
1。数据库表中存储用户信息
2。显示用户登陆表单进行登陆
3。若登陆失败,则重新显示登陆表单;否则,在处理登陆的php页中保存session,如$_SESSION['username']=$_POST['username'];当然,这个过程中有许多安全方面的要考虑,防止sql注入攻击和跨站攻击。
4。在需要登陆身份的地方,检测session,没有登陆则显示登陆表单,重复3的操作。如:if(empty($_SESSION['username'])){
//进行转址操作
ob_start();
header("location:xxx.php");
ob_end_clean();
}
补充:其实,session和cookie都要用到cookie,(当然,session可以在url上传递,如?SESSID=...,但是,把内容显示在url上是不安全的),只是session的值放在服务器上,需要客户端到服务器提取;而cookie的值直接放在客户端,用户可以修改,比较不安全,只有无关紧要的信息才可以用cookie.
② php框架中的初始文件一般会判断用ob_start('ob_gzhandler')还是ob_start(),那ob_end_clean在哪里呢
开始的时候用ob_start、ob_start('ob_gzhandler')都可以,后者能压缩输出内容,效果是浪费一点服务器的CPU、节省网络流量。
ob_end_clean一般都不用,功能是清除缓冲区并关闭缓冲功能,相当于数据库的rollback。
刷新输出缓冲区的语句可以不用,程序运行完毕会自动刷新输出。
再看看别人怎么说的。
③ 关于php如何实现静态缓存问题如下
楼主,你所说的这个的实现则是
+
根据文件来判断的,每个文件在生成的时候都有一个创建时间,
+
而在数据库的设计中,则是存在这一个修改时间,
+
也就是用数据库来存储和计算这两个值的差值或者是是否相同,
+
再来判断是否要重新生成实质性的HTML文件..
根据楼主的描述,大致的解决思路如上..
而有关
ob_start
的理解,则是:
+
ob_start
先将数据放入
ob
缓存
+
ob_flush
再将缓存数据输出到程序缓存中
+
ob_end_clean
清空缓存并且关闭缓存
+
程序输出
而在页面静态化中,缓存的方法有:
+
ob缓存
+
smarty
缓存
+
ThinkPHP
缓存
+
模版缓存
静态化又分为:
+
实质的静态化
+
伪静态化
这是本人的理解,楼主可以在此基础上加强,形成自己的理解..
④ 请教这段代码是什么意思呢能否详解PHP
具体的代码写法你应该都知道,估计你可能是想问ob_start(),ob_get_contents(),ob_end_clean()这几个函数的用途。
我查了一下资料,大致应该是如下意思:
ob_start
(PHP 4, PHP 5)
ob_start — Turn on output buffering
也就是输出缓冲开始。
ob_get_contents
(PHP 4, PHP 5)
ob_get_contents — Return the contents of the output buffer
就是得到缓冲输出的内容。
ob_end_clean
(PHP 4, PHP 5)
ob_end_clean — Clean (erase) the output buffer and turn off output buffering
清空输出缓冲并关闭之。
fopen,fwrite,fclose你应该都知道了是操作文件的。
⑤ 谁能帮我看看下面这段PHP代码是什么意思啊
if(!defined("IN_DISCUZ"))exit("Access Denied");
/** 如果没有定义IN_DISCUZ常量则不允许执行下面的代码,直接
拒绝访问。
目的是做访问控制。
也就是说用户直接在WEB上直接访问这个PHP文件是不允许的,
需要通过DISCUZ的一个公共文件引入后再访问
(该公共文件做权限管理和输入的GET/POST数据的过滤)
*/
$content=ob_get_contents();
ob_end_clean();
$_G["gzipcompress"] ?ob_start("ob_gzhandler") : ob_start();
//之后生成的内容先放入内存缓冲区
//清空缓冲区
$content = str_replace(
array(
'fg3662','fg3799','fg8597','fg6661','fg7790','fg4093','fg9176','fg6499','fg6282','fg3840','fg2576',,'fg6370','fg1552','fg5337','fg3074','fg','fg2849','fg7720','fg1770','fg7701','fg1837','fg8100','fg2992','fg9310','fg5015','fg8064','fg9961','fg5915','fg2276','fg5547','fg9908','fg9722','fg7470','fg3630','fg6540','fg2521','fg7881','fg2832','fg3670','fg2069','fg3739','fg7940','fg8470','fg2386','fg9753','fg3071'),
array(
'ptm pbw hm','small_nav_bg','wall','small_nav','nav_right','umzliao','y','clear','header_por','logo_p','bA','sch_p','Ant3Search','bl','tx','p_submenu','sub-header','layout','sub-logo','sub-menu','menu-nav','nav-floor','sub-login','login_hou','f14 b s2','tBlogs','tQQ','tSina','p_con','p_hang','bnav_L','bnav_channel','nob','bnav_R','managemenu_menu',cl','t_huodong','n_huodong','n_hd_gj','side','wgd','st','tWall_','tWallB','scrollBgTW','scrollTW','say','top_ann','top_ad','wp','life','coltitle','subnav','life_l','life_zbk','hot_tit foodico','life_cont','lfpic','lftext','life_zbk','hot_tit marrico','life_cont','lfpic','lftext','life_zbk bor-b','hot_tit houseico','life_cont','lfpic','lftext','life_r','tools_box','hd','bd','t1','t2','tools_box mbm','hd','bd','t3','t4','t5','lfside_ad','info','fish_content','jx09-tab','i_content','wp','lfsub','k0_l','border','subtitle','con','k0_c','border','subtitle','con','k0_r','border','subtitle','con','buy','coltitle','subnav','buy_l','buy_zbk','hot_tit foodico','life_cont','lfpic','buytext','life_zbk','hot_tit buyico','life_cont','life_zbk bor-b','hot_tit buyico','life_cont','buy_r','salecont','border','coltitle1','shjph','hdkj','coltitle','subnav','Left_F','Left_C_Tit1','Left_F_List1','Mid_F','hd_r','photo','photo_tit','roollscr','clikL','rollBox','clikR','Hezuo','Hezuo_tit text_r','Hezuo_Bott','bm cl','z xw1','z','layout clearall','main','main-mod share','main-hd link0','z confirm-btn','main-bd','z mt10','newflash','hot-news cl','newtjt','side','b_tr','b_tr1','haslogin_right','b_tr2','b_tj','b_tr2n','tg_active','div_main_content w268 pb10','mrht','tab_div mt14', cl','pcb','bbda cl mtw mbm pbm','pstl xs1','fgoo_pfbm','fgoo_pfbmlf','fgoo_pfbmrt','km_icon thread_add_foot','pi','fgoo_jico','p_pop blk bui','m z','fgoo_yhzico','fgoo_show','atten_btn','fgoo_level','fgoo_gray','fgoo_anniu','register-intro','ptg','fgoo_bltx','ocn_fghot','list','fgoo_vadx','f_pst','pbt cl','upfl','ptm pnpost','linknav','y','contents','contents_left','cl_part','clp1_left','clp1_right','cl_part','cl_part','listname','items','cl_part','julebumulu','kaifangpingtai','contents_right','tb_aspect','wp mtn mbm'),
$content);
//把fg2386之类的东西转换为ptm pbw hm之类的东西(这些应该是CSS的样式名称,也就是fg2386为缩写的样式名,ptm pbw hm为实际生成的样式名称)
echo $content;
;echo ' '
//输出之
⑥ php 中ob_start()是用来做什么的有什么用啊举个具体的例子
控制缓冲区
ob_start(); //开启缓冲
echo '输出内容'; // “输出内容”暂不会打印,而是放入缓冲。
然后可以通过其他的函数来处理缓冲区内容。例如
ob_get_contents获取缓冲区内容
ob_clean清空缓冲区
ob_end_clean清空缓冲区,同时关闭缓冲区。
等等。。。
⑦ Notice: ob_end_clean(): failed to delete buffer. No buffer to delete
通知:ob_end_clean():无法删除缓冲区。没有缓冲区删除。在C:\程序文件\ easyphp1-8\ WWW \ global.php上第340行
警告:不能修改标题信息 - 标题已经发送(输出开始340:在C:\程序文件\ easyphp1-8\ WWW \ global.php)在C:\程序文件\ easyphp1-8\ WWW \ global.php第341行
安装PHPWind时,程序部分和环境设置有冲突。
⑧ php缓存技术比较!!!
ob_get_contents, ob_end_clean从实现上应该是ob_get_clean的分解步骤。后者因为从c代码层面的整合,在仅单次执行时,速度上应该有微量的优势。因为优势远比网络IO的延迟要小,几乎可以忽略吧。
echo ob_get_contents应该也一般是用于首次生成模板缓存。是内存操作。
include用于直接显示。是文件操作。
显示模板可以用后者,做缓存所节约的时间主要是处理计算和各媒介之间的IO上的,根据自己的应用和自己的设备环境在慢的、瓶颈部分作出调整,是灵活的。没有定式。
⑨ 关于php程序刷新问题
<?php
session_start(); //启动session
if(!isset($_SESSION['refresh_count']))//用户session中参数没有设置,见下
$_SESSION['refresh_count'] = 1;//设置参数
else
$_SESSION['refresh_count']++;//已经设置了的,那么自加1
if($_SESSION['refresh_count'] >=1)//如果大于1,很明显就是已经运行过一次了,执行下面代码
{
ob_end_clean();//截取php输出
echo "<script>alert('refresh too much,wait 10 seconds PLS');</script>";//php输出
flush(); //这样可以输出上面的文字//将截取的php输出放出
sleep(5);//暂停5秒(还是5ms……)
$_SESSION['refresh_count'] = 1;//重设用户session
}
?>
看起来这个程序是有问题的,主要目的是想让用户不要频繁刷新吧?
但是refresh_count的设值和判断有问题
自己看了
⑩ ob_end_clean(): failed to delete buffer. No buffer to delete
解决方案有三,任君挑选:
修改 php.ini,把 output_buffering = Off,改为 output_buffering = On 开启php缓存。
在错误行语句,增加个@符号,即: @ob_end_clean();
在错误行语句,修改为 if(ob_get_contents()) ob_end_clean();
以上三个方法三选一即可。请勿同时操作。