Fatal error:Call to a member function qgGetOne()

bywzy 发表于 程序设计 分类,
0

情感家园企业站 v5.0 多语言多风格版后台登录错误:
Fatal error: Call to a member function qgGetOne() on a non-object in L:\wamp\www\love\class\session.class.php on line 86
后台为何  登陆不了  输入配置的帐号和密码
QgWeb v5.0 Code
PhpOK.Com后台出错
无法进入PhpOK.Com后台

解决方法:
配置SESSION存储方式,在Config.php文件里
把session改为  文本  
代码如下:

程序代码 程序代码

#[Session存储方式]
#[情感建议您在使用Sqlite数据库时,不要把Session写入数据库中]
#[支持sql和txt]
$sessionType = "txt";

  

sitemap 文件制作 sitemap自动生成 sitemap程序

bywzy 发表于 程序设计 分类,
0

昨天打开GOOGLE管理工具后台,发现神州汽配网的sitemap提交的网址还是500个?
一看感觉就不对呀。现在网络每天更新的信息都有这么多,为何还是500个呢。
后来一想,我那sitemap 是用一个网站上的自动程序生成的。免费生成的sitemap文件
限制在500个链接。
没办法,只能自己想办法写了。参照PJBLOG上的sitemap.asp的写法。结合网站的
特点,自己改造了一个sitemap.asp 。最后提交到GOOGLE,测试通过。
程序的主要代码如下:

程序代码 程序代码

<%
Response.Charset = "UTF-8"
Response.ContentType="text/xml"
Response.Expires=60
'以下是产品部分
Dim cate_ID,FeedRows
SQL="Select ProductID,SMT_date FROM V_ProductList orDER BY ProductID DESC "
Dim RS,i
Set RS=Conn.ExeCute(SQL)
if RS.EOF then
  ReDim FeedRows(0,0)
Else
  FeedRows=RS.getrows()
End If
RS.close : Set RS=nothing
Conn.Close
Set Conn=Nothing
%>
<%
If UBound(FeedRows,1)>0 then
  Dim iPrior,dtNow,id,addsj

  dtNow = Now
  With Response
    For i=0 to UBound(FeedRows,2)
      iPrior = 0.5
      .Write "  <url>"
      .Write VbCrLf
      .Write "    <loc>"
      .Write cityurl&"product/ProductView.asp?Productid="&FeedRows(0,i)
      .Write "</loc>"
      .Write VbCrLf
      .Write "    <lastmod>"
      .Write ISO8601(FeedRows(1,i))
      .Write "</lastmod>"
      .Write VbCrLf
      .Write "    <changefreq>"
      If DateDiff("h", FeedRows(1,i), dtNow) < 24 Then
        .Write "hourly"
        iPrior = 0.8
      ElseIf DateDiff("d", FeedRows(1,i), dtNow) < 7 Then
        .Write "daily"
        iPrior = 0.7
      ElseIf DateDiff("ww", FeedRows(1,i), dtNow) < 4 Then
        .Write "weekly"
      ElseIf DateDiff("m", FeedRows(1,i), dtNow) < 12 Then
        .Write "monthly"
      Else
        .Write "yearly"      
      End If
      .Write "</changefreq>"
      .Write VbCrLf
      If iPrior <> 0.5 Then
        .Write "    <priority>"
        .Write iPrior
        .Write "</priority>"
        .Write VbCrLf
      End If
      .Write "  </url>"
      .Write VbCrLf
    Next
  End With
End If


Function ISO8601(DateTime)  
    Dim DateMonth,DateDay,DateHour,DateMinute,DateWeek,DateSecond

  DateTime = DateAdd("h",-8,DateTime)
    DateMonth=Month(DateTime)
    DateDay=Day(DateTime)
    DateHour=Hour(DateTime)
    DateMinute=Minute(DateTime)
    DateWeek=weekday(DateTime)
    DateSecond=Second(DateTime)
    If Len(DateMonth)<2 Then DateMonth="0"&DateMonth
    If Len(DateDay)<2 Then DateDay="0"&DateDay
    If Len(DateMinute)<2 Then DateMinute="0"&DateMinute
    If Len(DateHour)<2 Then DateHour="0"&DateHour    
    If Len(DateSecond)<2 Then DateSecond="0"&DateSecond
    ISO8601=Year(DateTime)&"-"&DateMonth&"-"&DateDay&"T"&DateHour&":"&DateMinute&":"&DateSecond&"Z"
End Function
%>


因为栏目比较多,测试的时候不方便,最后我一共分成了四个文件。分别上传提交。

神州汽配网后台权限代码修改 权限设置

bywzy 发表于 程序设计 分类,
0

