用IETester测试IE6老崩溃的解决办法很简单
解决办法:
打开IETESTER——选项——Internet选项——连接——局域网设置——自动检测设置前面的勾去掉,然后重启IeTester即可(也可以不重启)
用IETester测试IE6老崩溃的解决办法很简单
解决办法:
打开IETESTER——选项——Internet选项——连接——局域网设置——自动检测设置前面的勾去掉,然后重启IeTester即可(也可以不重启)
sdcms 的确是一款不错的轻量级的asp cms,但是这次升级标签调用产生些变化
如果分类生成出现”请正确使用列表模板”的提示的时候请注意修改数据列表调用标签
{@sdcms:page table=”View_info” where=”classid in({sdcms:class_allclassid}) and ispass=1″ order=”Ontop desc,id desc”}
‘同样这里调用的变量前面也得有 @
譬如 {@title} {@link} {@pic}
{/@sdcms:page}
注意 这里的 @ 相当于以前的二维循环标签,加上@之后再生成即可.
1.1.3模板应用及相关问题问题
1.3模板如何应用?
1.首先将模板传至skins目录中(前提模板必须是适用1.3的)
2.此时进网站后台的“界面管理”的“网站模板管理”中可以看到刚才上传的模板,此时可以进行模板应用和对模板文件进行管理1.3模板注意事项:
1.模板根目录下必须有skins.asp和Skin.xml
2.skins.asp中的模板名称请记得定义变量
2.skins.asp和Skin.xml写法请参照默认模板的配置方法误使用了低版本的模板发生错误该如何处理?
1.打开Inc目录下的conn.asp,找到此行代码:Option Explicit
将之改为:
‘Option Explicit
意思:将此行注释掉,此时到后台重新选择系统模板的模板,然后撤销刚才的操作即可
站外调用的标签写法(1.3版本)
{sdcms:loop table="view_info" and ispass=1"} <a href="{sdcms:weburl}{link}">{title}</a><br> {/sdcms:loop}说明:主要是在{link}前加上:{sdcms:weburl},其他的全局系统标签均可使用
调用指定栏目信息的方法(适合1.3)
1.调用某类别下信息的方法(含子类)
{sdcms:loop table="view_info" where="classid in({sdcms:allclassid(大类编号)}) and ispass=1"} <a href="{link}">{title}</a><br> {/sdcms:loop}2.同时调用多个大类下信息的方法(含子类)
{sdcms:loop table="view_info" where="classid in({sdcms:allclassid(大类编号1)},{sdcms:allclassid(大类编号2)},{sdcms:allclassid(大类编号3)}) and ispass=1"} <a href="{link}">{title}</a><br> {/sdcms:loop}
第一种情况: 改变父框架的元素值
假设有A.HTML,里面有iFrame嵌套了B.HTML
那么现在在B.HTML中执行改变A.HTML元素的值
这是今天在用PHP写到图片上传模块所遇到的问题了,完整上传模块的实现会在下文中详解,这里主要记录下JS实现的核心代码
<script language="javascript">
function show(){
//改变父窗体中id为pic的内容
//如果是div可以用parent.document.getElementById('divtxt').innerText=xxx
parent.document.getElementById("pic").value = "http://www.islandcn.com";
}
</script>
第二种情况 改变子框架页面内元素的值
<script language="javascript">
function show(){
//改变名为iframe1的iframe中的id为pic的text的内容
window.frames["iframe1"].document.getElementById("pic").value = "http://www.islandcn.com";
}
</script>
在线测试地址:http://www.islandcn.com/regex.html
下面是程序源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>正则表达式在线测试练习</title>
<style type="text/css">
<!--
body,td,th {
font-size: 14px;
}
span{
color:#FF6600;
}
textarea{
width:90%;
}
-->
</style></head>
<body>
<table width="100%" border="0" cellpadding="1" cellspacing="2" bgcolor="#CCCCCC">
<tr>
<td height="30" bgcolor="#EBEBEB"><strong>正则表达式匹配字符:</strong></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFFF"><textarea name="objPattern" onpropertychange="javascript:eval(this.id + 'Info.innerText=' + this.value.length);" cols="90%" rows="2" wrap="off" id="objPattern">src=([^ <>]+\.{1}(gif|jpg|png|bmp|swf)("|')?)</textarea>
<span id="objPatternInfo">0</span>个字符</td>
</tr>
<tr>
<td height="30" bgcolor="#EBEBEB"><strong>预进行处置的原始字符:</strong></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFFF"><textarea name="objRawString" onpropertychange="javascript:eval(this.id + 'Info.innerText=' + this.value.length);" cols="90%" rows="6" wrap="off" id="objRawString"></textarea>
<span id="objRawStringInfo">0</span>个字符</td>
</tr>
<tr>
<td height="30" bgcolor="#EBEBEB"><strong>处置成果(匹配原始值):</strong></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFFF"><textarea name="objMatchResult" onpropertychange="javascript:eval(this.id + 'Info.innerText=' + this.value.length);" cols="90%" rows="4" wrap="off" id="objMatchResult"></textarea>
<span id="objMatchResultInfo">0</span>个字符</td>
</tr>
<tr>
<td height="30" bgcolor="#EBEBEB"><strong>处置结果(匹配子项值):</strong></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFFF"><textarea name="objSubMatchResult" onpropertychange="javascript:eval(this.id + 'Info.innerText=' + this.value.length);" cols="90%" rows="4" wrap="off" id="objSubMatchResult"></textarea>
<span id="objSubMatchResultInfo">0</span>个字符</td>
</tr>
<tr>
<td height="30" bgcolor="#EBEBEB">
<input name="objIgnoreCase" type="checkbox" id="objIgnoreCase" value="Yes" checked="checked" />
<label for="objIgnoreCase">疏忽大小写</label>
<input name="objFirstIndex" type="checkbox" id="objFirstIndex" value="Yes" />
<label for="objFirstIndex">结果中显示字符串地位</label>
<input name="objLength" type="checkbox" id="objLength" value="Yes" />
<label for="objLength">结果中显示字符串长度</label><br />
<label for="objGlobal">匹配次数选项:</label>
<select name="objGlobal" id="objGlobal">
<option value="0">不限匹配次数</option>
<option value="1">仅仅匹配一次</option>
<option value="2">依据所设次数</option>
</select>
<label for="objExeCount">匹配次数:</label>
<input name="objExeCount" type="text" id="objExeCount" value="10" /> <span id="objTimer"></span></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFFF"><input type="button" onclick="vbscript:RegularTest()" name="Submit" value="开端匹配" /></td>
</tr>
</table>
<script language="vbscript">
Function RegularTest
'On Error Resume Next'
objMatchResult.value="正在匹配..."
objSubMatchResult.value="正在匹配..."
Dim objRegExp,aryMatchs,objMatch,StartTime,strMatch,strSubMatch,I,J
StartTime=Timer
Set objRegExp= New RegExp
objRegExp.IgnoreCase = IIf(objIgnoreCase.checked,True,False)
objRegExp.Pattern = objPattern.value
objRegExp.Global = IIf(objGlobal.value="1",False,True)
Set aryMatchs = objRegExp.Execute(objRawString.value)
I=1
For Each objMatch In aryMatchs
strMatch=strMatch & vbNewLine & I & ": " & objMatch.value & IIf(objFirstIndex.checked," 地位:" & objMatch.FirstIndex,"") & IIf(objLength.checked," 长度:" & objMatch.Length,"")
If objMatch.SubMatches.Count<>0 Then
For J=0 To objMatch.SubMatches.Count-1
strSubMatch=strSubMatch & vbNewLine & I & "-$" & (J+1) & ": " & objMatch.SubMatches(J)
Next
strSubMatch=strSubMatch & vbNewLine
End If
If objGlobal.value="2" And I>=CInt(objExeCount.value) Then
Exit For
End If
I=I+1
Next
Set objRegExp=Nothing
objTimer.innerText="匹配成果:" & aryMatchs.Count & "个.破费:" & FormatNumber((Timer-StartTime)*1000,6) & "ms."
If Err.Number=0 Then
objMatchResult.value=Mid(strMatch,3)
objSubMatchResult.value=Mid(strSubMatch,3)
Else
objMatchResult.value=Err.Description
Err.Clear
End If
End Function
Function IIf(bolExp,reTrue,reFalse)
If bolExp Then
IIf=reTrue
Else
IIf=reFalse
End If
End Function
</script>
</body>
</html>
MYSQL数据分页查询原理
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。
OK,上面大概简述了一下MYSQL分页查询的原理,下面正式切入今天的正题PHP+MYSQL分页的应用,其实这个分页函数是网上转来的,但是编码很乱,也没有换行 我将它整理好了,并且测试使用没问题后贴到这里来了,如果你要拷贝此代码,请点击上方的 view plain 然后复制:
<?
//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:
if(!function_exists(pageft)){
//定义函数pageft(),三个参数的含义为:
//$totle:信息总数;
//$displaypg:每页显示信息数,这里设置为默认是20;
//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。
// 默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。
function pageft($totle,$displaypg=20,$url=''){
//定义几个全局变量:
//$page:当前页码;
//$firstcount:(数据库)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。
global $page,$firstcount,$pagenav,$_SERVER;
//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
$GLOBALS["displaypg"]=$displaypg;
if(!$page) $page=1;
//如果$url使用默认,即空值,则赋值为本页URL:
if(!$url){ $url=$_SERVER["REQUEST_URI"];}
//URL分析:
$parse_url=parse_url($url);
$url_query=$parse_url["query"]; //单独取出URL的查询字串
if($url_query){
//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
//这里用到了正则表达式,请参考“PHP中的正规表达式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html)
$url_query=ereg_replace("(^|&)page=$page","",$url_query);
//将处理后的URL的查询字串替换原来的URL的查询字串:
$url=str_replace($parse_url["query"],$url_query,$url);
//在URL后加page查询信息,但待赋值:
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}
//页码计算:
$lastpg=ceil($totle/$displaypg); //最后页,也是总页数
$page=min($lastpg,$page);
$prepg=$page-1; //上一页
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页
$firstcount=($page-1)*$displaypg;
//开始分页导航条代码:
$pagenav="显示第 <B>".($totle?($firstcount+1):0)."</B>-<B>".min($firstcount+$displaypg,$totle)."</B> 条记录,共 $totle 条记录<BR>";
//如果只有一页则跳出函数:
if($lastpg<=1) return false;
$pagenav.=" <a href='$url=1'>首页</a> ";
if($prepg) $pagenav.=" <a href='$url=$prepg'>上一页</a> "; else $pagenav.=" 上一页 ";
if($nextpg) $pagenav.=" <a href='$url=$nextpg'>下一页</a> "; else $pagenav.=" 下一页 ";
$pagenav.=" <a href='$url=$lastpg'>尾页</a> ";
//下拉跳转列表,循环列出所有页码:
$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
for($i=1;$i<=$lastpg;$i++){
if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";
else $pagenav.="<option value='$i'>$i</option>\n";
}
$pagenav.="</select> 页,共 $lastpg 页";
}
}
?>
首先将以上代码保存为 page.php
使用方法:
在需要应用的页面中,包含进分页文件
include_once $_SERVER['DOCUMENT_ROOT'].'/host/inc/page.php';
//get page
$rs=mysql_query("select * from Table");
$total=mysql_num_rows($rs);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
pageft($total,10);
//现在产生的全局变量就派上用场了:
$sql="select * from Table order by ID desc limit $firstcount,$displaypg";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result))
{
echo '此处省略';
}
//输出分页导航条代码:
echo $pagenav;
错误代码:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at …. )
解决方法:
1.在语句session_start();前面有没有html代码,应该将这句语句放到最前面.如果是UTF-8编码应该用编辑器(EditPlus,UltraEdit.Notepad++等)将文件中的BOM删除.切忌勿用windows自带的记事本软件.
2.session的保存路径.配置方法:修改php.ini中的session.save_path = “C:/phpsession” [后边的路径自己设置,并且要保证此目录存在]
3.检查php.ini中的session.auto_start参数,如果是session.auto_start = 0 那么将它修改为 session.auto_start = 1
4.用ob_start()开启缓冲区将输出信息写入缓存区,可以避免headers先于session_start()输出,写入缓存区的内容可由flush()或者ob_end_flush()输出到浏览器.以下是此方法的示例代码
ob_start(); echo "test"; session_start(); ob_end_flush();
这几天把在name.com的域名成功的转入了godaddy,原因很简单: name.com我没有信用卡无法续费 dm/:( 而godaddy支持支付宝. 前后也挺麻烦 其实网上教程也不少,但是因为godaddy的小小改版,可能英文欠佳的同学不太喜欢,所以今天把详细的注意事项和步骤全部记录一下.
第一步 准备工作 (此步骤都在原域名注册商那里操作)
whois隐私保护
首先注意的是:如果你的域名在转入之前有whois保护的话,第一步需要关闭whois隐私保护,当时我在name.com注册的时候是免费的whois隐私保护,如果开启了whois隐私保护的话,Administrative邮箱是收不到邮件的.
就拿name.com的举例吧,打开域名管理

点击图片中的位置,将状态设置为”disabled”即可关闭whois隐私保护
小提示: 很多查询WHOIS查询的地方不能及时查询WHOIS信息,也就是说你的隐私保护关闭了之后,你可能查到的依然是有WHOIS隐私保护的信息,这里推荐下:http://www.dynadot.com 这里查询的都是即时的信息.
Administrative邮箱
这个我查了些资料,有人说最好用gmail hotmail之类的邮箱,不要用国内的163或者sina之类的信箱. 以防收不到信或者慢.
这里就name.com的Administrative邮箱修改做下说明:
打开域名管理之后点击右侧的”Edit Contacts”修改”Email“那一栏的邮箱地址:
域名解锁和转移码
Domain Lock: 域名锁定设置,将状态改为 unlocked
同时记录下Auth Code(转移授权码),一会儿会用到
原域名注册设置大概就到这里了.下面工作主要进入godaddy的设置.
第二步 域名的接入 Godaddy账户内操作
登录Godaddy的账户.
鼠标放到Domains 出现菜单 选择 Transfer Domain.
输入你要转入的域名 然后按 GO
确定好之后 点击 Proceed To Checkout
选择 No Thanks
此处注意的是 在Select Your Transfer Nameservers 默认的是保持域名当前的DNS服务器,如果选择下一个的话就是改成godaddy的dns服务器.然后点击最下面的下一步(此处就跳过了godaddy的增值服务部分Your Privacy and Domain Protection 和Activate Your Website, Email & More )
点击Continue to Checkout来结算 如果有优惠码的话点击上面的”Enter Promo or Source Code“然后点右边的”apply”
这里选择 支付宝付款,如果是其他方式付款对应选择就可以了
把上面的框勾上,然后点击 PLACE ORDER NOW
完成付款后打开My ACCOUNT 点击左侧的
解决方法:
1、右键连接选择”关闭连接”
2、右击连接库选择“连接属性”;
3、选择“高级”属性页,将“使用MySQL字符集”的勾去掉,并选择将“编码”选择为“936 (ANSI/OEM – Simplified Chinese GBK)” ,可以直接输入936根据提示来选择.
4、关闭保存,重新连接。
今天把两台笔记本无线共享上网的方法解决了,而且比较简单的方法,总结一下做个记录. 网络上的方法未必都适合你.
网络环境: 一根网线,通过路由器(非无线路由)上网
设备: 两台笔记本电脑
软件环境: 其中一台是WIN7 旗舰版,另外一台XP SP3专业版
现在问题是通过网线接入实现两台电脑同时可以上网.
在问题解决之前谷歌了很多资料,都不行,无疑网络上都是常规的 设置本地连接共享,然后建立无线连接等等
这里我的解决方法是:
1.让WIN7做主机,其他电脑通过代理此电脑上网,理由: 微软的软件自古来都是从高向下兼容的,为了避免有兼容性上的问题,所以让高版本的WIN7机器为核心
2.WIN7的设置篇
2.1 -> 右键电脑右下角的网络连接的小电脑图标 -> 打开网络和共享中心 -> 点击左侧的[更改适配器设置] -> 将[本地连接]与[无线网络连接]选中右键选择[桥接] -> 成功之后就会看到一个名称为[网桥]的新设备
2.2 -> 打开[网络和共享中心] -> 点击[管理无线网络] -> 添加 -> 创建临时网络 -> 下一步 -> 网络名设置[记住了] -> 安全类型选择WEP -> 安全密钥(注意,这里的密码规则要求比较高,推荐长度长些,另外要大小写字母及数字混用) -> 保存这个网络可以勾上 -> 下一步完成
至此,核心的工作已经完成了.
3. 客户端设置篇
右键右下角无线网络的图标 -> 查看可用的无线网络 -> 选择刚刚上一步过程中创建临时网络输入的名称 -> 连接
连接成功之后 右击网络图标 -> 状态 -> 属性 ->使用以下IP地址 -> 指定一个跟主机(WIN7系统的机器)网段内的IP,如果主机的IP是 192.169.0.2 那么这里你可以写 192.168.0.XX ,尽量往后面写,以免IP冲突.
网络网关及DNS的配置跟主机配置一致即可.
完成之后可以ping下主机的IP,譬如如果主机IP是 192.168.0.2,你可以通过ping命令测试一下,如果OK,再测试ping下外网.
怎么样 是不是很方便呢?(另外好像有款软件是专门设置共享上网的,叫”闪联任意通“,有兴趣的朋友也可以试试)
近期评论