تحية طيبة وبعد
الاخوة الكرام هذا كود ASP عبارة عن دفتر زوار ومشكلتة ان نموذج الدفتر والعرض في نفس الصفحة وارغب في تطويرة الى ان اضع النموذج في صفحة والعرض في صفحة اخرى ....
نجحت في الفصل بينهم وهذا ليس بالصعب ولكن حينما ادخل اي زائر جديد لا ينتقل الى صفحة العرض يعني انه هناك خطأ , مع اني ربطة الفورم بملف الـ ASP
لان اطيل عليكم هذا الكود الاصلي
كود:
<% @language=VBScript %>
<% option explicit %>
<% Response.Buffer = true %>
<%
const HITS_PER_PAGE = 5
const IDS_ANONYMOUS = "Anonymous"
const IDS_FIELDSMISSING = "Not all required fields were filled out. Entry was not created."
const IDS_ERRORDELETE = "Error deleting entry."
const IDS_MAIL = "Send e-mail to"
const IDS_ERROR = "Error occured."
const MODE_NORMAL = 1 ' normal viewing of the guestbook.
const MODE_ERROR = 2 ' an error occured and is displayed.
const MODE_INSERT = 4 ' inserting of a item into the guestbook.
const MODE_DELETE = 8 ' deleting of an item of the guestbook.
const MODE_ADMIN = 16 ' administration-mode: allows deletion of articles.
dim mode
mode = Request("mode")
if mode="" then mode = MODE_NORMAL
mode = CLng(mode)
function min( a, b )
if a<b then min=a else min=b
end function
function max( a, b )
if a>b then max=a else max=b
end function
function fmtDate( in_str )
fmtDate = FormatDateTime( in_str, 2 )
end function
function fmtMl( in_str )
if IsNull(in_str) then
fmtMl = ""
exit function
end if
dim str
if in_str<>"" then
str = Replace( in_str, vbCrLf, vbCr )
str = Replace( str , vbLf , vbCr )
str = Replace( str , vbCr , "<br>" )
fmtMl = str
else
fmtMl = in_str
end if
end function
function fmtText( byval txt )
txt = Server.HtmlEncode(txt)
txt = Replace( txt, Server.HtmlEncode("<u>"), "<u>" )
txt = Replace( txt, Server.HtmlEncode("</u>"), "</u>" )
txt = Replace( txt, Server.HtmlEncode("<i>"), "<i>" )
txt = Replace( txt, Server.HtmlEncode("</i>"), "</i>" )
txt = Replace( txt, Server.HtmlEncode("<b>"), "<b>" )
txt = Replace( txt, Server.HtmlEncode("</b>"), "</b>" )
txt = Replace( txt, Server.HtmlEncode("<em>"), "<em>" )
txt = Replace( txt, Server.HtmlEncode("</em>"), "</em>" )
fmtText = fmtMl(txt)
end function
function myselfUrl( mode_ )
if (CLng(mode) and CLng(MODE_ADMIN))<>CLng(0) then
mode_ = CLng(mode_) or CLng(MODE_ADMIN)
end if
myselfUrl = Request.ServerVariables("SCRIPT_NAME") & "?mode=" & mode_
end function
function normalUrl
normalUrl = myselfUrl(MODE_NORMAL)
end function
function errorUrl( error_text )
errorUrl = myselfUrl(MODE_ERROR) & "&error=" & Server.UrlEncode(error_text)
end function
function insertUrl
insertUrl = myselfUrl(MODE_INSERT)
end function
function deleteUrl( id )
deleteUrl = myselfUrl(MODE_DELETE) & "&id=" & Server.UrlEncode(id)
end function
function naviUrl( page )
naviUrl = myselfUrl(MODE_NORMAL) & "&pg=" & page
end function
function openDb()
set openDb = Server.CreateObject("ADODB.Connection")
openDb.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" &Server.MapPath("guestbook.mdb")
end function
function insertEntry( byref conn )
dim name
dim email
dim text
name = Request("gb_name")
email = Request("gb_email")
text = Request("gb_text")
if name="" then name = IDS_ANONYMOUS
if text="" then
insertEntry = false
exit function
end if
dim rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Guestbook", conn, 2, 3
rs.AddNew
rs("Date") = Now
rs("Name") = name
if email<>"" then rs("EMail") = email else rs("EMail") = null end if
rs("Text") = text
rs.Update
insertEntry = true
end function
function deleteEntry( byref conn )
dim id
id = Request("id")
if id="" then
deleteEntry = false
exit function
end if
on error resume next
conn.Execute "DELETE FROM Guestbook WHERE No=" &id
if err<>0 then
deleteEntry = false
else
deleteEntry = true
end if
end function
function hasMode( mode_chk )
if (CLng(mode) and CLng(mode_chk))<>0 then
hasMode = true
else
hasMode = false
end if
end function
dim conn
set conn = openDb
if hasMode(MODE_INSERT) then
' when a new entry is posted, insert it.
if not insertEntry(conn) then
Response.Redirect errorUrl(IDS_FIELDSMISSING)
else
Response.Redirect normalUrl
end if
end if
if hasMode(MODE_DELETE) then
' when an entry needs to be delete, do it.
if not deleteEntry(conn) then
Response.Redirect errorUrl(IDS_ERRORDELETE& " : " &err.Description)
else
Response.Redirect normalUrl
end if
end if
dim rs
set rs = conn.Execute("SELECT COUNT(*) FROM Guestbook")
dim sum_cnt
sum_cnt = rs(0)
dim cur_page
if Request("pg")="" then
cur_page = 0
else
cur_page = Request("pg")
end if
dim total_pages
total_pages = CLng(CLng(sum_cnt)/CLng(HITS_PER_PAGE))
if (CLng(CLng(sum_cnt) mod CLng(HITS_PER_PAGE))>0) and _
(CLng(sum_cnt)>CLng(HITS_PER_PAGE)) then
total_pages = total_pages+1
end if
if total_pages<=0 then total_pages=1
' the # of the displayed hits.
dim hit_display_start, hit_display_end
hit_display_start = 1+cur_page*HITS_PER_PAGE
hit_display_end = hit_display_start+min(CLng(sum_cnt),CLng(HITS_PER_PAGE))-1
if hit_display_end>sum_cnt then hit_display_end=sum_cnt
dim cntdwn_start
dim cntdwn_end
cntdwn_start = sum_cnt-hit_display_start+1
cntdwn_end = sum_cnt-hit_display_end+1
dim can_prev_page, can_next_page, can_prevornext_page
if CLng(cur_page)>0 then
can_prev_page=true
else
can_prev_page=false
end if
if CLng(cur_page)<CLng(total_pages)-1 then
can_next_page=true
else
can_next_page=false
end if
can_prevornext_page = can_prev_page or can_next_page
dim can_first_page, can_last_page
can_first_page = (can_prevornext_page) and (cur_page>0)
can_last_page = (can_prevornext_page) and (CLng(cur_page)<(CLng(total_pages)-1))
set rs = conn.Execute("SELECT * FROM Guestbook ORDER BY Date DESC")
if not (rs.Bof and rs.Eof) then
rs.Move hit_display_start-1
end if
%>
<% if hasMode(MODE_ERROR) then %>
<p><font color="#FF0000"><b><%=IDS_ERROR &" : "& Request("error")%></b></font><p>
<% end if %>
<p><a href="#insert">Create new entry</a></p>
<p><b><%=sum_cnt%></b> Entries found.
Page <b><%=cur_page+1%></b> of <b><%=total_pages%></b>,
entries <b><%=cntdwn_start%></b> to <b><%=cntdwn_end%></b>.</p>
<p>
<% if can_first_page then %><a href="<%=naviUrl(0) %>">First page</a><br> <%end if%>
<% if can_prev_page then %><a href="<%=naviUrl(cur_page-1) %>">Previous page</a><br><%end if%>
<% if can_next_page then %><a href="<%=naviUrl(cur_page+1) %>">Next page</a><br> <%end if%>
<% if can_last_page then %><a href="<%=naviUrl(total_pages-1)%>">Last page</a><br> <%end if%></p>
<p>
<%
' display discrete pages to jump directly to.
dim i
for i=1 to total_pages
%>
<a href="<%=naviUrl(i-1)%>">Page <%=i%></a> 
<%
next
%>
</p>
<%
dim cntdwn
cntdwn = cntdwn_start
dim cnt
cnt = 0
while not rs.Eof and CLng(cnt)<CLng(HITS_PER_PAGE)
cnt = cnt + 1
dim e
if not IsNull(rs("EMail")) then e=true else e=false end if
%>
<hr size="1" color="#C0C0C0">
<p><b><%=cntdwn%>.</b> <%if e then%><a title="<%=IDS_MAIL &" "& rs("EMail")%>"
href="mailto:<%=rs("EMail")%>"><%end if%><%=rs("Name")%><%if e then%></a><%end if%>,
<%=fmtDate(rs("Date"))%>
<%if hasMode(MODE_ADMIN) then%> <a href="<%=deleteUrl(rs("No"))%>">Delete entry</a><%end if%>
</p>
<p><%=fmtText(rs("Text"))%></p>
<%
cntdwn = cntdwn-1
rs.MoveNext
wend
%>
<p><br><hr size="1" color="#C0C0C0"><br></p>
<p><a name="insert"></a><b>Create new entry</b></p>
<p>Here you can create a new entry to the guestbook.</p>
<p>
<form action="<%=insertUrl%>" method="post">
Name:<br>
<input type="text" name="gb_name" size="40"><br>
<br>E-Mail:<br>
<input type="text" name="gb_email" size="40"><br>
<br>Text:<br>
<textarea rows="10" name="gb_text" cols="40"></textarea><br>
<br><input type="submit" value="Insert" name="gb_submit"><br>
<input type="hidden" name="insert" value="true">
</form>
</p>
الاخ العزيز Mr.ASP والله مدري اذا كان الكود اكثر من 1000 سطر او اقل شوي