昨天想给网站开一个新闻发布的用户.增加好用户后,点权限设置
结果显示网页无法打开!
检查代码后发现.我们之前的程序有BUG.
<%
if request("action")="save" then%>
<!–#include file="../../XXXX.htm"–>
<%end if
%>
那个功能被屏蔽了.
改成指向一个不知道什么内容的网页(且可能已被删除了)
没办法,只能自己DIY了.查看数据库中存放的是
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
用0和1实现功能的开关.
程序代码如下(已测试通过,一开始没有加ID,导致数据更新乱了)
<%
if request("action")="save" then%>
<%
   id=request("userid")
   for i=0 to 16
   b=request(i)
   if b="" then b=0
   a=a&","&b
   next
   a=replace(a," ","")
   a=right(a,len(a)-1)
   conn.execute("update SMT_admin set SMT_flag='"&a&"' where SMT_id='"&id&"' ")
   response.redirect "flag.asp?action=flag&id="&id&""
   'response.end
  %>
<%end if
%>

Agent脚本 脚本说话 脚本指令说明

bywzy 发表于 程序设计 分类,
0

Microsoft Agent 程序设计
让我们从头开始。我们将快速浏览下面这段代码,它举例说明 Microsoft Agent,并加载人物,然后让人物显示在屏幕上:

strAgentName = "Merlin"
strAgentPath = "C:\Windows\Msagent\Chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show

定义了一对变量之后,该脚本创建了一个 Microsoft Agent 服务器的实例并与该实例相连接。接下来该脚本加载脚本头两行已指定的名称为 (strAgentName) 的人物以及文件路径 (strAgentPath)。加载人物后,该脚本创建一个人物对象实例,该实例与刚加载的人物相对应。然后,脚本使用下面这行代码显示人物:

objCharacter.Show

就这么简单;事实上,您可能在大多数脚本中都能够原封不动地使用此样板代码。您唯一可能需要更改的地方就是人物的名称(假设您要使用的人物不是 Merlin),或许还有 .acs 文件的路径(只有当文件在 C:\Windows\Msagent\Chars 下无法找到的时候才需更改)。除此之外,您尽可以将样板代码复制并粘贴到用 Microsoft Agent 编写的每一个脚本中。

注意:我们选择了 Merlin 作为我们的示例人物,是因为 Merlin 随 Windows 提供并安装。不过,还有其他一些人物可供使用,其中包括三个可免费下载的 Microsoft 人物:Peedy 是一只鹦鹉;Genie 是一个精灵;Robby 是一个机器人。有关详细信息,请参阅 Microsoft Agent 主页。

默认情况下,无论何时调用了 Show 方法,这些人物都会演示“出场动画”;例如,对于 Merlin,首先出现的是他的帽子,然后他从帽子里面落下来。如果您希望人物出现时不演示生动的出场动画,那么只需要将 Show 方法的可选 Fast 参数设为 TRUE 即可:

objCharacter.Show TRUE

返回页首
指挥人物
当 Merlin 出现在屏幕上以后,我们就可以开始对他发号施令了。现在,我们假设调用 Show 方法后,可以让人物执行六种任务:


• 让人物说话(使用 Speak 方法)。

• 让人物思考(使用 Think 方法)。

• 让人物做些举动,比如显得高兴,显得困惑或者挥手告别(使用 Play 方法)。

• 让人物指向某物(使用 GestureAt 方法)。

• 让人物移动到屏幕上的其他位置(使用 MoveTo 方法)。

• 关闭人物(使用 Hide 方法)。


让我们来看看用来执行所有这些操作的脚本:

strAgentName = "Merlin"
strAgentPath = "c:\windows\msagent\chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show

objCharacter.Play "GetAttention"
objCharacter.Speak "Hello, how are you?"
objCharacter.Play "LookDown"
objCharacter.Think "Maybe I should move around a little …."
objCharacter.MoveTo 500,400
objCharacter.Play "Pleased"
objCharacter.Speak "Goodbye."
objCharacter.Hide

Do While objCharacter.Visible = TRUE
    Wscript.Sleep 100
Loop

现在让我们来较为详细地看看每一个操作。

让人物说话

不管您相信与否,作为一个脚本编写者,您要做的最简单的事情之一就是让人物说话:您只需要调用 Speak 的方法,并在其后加上任何您希望人物所说的话即可。如果您使用下面这行代码:

objCharacter.Speak "Hello, how are you?"

您就会看到类似下面这样的画面,并听到说话的声音:


默认情况下,每次当人物说话时,他或她的话都伴随着文字气球出现。如果您希望人物说话时不显示文字气球,那么只需将 Balloon.Style 属性设置为 0:

objCharacter.Balloon.Style = 0

您将仍然能听到 Merlin 的声音,但是文字气球将不再显示:


