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>