d:\wwwroot\wuchunhua\biji\index.asp
001:
<%
@LANGUAGE="VBSCRIPT" CODEPAGE="936"
%
>
002:
<%
003:
' ========== 核心编码设置 ==========
004:
Response.Charset = "gb2312"
005:
Response.CodePage = 936
006:
Session.CodePage = 936
007:
On Error Resume Next
008:
009:
' ========== 定义ADODB常量 ==========
010:
Const adOpenStatic = 3
011:
Const adLockReadOnly = 1
012:
Const adLockOptimistic = 3
013:
Const adCmdText = 1
014:
015:
' ========== 处理笔记提交逻辑 ==========
016:
Dim submitMsg ' 提交结果提示
017:
If Request.Form("submitNote") = "提交笔记" Then
018:
Dim inputUsername, inputBiji
019:
inputUsername = Trim(Request.Form("username"))
020:
inputUsername = Replace(inputUsername, "'", "''")
021:
inputBiji = Trim(Request.Form("biji"))
022:
inputBiji = Replace(inputBiji, "'", "''")
023:
024:
If inputUsername = "" Then
025:
submitMsg = "<span style='color:red;'>用户名不能为空!</span>"
026:
ElseIf inputBiji = "" Then
027:
submitMsg = "<span style='color:red;'>笔记内容不能为空!</span>"
028:
Else
029:
Dim conn, connStr, rs, dbPath, maxBijiNum, newBijiNum
030:
dbPath = "d:\wwwroot\wuchunhua\biji\biji.mdb"
031:
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";"
032:
Set conn = Server.CreateObject("ADODB.Connection")
033:
conn.Open connStr
034:
035:
If Err.Number <> 0 Then
036:
submitMsg = "<span style='color:red;'>数据库连接失败,请联系管理员!</span>"
037:
Else
038:
Set rs = Server.CreateObject("ADODB.Recordset")
039:
rs.Open "SELECT IIF(ISNULL(MAX(bijinumber)),0,MAX(bijinumber)) AS maxNum FROM users", conn, adOpenStatic, adLockReadOnly
040:
newBijiNum = CInt(rs("maxNum")) + 1
041:
rs.Close
042:
Set rs = Nothing
043:
044:
Dim sqlInsert
045:
sqlInsert = "INSERT INTO users (username, biji, bijinumber, [time]) " & _
046:
"VALUES ('" & inputUsername & "', '" & inputBiji & "', " & newBijiNum & ", Now())"
047:
048:
conn.Execute(sqlInsert)
049:
050:
If Err.Number <> 0 Then
051:
submitMsg = "<span style='color:red;'>提交失败,请重试!</span>"
052:
Else
053:
submitMsg = "<span style='color:green;'>笔记提交成功!</span>"
054:
End If
055:
End If
056:
057:
conn.Close
058:
Set conn = Nothing
059:
End If
060:
End If
061:
062:
' ========== 处理表格排序逻辑 ==========
063:
Dim sortField, sortOrder, sqlOrder
064:
' 默认排序:按序号倒序
065:
sortField = Request.QueryString("sort")
066:
sortOrder = Request.QueryString("order")
067:
068:
' 验证排序字段(防止SQL注入)
069:
If sortField = "" Or Not (sortField = "bijinumber" Or sortField = "username" Or sortField = "time" Or sortField = "biji") Then
070:
sortField = "bijinumber"
071:
End If
072:
073:
' 验证排序方向
074:
If sortOrder = "" Or Not (sortOrder = "asc" Or sortOrder = "desc") Then
075:
sortOrder = "desc"
076:
End If
077:
078:
' 拼接排序SQL
079:
sqlOrder = " ORDER BY " & sortField & " " & sortOrder
080:
081:
' ========== 数据库连接(展示数据) ==========
082:
Dim showConn, showConnStr, showRs, sqlShow, rowCount
083:
dbPathShow = "d:\wwwroot\wuchunhua\biji\biji.mdb"
084:
085:
showConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPathShow & ";"
086:
Set showConn = Server.CreateObject("ADODB.Connection")
087:
showConn.Open showConnStr
088:
089:
rowCount = 0
090:
If Err.Number = 0 Then
091:
Set showRs = Server.CreateObject("ADODB.Recordset")
092:
sqlShow = "SELECT * FROM users" & sqlOrder
093:
showRs.Open sqlShow, showConn, adOpenStatic, adLockReadOnly, adCmdText
094:
095:
' 统计行数
096:
If Not (showRs.EOF And showRs.BOF) Then
097:
showRs.MoveFirst
098:
Do While Not showRs.EOF
099:
rowCount = rowCount + 1
100:
showRs.MoveNext
101:
Loop
102:
showRs.MoveFirst
103:
End If
104:
End If
105:
%
>
106:
107:
<!DOCTYPE html>
108:
<html>
109:
<head>
110:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
111:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
112:
<title>笔记管理</title>
113:
<style>
114:
/* 全局样式 */
115:
* {margin:0;padding:0;box-sizing:border-box;}
116:
.container {max-width:1000px;margin:0 auto;padding:20px;font-family:"Microsoft Yahei", sans-serif;}
117:
118:
/* 表单样式 */
119:
.note-form {margin:20px 0;padding:20px;border:1px solid #eee;background:#f9f9f9;border-radius:6px;}
120:
.note-form .form-item {margin:15px 0;}
121:
.note-form label {display:inline-block;width:80px;font-weight:bold;}
122:
.note-form input[type=text] {width:300px;padding:8px;border:1px solid #ddd;border-radius:4px;}
123:
.note-form textarea {width:100%;max-width:500px;height:100px;padding:8px;border:1px solid #ddd;border-radius:4px;resize:vertical;}
124:
.note-form button {padding:8px 24px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;}
125:
.note-form button:hover {background:#0056b3;}
126:
.submit-msg {margin:10px 0;font-size:14px;}
127:
128:
/* 表格样式 */
129:
.data-count {margin:10px 0;color:#666;font-size:14px;}
130:
.note-table {width:100%;border-collapse:collapse;margin:10px 0;border:1px solid #ddd;}
131:
.note-table th {background:#f5f5f5;font-weight:bold;padding:12px;text-align:left;border:1px solid #ddd;position:relative;}
132:
.note-table td {padding:10px;border:1px solid #ddd;}
133:
.note-table tr:hover {background:#f8f8f8;}
134:
135:
/* 排序按钮样式(重点:确保显示) */
136:
.sort-wrapper {display:inline-flex;align-items:center;margin-left:8px;}
137:
.sort-btn {
138:
background:#fff;border:1px solid #007bff;color:#007bff;width:24px;height:24px;
139:
border-radius:4px;cursor:pointer;font-size:12px;line-height:20px;margin:0 2px;
140:
}
141:
.sort-btn:hover {background:#007bff;color:#fff;}
142:
.sort-status {color:#ff6700;font-size:12px;margin-left:8px;font-weight:normal;}
143:
144:
.empty-tip {margin:20px 0;color:#999;font-size:14px;}
145:
</style>
146:
</head>
147:
<body>
148:
<div class="container">
149:
<h2>笔记管理</h2>
150:
151:
<!-- 写笔记表单 -->
152:
<div class="note-form">
153:
<form method="post" action="">
154:
<div class="form-item">
155:
<label>用户名:</label>
156:
<input type="text" name="username" placeholder="请输入用户名" required>
157:
</div>
158:
<div class="form-item">
159:
<label>笔记内容:</label>
160:
<textarea name="biji" placeholder="请输入笔记内容" required></textarea>
161:
</div>
162:
<div class="form-item">
163:
<button type="submit" name="submitNote" value="提交笔记">写笔记</button>
164:
</div>
165:
<div class="submit-msg">
<%
=submitMsg
%
></div>
166:
</form>
167:
</div>
168:
169:
<!-- 笔记列表表格(排序按钮修复) -->
170:
<%
If Err.Number <> 0 Or (showRs.EOF And showRs.BOF) Then
%
>
171:
<div class="empty-tip">暂无笔记数据</div>
172:
<%
Else
%
>
173:
<div class="data-count">共
<%
=rowCount
%
> 条笔记</div>
174:
<table class="note-table">
175:
<thead>
176:
<tr>
177:
<!-- 序号列排序(修复按钮显示) -->
178:
<th>
179:
序号
180:
<div class="sort-wrapper">
181:
<button class="sort-btn" onclick="window.location.href='?sort=bijinumber&order=asc'">↑</button>
182:
<button class="sort-btn" onclick="window.location.href='?sort=bijinumber&order=desc'">↓</button>
183:
</div>
184:
<%
If sortField="bijinumber" Then
%
>
185:
<span class="sort-status">
<%
=IIf(sortOrder="asc", "正序", "倒序")
%
></span>
186:
<%
End If
%
>
187:
</th>
188:
<!-- 用户名列排序 -->
189:
<th>
190:
用户名
191:
<div class="sort-wrapper">
192:
<button class="sort-btn" onclick="window.location.href='?sort=username&order=asc'">↑</button>
193:
<button class="sort-btn" onclick="window.location.href='?sort=username&order=desc'">↓</button>
194:
</div>
195:
<%
If sortField="username" Then
%
>
196:
<span class="sort-status">
<%
=IIf(sortOrder="asc", "正序", "倒序")
%
></span>
197:
<%
End If
%
>
198:
</th>
199:
<!-- 别名列 -->
200:
<th>别名</th>
201:
<!-- 提交时间列排序 -->
202:
<th>
203:
提交时间
204:
<div class="sort-wrapper">
205:
<button class="sort-btn" onclick="window.location.href='?sort=time&order=asc'">↑</button>
206:
<button class="sort-btn" onclick="window.location.href='?sort=time&order=desc'">↓</button>
207:
</div>
208:
<%
If sortField="time" Then
%
>
209:
<span class="sort-status">
<%
=IIf(sortOrder="asc", "正序", "倒序")
%
></span>
210:
<%
End If
%
>
211:
</th>
212:
<!-- 笔记内容列排序 -->
213:
<th>
214:
笔记内容
215:
<div class="sort-wrapper">
216:
<button class="sort-btn" onclick="window.location.href='?sort=biji&order=asc'">↑</button>
217:
<button class="sort-btn" onclick="window.location.href='?sort=biji&order=desc'">↓</button>
218:
</div>
219:
<%
If sortField="biji" Then
%
>
220:
<span class="sort-status">
<%
=IIf(sortOrder="asc", "正序", "倒序")
%
></span>
221:
<%
End If
%
>
222:
</th>
223:
</tr>
224:
</thead>
225:
<tbody>
226:
<%
Do While Not showRs.EOF
%
>
227:
<%
228:
Dim znameValue
229:
znameValue = showRs("zname")
230:
If IsNull(znameValue) Or znameValue = "" Then
231:
znameValue = "未设置别名"
232:
End If
233:
%
>
234:
<tr>
235:
<td>
<%
=showRs("bijinumber")
%
></td>
236:
<td>
<%
=showRs("username")
%
></td>
237:
<td>
<%
=znameValue
%
></td>
238:
<td>
<%
=FormatDateTime(showRs("time"), 2) & " " & FormatDateTime(showRs("time"), 3)
%
></td>
239:
<td>
<%
=showRs("biji")
%
></td>
240:
</tr>
241:
<%
showRs.MoveNext
%
>
242:
<%
Loop
%
>
243:
</tbody>
244:
</table>
245:
<%
End If
%
>
246:
</div>
247:
248:
<%
249:
' ========== 释放资源 ==========
250:
If IsObject(showRs) Then
251:
showRs.Close
252:
Set showRs = Nothing
253:
End If
254:
If IsObject(showConn) Then
255:
showConn.Close
256:
Set showConn = Nothing
257:
End If
258:
%
>
259:
</body>
260:
</html>