让人物思考

让人物思考采用与让人物说话几乎相同的步骤:调用 Think 方法,并在其后加上任何您希望人物思考的事情。例如,下面这行代码命令人物产生这样一个想法,“Just a moment; I’m thinking.”

objCharacter.Think "Just a moment; I’m thinking."

当人物思考时,只有他或她的想法显示在文字气球上。人物并不说话,而且也您听不到任何声音。


让人物做些举动

每个 Microsoft Agent 人物都自带一组动画,可以使用 Play 方法调用这些动画。例如,假设您希望人物显得很悲伤。您只需调用 Sad 动画:

objCharacter.Play "Sad"

同样,Merlin 能通过取出并吹奏一个喇叭示意发出通知。通过调用 Announce 动画就能做到:

objCharacter.Play "Announce"


可以调用的动画取决于不同的人物。(动画比较特殊,它们被硬编码到每个人物中。)下表中列出了可用于 Merlin 的动画的列表:

动画
说明

Acknowledge
点头

Alert
伸直并抬起眉毛

Announce
举起喇叭并吹奏

Blink
眨眼睛

Confused
挠头

Congratulate
展示奖品

Congratulate_2
鼓掌

Decline
抬起手并摇头

DoMagic1
举起魔法棍

DoMagic2
放下魔法棍,出现云彩

DontRecognize
捂住耳朵

Explain
将两臂向两侧展开

GestureDown
向下的手势

GestureLeft
向左的手势

GestureRight
向右的手势

GestureUp
向上的手势

GetAttention
向前倾并敲击

GetAttentionContinued
向前倾并再次敲击

GetAttentionReturn
返回正常姿势

Hearing_1
耳朵伸长(循环的动画)

Hearing_2
头向左倾(循环的动画)

Hearing_3
头向左转(循环的动画)

Hearing_4
头向右转(循环的动画)

Hide
消失在帽子下面

Idle1_1
喘口气

Idle1_2
向左看并眨眼

Idle1_3
向右看

Idle1_4
从上往右看并眨眼

Idle2_1
看看魔法棍并眨眼

Idle2_2
手握手并眨眼

Idle3_1
打呵欠

Idle3_2
入睡(循环的动画)

LookDown
向下看

LookDownBlink
眨眼向下看

LookDownReturn
返回正常姿势

LookLeft
向左看

LookLeftBlink
眨眼向左看

LookLeftReturn
返回正常姿势

LookRight
向右看

LookRightBlink
眨眼向右看

LookRightReturn
返回正常姿势

LookUp
向上看

LookUpBlink
眨眼向上看

LookUpReturn
返回正常姿势

MoveDown
向下飞行

MoveLeft
向左飞行

MoveRight
向右飞行

MoveUp
向上飞行

Pleased
微笑并把手合在一起

Process
搅拌大锅

Processing
搅拌大锅(循环的动画)

Read
打开书,阅读并查寻

ReadContinued
阅读并查寻

ReadReturn
返回正常姿势

Reading
阅读(循环的动画)

RestPose
正常姿势

Sa
d
悲伤的表情

Search
观察水晶球

Searching
观察水晶球(循环的动画)

Show
从帽子中出现

StartListening
手靠向耳朵

StopListening
手捂在耳朵上

Suggest
显示电灯泡

Surprised
显得很吃惊

Think
用手托住下巴向上看

Thinking
用手托住下巴向上看(循环的动画)

Uncertain
向前倾并抬起眉毛

Wave
摆手

Write
打开书,书写并查寻

WriteContinued
书写并查寻

WriteReturn
返回正常姿势

Writing
书写(循环的动画)


您还可以使用如下的脚本检索与人物有关的动画:

strAgentName = "genie"
strAgentPath = "C:\WINDOWS\msagent\chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

For Each strName in objCharacter.AnimationNames
    Wscript.Echo strName
Next

循环的动画。您可能已经注意到表格中有些动画标示为“循环的”动画。循环的动画就是动画始终运行直到您明确命令它停止(通过使用 Stop 方法)。例如,这是一个始终运行的脚本。为什么呢?因为我们调用了循环的动画 (Searching) 并且没有明确地停止它:

strAgentName = "Merlin"
strAgentPath = "C:\Windows\Msagent\Chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show
objCharacter.Speak "Please wait."
objCharacter.Play "Searching"

objCharacter.Hide

Do While objCharacter.Visible = True
    Wscript.Sleep 250
Loop

注意:您可以通过右键点击 Merlin 并选择 Hide 来停止这个动画和这个脚本。

下面是修订过的脚本,它使用了 Stop 方法。调用 Searching 动画后,我们使用 Wscript.Sleep 来暂停脚本几秒钟;以此来确保脚本实际上有时间启动这个动画。然后使用 Stop 方法停止该动画并让脚本结束:

strAgentName = "Merlin"
strAgentPath = "C:\Windows\Msagent\Chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show
objCharacter.Speak "Please wait."
objCharacter.Play "Searching"

Wscript.Sleep 10000

objCharacter.Stop

objCharacter.Hide

Do While objCharacter.Visible = True
    Wscript.Sleep 250
Loop

让人物指向某处

您会问,那手势怎么办呢?问得好。有时候您不想播放动画;只是希望您的人物指向一般的方向。要实现这个操作您可以调用 GestureAt 方法,并传递两个参数:左侧位置(以像素为单位)和上方位置(同样以像素为单位)。这些值将强迫人物指向与指定方向接近的方向(该动画还没有复杂到能够指向准确的像素)。如下的代码将很可能会使 Merlin 指向屏幕的左侧。(为什么是很可能呢?Merlin 手势的确切方向不仅取决于您输入的坐标,也取决于 Merlin 的当前屏幕位置。要达到您所希望的准确结果,可能需要多试验几次。)

objCharacter.GestureAt 0, 0

如下代码可以让 Merlin 指向屏幕右侧:

objCharacter.GestureAt 800, 0


坦白地讲,根据 Merlin 在屏幕上的位置不同,有时候要预测其手势的方向会很困难。如果要确保您的人物向指定的方向观看,执行动画(如 LookRight 或 LookLeft)而不依靠 GestureAt 是个好办法。

让人物移动到某处

可使用 MoveTo 方法在屏幕上四处移动人物。MoveTo 以像素为单位来测量屏幕上的移动,0,0 代表屏幕的左上边界。要将人物移动到距屏幕左边界 200 像素且距上边界 600 像素的位置,可使用如下代码:

objCharacter.MoveTo 200, 600


默认情况下,人物的速度以 1000 毫秒时间设置。要改变人物的速度,可向 MoveTo 方法添加第三个参数。要使人物移动得更快,可添加一个小于 1000 的数;要使其速度变慢,可添加一个大于 1000 的数。例如,下面这行代码让 Merlin 以大约其正常速度一半的速度移动:

objCharacter.MoveTo 200, 600, 2000

默认情况下,内置动画让人物平稳地从一个位置移动到另一个位置。如果您希望人物从一个地点突然消失然后出现在另一个地点,可将可选速度参数设置为 0:

objCharacter.MoveTo 200, 600, 0

MoveCause 属性。如果您想要人物做些古怪一点的事情(我们得承认,如果您没有想过,您就不会一直读到这里),每个人物都有 MoveCause 属性,它指示人物上次移动的原因。MoveCause 返回下表所示的一个值:


说明

0
人物没有移动。

1
用户移动过人物。

2
应用程序移动过人物。

3
其他的客户端应用程序移动过人物。

4
Agent 服务器移动过人物,以使人物在屏幕分辨率更改后仍然保留在屏幕上。


这有什么酷的呢?好吧,这里是一个简单的小脚本,该脚本让 Merlin 出现在屏幕上,并且请求人们不要点击他并将他到处拖动。接着,该脚本检查 MoveCause 属性的值。若 MoveCause 等于 1,就意味着用户移动过人物;结果,Merlin 会表现出吃惊,并提醒用户,“Hey, I said don’t move me!”如果用户没有移动 Merlin,那么 Merlin 什么也不会说。该脚本还使用了 Request 对象,我们将在本文下一部分对其进行讨论。

strAgentName = "Merlin"
strAgentPath = "c:\windows\msagent\chars\" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show
Set objRequest = objCharacter.Speak _
    ("Please don't click the mouse and drag me to a new location.")

Do While objRequest.Status > 0
    Wscript.Sleep 500
Loop

If objCharacter.MoveCause = 1 Then
    objCharacter.Play "Surprised"
    objCharacter.Speak "Hey, I said don't move me!"
End If

objCharacter.Hide

Wscript.Sleep 3000

Do While objCharacter.Visible = True
    Wscript.Sleep 1000
Loop

要了解 MoveCause 的工作方式,可运行该脚本两次:一次将 Merlin 拖动到新的位置,另一次则不动。

让人物消失

正如我们前面提到的,您只需调用 Hide 方法便可让人物消失:

objCharacter.Hide

同 Show 方法一样,Hide 同样有一个可选的 Fast 参数。默认情况下,当您调用 Hide 方法时,人物会表演退场动画;就 Merlin 而言,他会将自己卷到帽子中然后消失。如果您希望人物只是消失,而不表演退场动画,可将 Fast 参数设为 TRUE:

objCharacter.Hide TRUE class="UBBPanel">

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]