الدرس الثالث والعشرون

الدرس الثالث والعشرون

في الدروس الاثنتان والعشرين السابقة تم شرح أهم الأوامر بلغة ASP لتصميم صفحة إخبارية يمكن إدارتها من خلال صفحة تحكم محمية بكلمة سرية. لكن لا تزال هنالك بعض الصفحات بحاجة لتصميم مثل: إدارة سجل الزوار، وإضافة وتحرير بيانات المشرفين على الموقع. لذلك سأقوم بتصميم الصفحات الباقية دون شرح وسأرفق الـ Code كاملا لها بحيث يمكن سحبه والاستفادة من طريقة كتابته. وبذلك تنتهي الدروس الأساسية بتصميم موقع إخباري من الألف إلى الياء. بعد ذلك سيتم شرح طريقة تحميل الصفحات على مساحة (سواء مجانية أو مدفوعة) على الإنترنت، وهذه الدروس ستكون في قسم الدروس الإضافية.
أود الإشارة إلى أنه تم تعديل قاعدة البيانات التي صممناها في الدرس السادس عشر.. حيث تم تعديل الحقل الذي باسم Password في جدول Admin إلى الاسم Pass. وبالتالي تم تعديل السطر رقم 26 من صفحة validEntry.asp بتغيير كلمة rs(“password”) إلى rs(“pass”).

  • يمكنك مشاهدة المشروع من خلال هذا الرابط: عالم اليوم

إعداد: خالد الحر

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ab%d8%a7%d9%84%d8%ab/" rel="tag">الثالث</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d9%88%d8%a7%d9%84%d8%b9%d8%b4%d8%b1%d9%88%d9%86/" rel="tag">والعشرون</a>

الدرس الثاني والعشرون : تصميم صفحات مسح الأخبار العامة (news_del.asp) والأخبار

الدرس الثاني والعشرون : في هذا الدرس سنقوم بتصميم صفحات مسح الأخبار العامة (news_del.asp) والأخبار

في هذا الدرس سنقوم بتصميم صفحات مسح الأخبار العامة (news_del.asp) والأخبار التقنية (tech_del.asp). لا يوجد اختلاف كبير بين الصفحتين، لذا سنقوم بتصميم واحدة منهما فقط ثم سنعدل عليها ونحفظها بالاسم الجديد.. إليكم الـ Code كاملا للصفحة news_del.asp ثم سأقوم بشرح الأوامر الجديدة التي لم يسبق التطرق لها في الدروس السابقة:


<%@ Language=VBScript CodePage = “1256”%>

<%

Name_Cooky=Request.cookies(“Name”)
If Name_Cooky=”” Then

response.redirect (“admin.asp”)

End If

%>

<!–#include file=”connection.txt” –>

<%

id=request.querystring(“id”)

deleteSQL = “delete * from general_news where id=”&id
ADO.execute(deleteSQL)

response.redirect “news_list.asp”

ADO.Close
Set ADO=Nothing

%>

الاستعلام الجديد في هذه الصفحة هو delete وطريقة استخدامه كما هو مبين:

  1. تحديد اسم الجدول المراد المسح منه.
  2. تحديد رقم id للمعلومة المراد مسحها.

كما هو واضح تم استخدام قيمة id المرسلة من الصفحة السابقة. وبعد إتمام العملية سينتقل المتصفح للصفحة news_list.asp استجابة للأمر response.redirect .
والآن، يمكنك حفظ الصفحة من جديد باسم tech_del.asp وتغيير general_news إلى tech_news في الاستعلام delete .

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: خالد الحر

 

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/newsdelasp/" rel="tag">newsdelasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a3%d8%ae%d8%a8%d8%a7%d8%b1/" rel="tag">الأخبار</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a/" rel="tag">الثاني</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b9%d8%a7%d9%85%d8%a9/" rel="tag">العامة</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%b5%d9%85%d9%8a%d9%85/" rel="tag">تصميم</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a7%d8%aa/" rel="tag">صفحات</a>، <a href="https://max4arab.com/tag/%d9%85%d8%b3%d8%ad/" rel="tag">مسح</a>، <a href="https://max4arab.com/tag/%d9%88%d8%a7%d9%84%d8%a3%d8%ae%d8%a8%d8%a7%d8%b1/" rel="tag">والأخبار</a>، <a href="https://max4arab.com/tag/%d9%88%d8%a7%d9%84%d8%b9%d8%b4%d8%b1%d9%88%d9%86/" rel="tag">والعشرون</a>

الدرس الحادري والعشرون : صفحة تحرير الأخبار (news_upd.asp)

الدرس الحادري والعشرون : صفحة تحرير الأخبار (news_upd.asp)

سنصمم في هذا الدرس صفحة باسم (news_upd.asp) وأخرى باسم (tech_upd.asp) لن تختلفا عن بعضهما البعض كثيرا. الأوامر الجديدة التي سنتعلمها في هذا الدرس هي الاستعلام Update الذي يقوم بتحديث البيانات التي في قاعدة البيانات. إليكم الـ Code كاملا للصفحة news_upd.asp ثم سأقوم بشرح الأوامر الجديدة التي لم يسبق التطرق لها في الدروس السابقة:


<%@ Language=VBScript CodePage = “1256”%>

<%

Name_Cooky=Request.cookies(“Name”)
If Name_Cooky=”” Then

response.redirect (“admin.asp”)

End If

%>

<html dir=rtl> <!–#include file=”connection.txt” –>

<%

function updatef()

updateSQL= ” update general_news set subject = ‘”&subject&”‘ , body = ‘”&body&”‘ where id=”&id
ADO.execute(updateSQL)
%><p><font face=”Simplified Arabic” size=”3“>شكرا لك.. لقد تم تحديث الموضوع بنجاح</font></p><%

end function

id=request.querystring(“id”)
subject=request.form(“subject”)
body=request.form(“body”)
جلب البيانات المتعلقة بالخبر من قاعدة البيانات’
selectSQL=”select * from general_news where id=”&id
set rs=ADO.execute(selectSQL)

%>

<p align=”center“><b><font face=”Simplified Arabic” color=”#C11111” size=”7“>
تحرير</font></b></p>

<%
if subject = “” then
response.write “اضغط زر تحديث لتثبيت التغييرات”
else
updatef()
end if
%>

<form method=”POST” action=”news_upd.asp?id=<%=id%>“>
<p><font face=”
Simplified Arabic” size=”3“>العنوان <textarea rows=”1” name=”subject” cols=”53″><%response.write rs(“subject”)%></textarea></font></p>
<p><font face=”
Simplified Arabic” size=”3“>المحتوى :</font></p>
<p><font face=”
Simplified Arabic” size=”3“><textarea rows=”12” name=”body” cols=”58“><%response.write rs(“body”)%></textarea></font></p>
<p><<font face=”
Simplified Arabic” size=”3“><input type=”submit” value=”تحديث” name=”start“></font></p>
</form>

<%
ADO.Close
Set ADO=Nothing
%>

</body>

</html>

الجديد هنا هو استخدام الاستعلام update وطريقة استخدامها كما هو مبين:

  1. تحديد اسم الجدول المراد تحديث بياناته.
  2. تحديد الحقل المراد تحديثه.
  3. تحديد القيمة الجديدة (بعد علامة = أمام اسم الحقل).
  4. وضع فاصلة (,) بعد كل حقل وقيمته لكتابة اسم حقل جديد.
  5. تحديد رقم id وذلك لتمييز البيانات عن غيرها في الجدول.

وفي مثالنا السابق لم نحدد القيم مسبقا. وإنما قمنا بجلب القيم الموجودة في قاعدة البيانات واستخدامها كأساس للتحديث. مثال:


<font face=”
Simplified Arabic” size=”3“>العنوان <textarea rows=”1” name=”subject” cols=”53″><%response.write rs(“subject”)%></textarea></font>

في السطر السابق تم إنشاء مربع نص باسم subject وتم تحديد قيمته بأنه محتوى الحقل Subject من قاعدة البيانات.
والآن، يمكنك حفظ الصفحة من جديد باسم tech_upd.asp وتغيير general_news إلى tech_news في كلا الاستعلامين select و update.
وتغيير news_upd.asp إلى tech_upd.asp في السطر التالي: <form method=”POST” action=”news_upd.asp?id=<%=id%>“>

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: خالد الحر

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/newsupdasp/" rel="tag">newsupdasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a3%d8%ae%d8%a8%d8%a7%d8%b1/" rel="tag">الأخبار</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ad%d8%a7%d8%af%d8%b1%d9%8a/" rel="tag">الحادري</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%ad%d8%b1%d9%8a%d8%b1/" rel="tag">تحرير</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d9%88%d8%a7%d9%84%d8%b9%d8%b4%d8%b1%d9%88%d9%86/" rel="tag">والعشرون</a>

الدرس العشرون : صفحة قائمة الأخبار (news_list.asp)

الدرس العشرون : صفحة قائمة الأخبار (news_list.asp)

سنصمم في هذا الدرس صفحة باسم (news_list.asp) تحتوي على قائمة بعناوين الأخبار وأمام كل عنوان خياران أحدهما “تحرير” والآخر “مسح”. سأقوم الآن بعرض الـ Code كاملا للصفحة ثم سأقوم بشرح الأوامر الجديدة التي لم يسبق التطرق لها في الدروس السابقة – إن وجدت.

<%@ Language=VBScript CodePage = “1256”%>

<html dir=rtl>

<!–#include file=”connection.txt” –>

<%

‘أوامر اختيار جدول الأخبار العامة واستدعاء البيانات منه

selectnewsSQL=”select * from general_news order by add_dat desc”

set rsnews=ADO.execute(selectnewsSQL)

‘أوامر اختيار جدول الأخبار التقنية واستدعاء البيانات منه

selecttechSQL=”select * from tech_news order by add_dat desc”

set rstech=ADO.execute(selecttechSQL)

%>

<p align=”center“><b><font face=”Simplified Arabic” color=”#C11111” size=”7“>
تحرير أو حذف أخبار</font></b></p>
<p><b><font face=”
Simplified Arabic“>قائمة الأخبار العامة</font></b></p>
<table border=”
1” cellpadding=”0” cellspacing=”0” style=”border-collapse: collapse” bordercolor=”#111111” width=”100%” id=”AutoNumber1“>
<tr>
<td width=”
80%“>
<p align=”
center“><font face=”Simplified Arabic“><b>العنوان</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><b>تحرير</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><b>مسح</b></font></td>
</tr>
</table>

<%

‘أوامر استعراض عناوين الأخبار العامة

do while not rsnews.eof

%>
<table border=”1” cellpadding=”0” cellspacing=”0” style=”border-collapse: collapse” bordercolor=”#111111” width=”100%” id=”AutoNumber1“>
<tr>
<td width=”
80%“>
<p align=”
center“><font face=”Simplified Arabic“><b><%=rsnews(“subject”)%>&nbsp;</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><a href=”news_upd.asp?id=<%=rsnews(“id”)%>“><b>تحرير</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><a href=”news_del.asp?id=<%=rsnews(“id”)%>“><b>مسح</b></font></td>
</tr>
</table>

<%
rsnews.movenext
loop
%>

<p>&nbsp;</p>
<p><b><font face=”
Simplified Arabic“>قائمة الأخبار التقنية</font></b></p>
<table border=”
1” cellpadding=”0” cellspacing=”0” style=”border-collapse: collapse” bordercolor=”#111111” width=”100%” id=”AutoNumber1“>
<tr>
<td width=”
80%“>
<p align=”
center“><font face=”Simplified Arabic“><b>العنوان</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><b>تحرير</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><b>مسح</b></font></td>
</tr>
</table>

<%

‘أوامر استعراض عناوين الأخبار التقنية

do while not rstech.eof

%>
<table border=”1” cellpadding=”0” cellspacing=”0” style=”border-collapse: collapse” bordercolor=”#111111” width=”100%” id=”AutoNumber1“>
<tr>
<td width=”
80%“>
<p align=”
center“><font face=”Simplified Arabic“><b><%=rstech(“subject”)%>&nbsp;</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><a href=”tech_upd.asp?id=<%=rstech(“id”)%>“><b>تحرير</b></font></td>
<td width=”
10%” align=”center“><font face=”Simplified Arabic“><a href=”tech_del.asp?id=<%=rstech(“id”)%>“><b>مسح</b></font></td>
</tr>
</table>

<%
rstech.movenext
loop

ADO.close
Set ADO=Nothing
%>

</body>

</html>

لم نقم بكتابة أي أوامر جديدة في هذه الصفحة.. كل ما قمنا به هو الاتصال بقاعدة البيانات، وفتح جداول الأخبار العامة والأخبار التقنية، ثم عرض عناوين الأخبار في جداول، وأمام كل عنوان كلمتان: تحرير، حذف. ووضعنا روابط على هذه الكلمات. فعند الضغط على “تحرير” ستفتح الصفحة news_upd.asp إن كان الأمر لتحرير الأخبار العامة، أو ستفتح الصفحة tech_upd.asp إن كان التحرير للأخبار التقنية. وبالمثل فهنالك صفحتان “للمسح” news_del.asp و tech_del.asp كل واحدة تختص بقسم من الأخبار.
لاحظ معي أنه عند كتابة الروابط لأوامر التحرير والمسح تم إضافة ?id=<%=rstech(“id”)%> وهذا الأمر قد تم شرحه سابقا عند تصميم صفحات عرض البيانات والأخبار. والمقصود به باختصار هو: تحديد الخبر المراد تعديله أو حذفه، وذلك عن طريق إرسال قيمة id للخبر للصفحة التي ستقوم بالعمليات.
الذي أود الإشارة إليه هنا، أنه بالإمكان عمل صفحة تحرير واحدة لكلا النوعان، وصفحة مسح واحدة لكلا النوعان. لكن لرغبتي في تصميم الموقع بأبسط صورة ممكنة ليمكن للمبتدئ متابعة الدروس بسهولة قررت تصميم صفحة لكل قسم. وهذا يتيح المجال للمتعلم لبذلك جهد إضافي بعد الانتهاء من الدروس لتطوير الموقع وتقليص عدد صفحاته.

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع
نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/newslistasp/" rel="tag">newslistasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a3%d8%ae%d8%a8%d8%a7%d8%b1/" rel="tag">الأخبار</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b9%d8%b4%d8%b1%d9%88%d9%86/" rel="tag">العشرون</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d9%82%d8%a7%d8%a6%d9%85%d8%a9/" rel="tag">قائمة</a>

الدرس التاسع عشر : صفحة إضافة الأخبار (add_news.asp)

الدرس التاسع عشر : صفحة إضافة الأخبار (add_news.asp)

http://www.alnoor.info/ASP/topicbody…21&SectionID=1

أسماء الحقول هي:

  • section للقائمة المنسدلة.
  • subject للعنوان.
  • body للمحتوى.

يمكن تصميم الشكل السابق بالفرونت بيج، أو استخدام هذا الـ Code: 

<p align=“center”><b>إضافة الأخبار</b></p>
<form method=
“POST” action=
add_news.asp”>
<p><b>القسم: <select size=“1” name=“section”>
<option value=“general_news”>أخبار منوعة</option>
<option value=“tech_news”>أخبار تقنية</option>
</select></b></p>
<p><b>
العنوان: <input type=“text” name=“subject” size=“20”></b></p>
<p><b>المحتوى:</b></p>
<p><b>
&nbsp;<textarea rows=“11” name=“body” cols=“78”></textarea></b></p>
<p><input type=“submit” value=“إضافة” name=“add”
></p>
</form>

سنستعرض الآن الفروقات بين هذه الصفحة وصفحة سجل الزوار:
أولا : تم إضافة القسم (section) واستخدمنا فيه القائمة المنسدلة Drop-Down Box. مع ملاحظة تعديل خصائصه :
فعند إضافة القيم للقائمة المنسدلة (بالضغط على زر Add) ستظهر لنا الشاشة التالية:

نضع إشارة صح أمام Specify Value ثم نكتب القيمة التي سيتم إرسالها من طريق النموذج Form . وهذه القيمة تمثّل: اسم الجدول الذي يحتوي على هذه النوعية من الأخبار في قاعدة البيانات. ولفهم سبب قيامنا بذلك، يجب معرفة الغرض من استخدام القائمة المنسدلة في هذا الموقع.
تعلمنا سابقا أن أمر Add للإضافة بيانات للقاعدة، يتطلب تحديد:

  1. اسم الجدول المطلوب إضافة البيانات فيه.
  2. اسم كل حقل في الجدول.
  3. القيمة المطلوب إدراجها في كل حقل.

في حالتنا هذه لدينا جدولين وليس جدولا واحدا.. جدول يضم الأخبار العامة، وآخر للأخبار التقنية. بالإمكان تصميم صفحة لإضافة الأخبار عامة، وصفحة أخرى لإضافة الأخبار التقنية. لكن الأفضل من ذلك، هو تصميم صفحة واحدة (مرنة) يمكن من خلالها تحديد الجدول الذي نريد إضافة المقالات فيه. ويتم ذلك باستخدام القائمة المنسدلة.

في النهاية ستظهر خصائص القائمة المنسدلة بالشكل التالي:

أخيرا، من خلال Form Properties يتم تحديد الصفحة التي سيتم إرسال القيم إليها للمعالجة، وهي نفس الصفحة التي تحتوي على النموذج: add_news.asp

بعد تصميم النموذج، ننتقل الآن إلى كتابة أوامر ASP .. وسنشرح الأوامر الجديدة.
<%@language=VBScript CodePage=”1256″%>

<!–#include file=”connection.txt”–>

<%
section=request.form(“section”)
subject=request.form(“subject”)
body=request.form(“body”)
%>

<%
Function AddF()

addSQL= ” insert into “&section&” (subject,body) values (‘”&subject&”‘,'”&body&”‘)”
ADO.execute(addSQL)
%><p><font face=“Simplified Arabic”size=“3”>شكرا لك.. لقد تم إضافة الخبر بنجاح</font></p><%

End Function
%>
<body>
<%
If subject=”” or body=”” or then
response.write “لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول”
Else
AddF()
End If
%>
<p align=“center”><b>إضافة الأخبار</b></p>
<form method=
“POST” action=
add_news.asp”>
<p><b>القسم: <select size=“1” name=“section”>
<option value=“general_news”>أخبار منوعة</option>
<option value=“tech_news”>أخبار تقنية</option>
</select></b></p>
<p><b>
العنوان: <input type=“text” name=“subject” size=“20”></b></p>
<p><b>المحتوى:</b></p>
<p><b>
&nbsp;<textarea rows=“11” name=“body” cols=“78”></textarea></b></p>
<p><input type=“submit” value=“إضافة” name=“add”
></p>
</form>
<%
ADO.close
Set ADO=Nothing
%>
</body>

</html>

أولا: هنالك اختلاف بسيط في جملة addSQL عما كتبناه سابقا في صفحة إضافة التواقيع لسجل الزوار، ففي سجل الزوار حددنا اسم الجدول الذي نود إضافة المدخلات فيه، أما في هذه الصفحة فاستبدلنا اسم الجدول بالمتغير “&section&” والذي يتم استقبال قيمته من خلال القائمة المنسدلة في النموذج. وبالتالي قد يكون أخبار عامة، أو أخبار تقنية.
ثانيا: استخدمنا Function والتي يمكن تسميتها وظيفة أو دالة. وهي عبارة عن مجموعة أوامر تُـنفّـذ مع بعضها البعض أو لا تُـنفّـذ إطلاقا، لذا فنضعها مع بعض نبدأها بـ Function ونحدد اسم مثلا addfونضع بعدها الاسم () ثم نكتب المطلوب.. ونغلق الـ Function بـ End Function . وفي المكان اللي نريد تنفيذ هذه الأووامر أو الـ Function فيه نضع فيه الاسم. وفي حالتنا addf() وضعناه بين Elseو End if وهو المكان الذي نريد فيه أن تتنفذ أوامر الإضافة.

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: خالد الحر

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/addnewsasp/" rel="tag">addnewsasp</a>، <a href="https://max4arab.com/tag/%d8%a5%d8%b6%d8%a7%d9%81%d8%a9/" rel="tag">إضافة</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a3%d8%ae%d8%a8%d8%a7%d8%b1/" rel="tag">الأخبار</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%aa%d8%a7%d8%b3%d8%b9/" rel="tag">التاسع</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>

الدرس الثامن عشر: صفحة الإدارة (adminsection.asp)

الدرس الثامن عشر: صفحة الإدارة (adminsection.asp)

الصفحة الإدارية adminsection.asp :
هي الصفحة التي سيسمح بالدخول إليها للقيام بمهام إدارة الموقع. وفي هذه الصفحة سنحتاج كذلك للتأكد من إدخال المستخدم الاسم والرقم السري بشكل صحيح. لذلك سنختبر Cookyالذي أنشأناه في الدرس السابق. وهذا هو الـ Code :

<% Name_Cooky=Request.cookies(“Name”) ‘ Name_Cooky اطلب قيمة الكوكي وضعه في المتغير 
If Name_Cooky=”” Then ‘ إذا كان الكوكي يساوي فراغ ، أي لا يوجد كوكي
response.redirect (“admin.asp”) ‘ ارجع لصفحة إدخال الاسم والرقم السري لطلب إدخالهم
End If
%> 

بذلك لن يستطيع أي شخص الدخول على هذه الصفحة إلا إذا دخل على الموقع بالاسم والرقم السري بشكل صحيح وإلا فإن الصفحة ستنقله إلى صفحة admin.asp لطلب تلك المعلومات. بذلك نكون قد انهينا دروس كيفية، التحقق من إدخال الاسم والرقم السري عند الدخول على موقع الإدارة. وتعلمنا ما هو Cookyوكيفية استخدامه على هذا المثال.
يمكنك الآن إضافة ما تشاء في هذه الصفحة. وأقترح إضافة الأقسام التالية:
إضافة أخبار:

  • أخبار عامة.
  • أخبار تقنية.

تعديل / مسح الأخبار:

  • أخبار عامة.
  • أخبار تقنية.

إدارة سجل الزوار.
تغيير كلمة المرور.
إضافة مشرفين.
مسح مشرفين.
وهذا هو الـ Code :

<%@ Language=VBScript CodePage = “1256”%>

<%

Name_Cooky=Request.cookies(“Name”)
If Name_Cooky=”” Then

response.redirect (“admin.asp”)

End If

%> 

<html dir=”rtl”>

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1256“>
<title>
الصفحة الإدارية</title>
</head>

<body dir=”rtl“>

<p align=”center“><b><font face=”Simplified Arabic“>الصفحة الإدارية</font></b></p>

<p align=”justify“><b><font face=”Simplified Arabic“>إضافة أخبار:</font></b></p>

<ul>
<li>

<p align=”justify“><b><font face=”Simplified Arabic“>أخبار عامة.</font></b></p>

</li>
<li>

<p align=”justify“><b><font face=”Simplified Arabic“>أخبار تقنية.</font></b></p>

</li>
</ul>

<p align=”justify“><b><font face=”Simplified Arabic“>تعديل / مسح الأخبار:</font></b></p>

<ul>
<li>

<p align=”justify“><b><font face=”Simplified Arabic“>أخبار عامة.</font></b></p>

</li>
<li>

<p align=”justify“><b><font face=”Simplified Arabic“>أخبار تقنية.</font></b></p>

</li>
</ul>

<p align=”justify“><b><font face=”Simplified Arabic“>إدارة سجل الزوار.</font></b></p>

<p align=”justify“><b><font face=”Simplified Arabic“>تغيير كلمة المرور.</font></b></p>

<p align=”justify“><b><font face=”Simplified Arabic“>إضافة مشرفين.</font></b></p>

<p align=”justify“><b><font face=”Simplified Arabic“>مسح مشرفين.</font></b></p>

</body>

</html>

في الدروس التالية سيتم تصميم صفحات إضافة الأخبار. والتي لا تختلف كثيرا عن صفحة التوقيع في سجل الزوار.

  • <LI dir=rtl>يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط:

إعداد: إماراتية

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/adminsectionasp/" rel="tag">adminsectionasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a5%d8%af%d8%a7%d8%b1%d8%a9/" rel="tag">الإدارة</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ab%d8%a7%d9%85%d9%86/" rel="tag">الثامن</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>

الدرس السابع عشر: صفحة التحقق من المعلومات

الدرس السابع عشر: صفحة التحقق من المعلومات

ستقوم باستقبال القيم المدخلة في نموذج Admin.asp ، ثم ستتحقق من صحت إدخال اسم المستخدم والرقم السري، ومن تسجيلهما في الموقع.
إن لم تكن المعلومات المدخلة صحيحة في النموذج، سوف ترسل هذه الصفحة (validentry.asp) ، متغير يسمى error إلى ملف admin.asp ، ليخبره عن نوع الخطأ في إدخال المعلومات. ليقوم النموذج بعرض رسالة الخطأ المناسبة للمستخدم.
إذا هذه الصفحة validentry.asp لن تقوم بعرض أي شيء للمستخدم، ستقوم فقط بالتحقق من صحة إدخال المعلومات، فإن كانت غير صحيحة، سيرسل error لـ admin.asp وسوف يعرض الخطأ. إما إذا كانت المعلومات المدخلة صحيحة للمستخدم، سوف يقوم بعرض صفحة adminsection ، وهذا سنتحدث عنه في الدرس التالي.
الآن سنكتب Code التحقق من إدخال المعلومات كالتالي :

<% Name=Request.form(“Name”) ‘admin.asp القيمة من النموذج في ، Name سيستقبل المتغير 
Password=Request.form(“Password”) 
‘admin.asp القيمة من النموذج في ، Password سيستقبل المتغير 

If Name = “” Then  1. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم Name إذا كان 
response.redirect (“admin.asp?error=Name_Null”)
 ‘ Name_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة 

Else
If Password = “” Then ‘2. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري Password إذا كان 
response.redirect (“admin.asp?error=Pass_Null”) 
‘ Pass_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة 
Else 3. إذا كان اسم المستخدم متوفر والرقم السري متوفر ، حقق الأوامر التي بالأسفل %><!–#include file=”connection.txt” –><%

SelectSql = “Select * from admin where name = ‘”& Name &”‘ Admin تحقق من وجود اسم المستخدم في جدول الإداريين 
set rs=ADO.execute (SelectSql)

If rs.EOF Then ‘4. Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في EOF يساوي rs إذا كان 
response.Redirect (“admin.asp?error=Name_Entry”) 
‘ Name_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة 
Else
If rs(“pass”) <> password Then 
‘5. لا يساوي ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة rs(“pass”) إذا كان 
response.redirect (“admin.asp?error=Pass_Entry”) 
‘ Pass_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة 

Else6. أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح 

Name_Cooky= request.cookies(“Name”) ‘ Name_Cooky افتح كوكيز الاسم وضعه في المتغير 

If Name_Cooky <> Name Then7. اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج 
response.cookies (“Name”) = Name 
 إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز 

End IF

response.Redirect (“adminsection.asp”) ‘ انتقل إلى صفحة إدارة الموقع

End If

End If

End If
End If
%>

كما ترون، الصفحة تحتوي فقط على كود لغة ASP ، ولا تحتوي على كود لغة html ، لأنها لن تعرض شيئا.
سأقوم الآن بشرح الـ Code ، جزئا جزئا ، وسوف ترون كيف أن الأمر سهل.
استقبال القيم من نموذج إدخال اسم المستخدم والرقم السري : admin.asp
كما هو واضح سيستقبل هذا الجزء (“Request.form(“Name اسم المستخدم من نموذج الإدخال، وسيضع القيمة في المتغير Name
وسيستقبل هذا الجزء(“Request.form(“Password الرقم السري من نموذج الإدخال، وسيضع القيمة في المتغير Password

Name=Request.form(“Name”) ‘admin.asp القيمة من النموذج في ، Name سيستقبل المتغير 
Password=Request.form(“Password”) 
‘admin.asp القيمة من النموذج في ، Password سيستقبل المتغير 

شرح لشروط التحقق من صحة المعلومات المدخلة في النموذج
1. If Name = “” Then: هذا الجزء سيتحقق إذا كان اسم المستخدم يساوي فراغ أي لم يدخل المستخدم اسما في نموذج الإدخال، إذا كان كذلك نفذ الأمر التالي:
(“response.redirect (“admin.asp?error=Name_Null ، أي انتقل إلى ملف admin.asp إذا كان اسم المستخدم يساوي فراغ، وأرسل إليه كذلك متغير اسمه error يحتوى على قيمة تساوي Name_Null ، للدلالة على وجود خطأ وهو عدم إدخال اسم المستخدم في النموذج.
الأمر respons.redirect ، تعني انتقل إلى صفحة معينة. ويجب تذكر عند استخدام هذا الأمر في أمثلة أخرى في المستقبل ، يجب أن يكون فوق <html> ، وبما أن هذه الصفحة لا تحتوي على <html> فليس علينا أن نبالي الآن. ثم نكتب بين الأقواس، اسم الملف المراد الانتقال إليه، وهو في مثالنا هذا (admin.asp).
وأردنا أن نرسل مع الملف متغير للدلالة على وجود خطأ. فكتبنا error=Name_Null ، أي أرسل متغير يحوي القيمة Name_Null ، وتستطيعون الرجوع للدرس السابق لاحقا لمراجعة كيفية استقبال هذا الخطأ والتعامل معه.
إذا كان Name لا يساوي فراغ ، سوف ينتقل للتحقق من الشرط التالي رقم 2.

If Name = “” Then  1. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم Name إذا كان 
response.redirect (“admin.asp?error=Name_Null”)
 ‘ Name_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة

2. If Password = “” Then : هذا الجزء يتحقق إذا كان الرقم السري يساوي فراغ أي لم يدخل المستخدم الرقم السري في نموذج الإدخال. فعند تحقق هذا الشرط سيتم تنفيذ الشرط التالي:
(“response.redirect (“admin.asp?error=Pass_Null ، أي انتقل إلى ملف admin.asp إذا كان الرقم السري يساوي فراغ، وأرسل إليه كذلك متغير اسمه error يحتوى على قيمة تساوي Pass_Null ، للدلالة على وجود خطأ وهو عدم إدخال الرقم السري في النموذج.
إذا كان Password لا يساوي فراغ، سوف ينتقل إلى تحقيق الأمور التي تحت Else رقم 3

Else
If Password = “” Then 
‘2. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري Password إذا كان 
response.redirect (“admin.asp?error=Pass_Null”) 
‘ Pass_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة

3. سوف ننتقل الآن بعد Else إلى التحقق من توافق المعلومات المدخلة في النموذج مع المعلومات الموجودة في قاعدة البيانات. أي هل اسم المستخدم والرقم السري موجودان في قاعدة البيانات أم لا.
فنتصل أولا بقاعدة البيانات، بإضافة ملف الربط (Connection.txt) بواسطة خاصية الإدراج Include File .
ثم نكتب أمر البحث عن اسم في ملف admin ، بحيث يساوي اسم المستخدم المدخل في النموذج ، فأضفنا الشرط “‘”& where name = ‘”& Name
أي استخرج لي سجلا من جدول admin ، بحيث يكون الاسم في السجل يساوي الاسم المدخل في النموذج . حيث أن where name = هذا هو الاسم في السجل، وهذا ‘”& Name &”‘ الاسم من النموذج.

SelectSql = “Select * from admin where name = ‘”& Name &”‘ Admin تحقق من وجود اسم المستخدم في جدول الإداريين 
set rs=ADO.execute (SelectSql)

4. If rs.EOF Then : يتحقق هذا الشرط إذا كان المتغير rs (وهذا من نوع خاص لاستقبال البيانات من قاعدة البيانات) يساويEOF :End Of the File ، أي أن المتغير منتهي ولم يسترجع أي سجل من الجدول لعدم وجود سجل يساوي الاسم فيه الاسم المدخل في النموذج. فعند تحقق هذا الشرط ، سيتنفذ هذا الأمر: (“response.Redirect (“admin.asp?error=Name_Entry 
أي انتقل إلى الملف admin.asp ، وأرسل له متغير error والذي يحوي على القيمة Name_Enry ، للدلالة على وجود خطأ في اسم المستخدم الذي تم إدخاله.
أما إذا كان الملف ليس EOF ، أي أنه يحوي على سجل مسترجع من جدول admin انتقل إلى الشرط رقم 5.

If rs.EOF Then ‘4. Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في EOF يساوي rs إذا كان 
response.Redirect (“admin.asp?error=Name_Entry”) 
‘ Name_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة

5. If rs(“pass”) <> password Then : يتحقق هذا الشرط من أن الرقم السري المدخل في النموذج يساوي الرقم السري الموجود في الجدول. إذا كانا غير متساويان، سيتحقق الشرط وسينفذ هذا الأمر(“response.redirect (“admin.asp?error=Pass_Entry ، أي انتقل إلى صفحة admin.asp بإضافة إلى المتغير error والذي يحوي قيمة Pass_Entry ، ويدل على أن الرقم السري المدخل خطأ.
أما إذا كان الأمر السري المدخل صحيح ، انتقل إلى Else رقم 6

Else
If rs(“password”) <> password Then 
‘5. لا يساوي ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة rs(“password”) إذا كان 
response.redirect (“admin.asp?error=Pass_Entry”) 
‘ Pass_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة

6. بعد أن تأكدنا من صحة اسم المستخدم والرقم السري، سنقوم بحفظ اسم المستخدم في متغير ثابت بين الصفحات يسمى كوكي Cooky ، للتأكد فيما بعد في الصفحات الأخرى من أن الشخص قد قام بإدخال اسم المستخدم والرقم السري في البداية.
فسنقوم أولا بقراءة قيمة الاسم من الكوكي بهذا الأمر (“Name_Cooky= request.cookies(“Nam
فـ (“request.cookies(“Name_Cooky يعني استخرج لي قيمة الكوكي الذي اسمه Name_Cooky ، فالكلمة request تعني طلب الكوكي. ثم ضعه في المتغير Name_Cooky. ثم سننتقل للشرط السابع.
7 . هنا If Name_Cooky <> Name : سنختبر هل الاسم المدخل في النموذج Name ، يساوي الكوكيز. إذا لم يكن يساوي، احفظ الاسم المدخل من النموذج في الكوكي وستكون القيمة ثابتة بين الصفحات، حتى نعرفه فيما بعد عند التنقل بين الصفحات ونكتب أمر الحفظ بهذه الطريقةresponse.cookies (“Name”) = Name
أي خذ القيمة من Name واحفظها في الكوكي Name . فالكلمة response هنا تعني حفظ القيمة في الكوكي. وهذا الكوكي تنتهي صلاحيته، أي يختفي عند إغلاق المستخدم لصفحات الإنترنت كلها.
وبعد الشرط ، استخدمنا هذا الأمر (“response.Redirect (“adminsection.asp وهو يعني بعد تكوين الكوكي ، الآن يمكنك الدخول على صفحة الإدارة adminsection.asp 
فسينقل هذا الأمر المستخدم إلى صفحة adminsection.asp تلقائيا، بعد التأكد من صحة المعلومات وتكوين الكوكي.

Else6. أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح 

Name_Cooky= request.cookies(“Name”) ‘ Name_Cooky افتح كوكيز الاسم وضعه في المتغير 

If Name_Cooky <> Name Then7. اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج 
response.cookies (“Name”) = Name 
 إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز 

End IF

response.Redirect (“adminsection.asp”) ‘ انتقل إلى صفحة إدارة الموقع

End If

  • <LI dir=rtl>يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: إماراتية

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%aa%d8%ad%d9%82%d9%82/" rel="tag">التحقق</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b3%d8%a7%d8%a8%d8%b9/" rel="tag">السابع</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d9%85%d8%b9%d9%84%d9%88%d9%85%d8%a7%d8%aa/" rel="tag">المعلومات</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>، <a href="https://max4arab.com/tag/%d9%85%d9%86/" rel="tag">من</a>

الدرس السادس عشر: تصميم صفحات إدارة الموقع

الدرس السادس عشر: تصميم صفحات إدارة الموقع

أرحب بكم أولا في هذا الدرس، وأرجو لكم الفائدة.
سنقوم سويا بتصميم صفحات لإدخال اسم المستخدم والرقم السري والتأكد من صحتهما من أجل الدخول لصفحة إدارة الأخبار. وسترون كيف أن المهمة سهلة وممتعة.. فلنبدأ..
للوصول إلى هذه النتيجة سنقوم بإنشاء ثلاث ملفات وهم كالتالي : adminsection , validentry.asp, admin.asp 
نموذج إدخال اسم المستخدم والرقم السري (admin.asp): يحتوي على نموذج (Form) لإدخال اسم المستخدم والرقم السري. تقوم هذه الصفحة بعرض رسالة خطأ عند عدم إدخال اسم المستخدم أو الرقم السري، أو عند إدخال معلومات خاطئة.
صفحة التحقق من المعلومات (validentry.asp): ستقوم بالتحقق من صحة إدخال اسم المستخدم والرقم السري، ومن تسجيلهما في الموقع.
الصفحة الإدارية (adminsection): هي الصفحة التي سيسمح بالدخول إليها للقيام بمهام إدارة الموقع، بعد إدخال اسم المستخدم والرقم سري بشكل صحيح .
قبل أن نقوم بتصميم الصفحات.. يجب أن نقوم بتصميم جدول جديد في قاعدة البيانات.. يسكون اسم الجدول admin وبه ثلاث حقول هي id (من نوع Autonumber) و Name و Pass (من نوع Text). وقم بإدخال أية قيم في هذا الجدول. أعني إدخال اسم مستخدم وكلمة مرور افتراضيتين. والآن لنبدأ بإنشاء كل صفحة على حدا..
نموذج إدخال اسم المستخدم والرقم السري (admin.asp):
ينقسم هذا الملف إلى جزأين:
الجزء الأول: يحتوي على نموذج (Form) لإدخال اسم المستخدم والرقم السري كالتالي:

الاسم 

كملة السر 

أما Code النموذج بلغة HTML فهو:

<form method=”POST” action=”validentry.asp” name=”Login“>
<p>
 أدخل اسم المستخدم والرقم السري للدخول لصفحة الإدارة </p>
<p>
اسم المستخدم:<input type=”text” name=”Name” size=”20“> </p>
<p>
الرقم السري: <input type=”password” name=”Password” size=”20“> </p>
<p> <input type=”
submit” value=”دخول” name=”submit“> </p>
</form>

ملاحظات:

  • تم تسمية حقل (اسم المستخدم) بـ Name أما حقل (الرقم السري) فاسمه Password .
  • لحقل الخاص بالرقم السري تم تحديد فيه اختيار الكلمة: Yes التي أمام : Password Field عند الدخول لـ Form Field Propierties وذلك ليتم وضع (نجوم) عند كتابة الرقم السري بدلا من إظهاره على الشاشة.

الجزء الثاني: يقوم بعرض رسالة خطأ عند عدم إدخال اسم المستخدم أو الرقم السري، أو عند إدخال معلومات خاطئة، ويجب كتابة الـ Code بعد النموذج (Form) مباشرة أي بعد <form/>
سوف يستقبل هذا الجزء قيمة من ملف validentry.asp عند وجود خطأ في إدخال المعلومات في النموذج، وسوف يضعها في error ، سنرى لاحقا كيف سيرسل الملف validentry.asp القيمة.

<%
error=Request.querystring(“error”)
 ‘ validentry.asp من ملف error هذه القيمة من ملف 

If error <> “” then ‘ 1. أي في حالة وجود خطأ (لا يساوي فراغ) ، نفذ الأوامر التي تحت (اف) الشرطية 
If error = “Name_Null” Then ‘ 2. اطبع الأمر بالأسفل ، Name_Null يساوي (error) إذا كان الخطأ 
Response.write “<b><font color=#FF0000>لم تدخل اسم المستخدم</font></b>”
Else
If error = “Pass_Null” Then ‘3. اطبع الأمر بالأسفل ، Pass_Null يساوي (error) أما إذا كان الخطأ 
Response.write “<b><font color=#FF0000>لم تدخل الرقم السري</font></b>”
Else
If error = “Name_Entry” Then ‘4. اطبع الأمر بالأسفل ، Name_ Entry يساوي (error) أما إذا كان الخطأ 
Response.write “<b><font color=#FF0000>لقد أدخل اسم مستخدم خطأ</font></b>”
Else
If error = “Pass_Entry” Then ‘5. اطبع الأمر بالأسفل ، Pass_ Entry يساوي (error) أما إذا كان الخطأ 
Response.write “<b><font color=#FF0000>لقد أدخلت رقم سري خطأ</font></b>”
End If
End If
End If
End If
End If
%>

شرح شروط التحقق من أخطاء الإدخال في النموذج :

  1. If error <> “” then ، هذا الأمر سيتحقق من عدم مساواة error لفراغ، أي أنه استقبل خطأ من الملف validentry.asp . في حالة تحقق الشرط واستقبال الخطأ، سوف يتم تنفيذ الأوامر التي في داخل If لاختبار الشروط من 2 إلى 5 . أما في حالة عدم تحقق الشرط ، أي لا يوجد خطأ، فسيتنقل لقراءة الأوامر التي تلي End If الأخيرة.
  2. If error = “Name_Null” Then , هذا الأمر سيتحقق من استقبال خطأ في error بحيث يكون مساوي لـ “Name_Null“، وهو يستقبل هذا الخطأ (هذه القيمة) إن لم يدخل المستخدم اسم المستخدم في خانة اسم المستخدم في النموذج. فإذا تحقق الشرط، سوف يعرض عبارة “لم تدخل اسم المستخدم”. أما إذا لم يكن error يساوي “Name_Null” ، أي لم يتحقق الشرط، فسينتقل إلى اختبار الشرط التالي رقم 3.
  3. If error = “Pass_Null” Then ، هذا الأمر سيتحقق من استقبال الخطأ error بأن يكون مساوي لـ “Pass_Null“، وهو يستقبل هذا الخطأ (هذه القيمة) إن لم يدخل المستخدم الرقم سري في خانة الرقم السري في النموذج، فإذا تحقق الشرط سوف يعرض عبارة “لم تدخل الرقم السري“. أما إذا لم يكن error يساوي “Pass_Null” ، أي لم يتحقق الشرط، سوف ينتقل إلى اختبار الشرط التالي رقم 4 .
  4. If error = “Name_Entry” Then ، هذا الأمر سيتحقق من استقبال الخطأ error بحيث يكون مساوي لـ “Name_Entry“، وهو يستقبل هذا الخطأ (هذه القيمة) إن أدخل المستخدم قيمة (اسم مستخدم) ولكنها خاطئة، أي غير مسجلة في قاعدة البيانات. فإذا تحقق الشرط سوف يعرض عبارة “لقد أدخلت اسم مستخدم خطأ“. أما إذا لم يكن error يساوي “Name_Entry“، أي لم يتحقق الشرط، سوف ينتقل إلى اختبار الشرط التالي رقم 5.
  5. If error = “Pass_Entry” Then ، هذا الأمر سيتحقق من استقبال الخطأ error بحيث يكون مساوي لـ “Pass_Entry“، وهو يستقبل هذا الخطأ (هذه القيمة) إن أدخل المستخدم قيمة (الرقم السري) ولكنها خاطئة، أي غير مسجلة في قاعدة البيانات. فإذا تحقق الشرط سوف يعرض عبارة “لقد أدخلت رقم سري خطأ“. بعد ذلك ستتوقف عملية اختبار الشروط.

بذلك نكون انهينا من إنشاء صفحة Admin.asp والبقية في الدرس التالي..

  • <LI dir=rtl>يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: إماراتية

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/%d8%a5%d8%af%d8%a7%d8%b1%d8%a9/" rel="tag">إدارة</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b3%d8%a7%d8%af%d8%b3/" rel="tag">السادس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9/" rel="tag">الموقع</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%b5%d9%85%d9%8a%d9%85/" rel="tag">تصميم</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a7%d8%aa/" rel="tag">صفحات</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>

الدرس الخامس عشر: إضافة بيانات للقاعدة

الدرس الخامس عشر: إضافة بيانات للقاعدة

بعد أن انتهينا من تصميم صفحة sign_book.asp والتي تحتوي على الحقول المطلوبة لإدخال البيانات، سنقوم الآن بتصميم صفحة باسم add_to_book.asp لإضافة البيانات للقاعدة. هذه الصفحة ستكون عبارة عن Code بلغة ASP ولن نستخدم أي عبارات HTML . وما ستلاحظه في هذه الصفحة هو عدم ظهورها للزائر. أي ستعمل هذه الصفحة عندما يقوم الزائر بكتابة ملاحظاته والضغط على زر: أضف التوقيع. لكن الزائر لن يلاحظ هذه الصفحة، وسيرى نفسه في صفحة (عرض التواقيع) وسترى توقيعه في الأعلى.
لا نريد أن أستبق الأحداث، سنعرض عليك الآن الـ Code لهذه الصفحة، وسنقوم بشرح أهم النقاط فيه بعد ذلك.

<%@ Language=VBScript CodePage = “1256”%>

<!–#include file=”connection.txt” –>

<%
add_dat = now()
name = request.form (“name”)
email = request.form (“email”)
website = request.form (“website”)
link = request.form (“link”)
ranking = request.form (“ranking”)
comment = request.form (“comment”)

If name=”” or comment=”” then
response.write “<center>” & “لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول”
Else
addSQL= ” insert into guest_book (add_dat,name,email,website,link,ranking,comment) values (‘”&add_dat&”‘,'”&name&”‘,'”&email&”‘,'”&website&” ‘,'”&link&”‘,'”&ranking&”‘,'”&comment&”‘) ”
ADO.execute(addSQL)

response.redirect “guest.asp”
End if

ADO.close
Set ADO=Nothing

%>

تحدثنا سابقا عن المتغيرات. وقلنا أننا نكتب اسم المتغير ثم نضع علامة (=) بعد اسمه ونضع قيمته بعد علامة اليساوي. وذكرنا أن القيمة قد تكون رقما، أو كلمة، أو مدخلات في حقول من صفحات سابقة. وذكرنا أنه إن كانت طريقة نقل البيانات GET نستخدام العبارة Request.QueryString للتعبير عن المدخلات. أما إن كانت POST فسنستخدم Request.Form . والآن لنشرح المتغيرات التي لدينا.
لدينا 7 متغيرات. اترك المتغير الأول جانبا الآن. ولننظر للست متغيرات الأخرى ( name, email, website, link, ranking and comment) تشترك هذه المتغيرات الستة في نفس طريقة الكتابة. حيث تم تحديد اسمها، ومن ثم وضع علامة (=) ثم تم الإفصاح عن أن قيمة هذه المتغيرات ستكون عبارة عن مدخلات في حقول في الصفحة السابقة وذلك بالعبارة Request.Form أما أسماء الحقول في الصفحة السابقة فتم كتابتها بين هذه العلامات: (” “)
والآن، لنرجع للمتغير الأول وهو add_dat . تم تحديد قيمة المتغير بـ now() وهذه القيمة هي قيمة ثانية في اللغة تعطي: الوقت والتاريخ الحاليتين. وهنالك الكثير من الدوال الأخرى أهمها :

المعنى
الدالة

الوقت والتاريخ الحاليين Now() التاريخ الحالي Date() السنة الحالية Year() الوقت الحالي Time() الساعة الحالية Hour()

بعد تحديد المتغيرات تم كتابة جملة تبدأ بـ if . وهذه جملة شرطية. صيغتها:
If something Then
something
Else
something
End if

حيث أن كلمة something تعبر عن : شرط تقوم بتحديده، وفعل يجب القيام به. لنفترض أن الشرط هو: الساعة 12. والفعل أو الإجراء هو طباعة: (ابتدأ يوم جديد). والإجراء البديل هو طباعة: (لازلنا في نفس اليوم). بإمكاننا استخدام هذا الشرط، حيث سنكتب if ثم سنكتب الشرط المطلوب. ثم سنكتب Then لتنفيذ الإجراء المطلوب. وفي حالة عدم تحقق الشرط يتم تنفيذ الإجراء البديل الذي بعد Else . ونغلق الدالة الشرطية بـ End if
ويمكن أن تتطور هذه الصيغة في حالة وجود أكثر من شرط لتصبح كالتالي:
If something Then
something
Else If something Then
something
Else If something Then
something
Else
something
End if
End if
End if

لنعد للـ Code ونرى كيف تم استخدام الدالة الشرطية.
If name=”” or comment=”” then
في السطر السابق تم تحديد الشرط، وهو: إن كانت Name أو Comment لا تساوي شيئا (أي حقول فارغة) قم بالتالي…
من السطر السابق نفهم أمران هما:

  • علامتا “” المتلاصقتان تعنيان : لا شيء .. أو : فراغ.
  • يمكن استخدام الأوامر المنطقية Or و And في الدوال الشرطية لدمج أكثر من شرط في سطر واحد. 

أما الإجراء الواجب القيام به في حالة تنفيذ الشرط فهو الآتي:
response.write “<center>” & “لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول”
أي: اطبع الجملة التالية: (لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحك وقم بإدخال جميع الحقول).
الأمر الجديد في response.write هذه المرة هو أننا قمنا بكتابة أمر HTML ضمن أوامر ASP وكأنه واحد منها. هذا أمر هو <center> أي: توسيط. والذي سيجعل الجملة تظهر في منتصف السطر. تم كتابة هذا الأمر على النحو التالي: وضعت علامات التنصيص “” ثم كتب الأمر بداخلها ثم وضعت علامة (و) & وتم كتبة الجملة التي نريد طباعتها.
هذا هو الشرط. أما الإجراء البديل في حالة عدم تحقق الشرطة (أي في حالة وجود بيانات في هذه الخانات) فهو:

addSQL= ” insert into guest_book (add_dat,name,email,website,link,ranking,comment) values (‘”&add_dat&”‘,'”&name&”‘,'”&email&”‘,'”&website&” ‘,'”&link&”‘,'”&ranking&”‘,'”&comment&”‘) “

وفي هذا السطر أمر جديد، هو insert ووظيفته: إضافة المدخلات لقاعدة البيانات. وصيغته كما هو واضح بالأعلى. يكتب الأمر insert متبوعة بالكلمة into ثم اسم الجدول المراد إضافة البيانات إليه. وبين قوسين تكتب أسماء الخانات في الجدول المطلوب إضافة المدخلات إليها. ثم تكتب values وبعدها بين قوسين أيضا القيم المراد إضافتها وهي بنفس ترتيب الحقول.
تكتب القيم هكذا: ‘”&add_dat&”‘
بعد سطر insert يتم كتابة سطر تنفيذ الأمر وهو :
ADO.execute(addSQL)
الاسم addSQL نحن من قام بتحديده، ويمكننا تغييره كيفما نشاء.
لازلنا في الجملة الشرطية، حيث تم تحديد فعل أو إجراء إضافي هو:
response.redirect “guest.asp”
وهذه الجملة تعني: انتقل للصفحة أو العنوان الموجود بين علامتي التنصيص. وفي حالتنا هذه طلبنا منه الانتقال إلى صفحة عرض التواقيع.
تم أغلنا الشرط بـ End if
لنتخيل الآن طريقة عمل هذه الصفحة.
سيكتب الشخص توقيعه أو ملاحظاته، وسيضغط على زر: إضافة التوقيع. سيبدأ المتصفح بقراءة هذه الصفحة. فسيجد مجموعة من المتغيرات، تعبر عن المدخلات التي تم إضافتها في التوقيع. ثم سيجد دالة شرطية، تطلب منه التحقق من أمر معين. هذا الأمور هو: هل توجد مدخلات في حقول الاسم والتعليق أم لا. ثم سيجد بمجموعة من الإجراءات. في حال تحقق الشرط (أي عدم موجود قيم في هذين الحقلي) ستظهر العبارة التالية: (لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحك وقم بإدخال جميع الحقول) أما في حالة عدم تحقق الشرط (أي في حالة وجود قيم في هذه الحقول) سيتم تنفيذ أمر إضافة البيانات لقاعدة البيانات، تم فتح صفحة عرض التواقيع.
من الجدير بالذكر أن هذه العملية ستستغرق ثواني قليلة قد لا يشعر بها الزائر.

إعداد: خالد الحر 

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/%d8%a5%d8%b6%d8%a7%d9%81%d8%a9/" rel="tag">إضافة</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ae%d8%a7%d9%85%d8%b3/" rel="tag">الخامس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa/" rel="tag">بيانات</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>، <a href="https://max4arab.com/tag/%d9%84%d9%84%d9%82%d8%a7%d8%b9%d8%af%d8%a9/" rel="tag">للقاعدة</a>

الدرس الرابع عشر: تصميم صفحة التوقيع في سجل الزوار (صفحة sign_book.asp

الدرس الرابع عشر: تصميم صفحة التوقيع في سجل الزوار (صفحة sign_book.asp

صفحة sign_book.asp لن يكون بها أي Code بلغة ASP . فستكون كاملة بلغة HTML ويمكنك تصميمها بالفرونت بيج (Microsoft Frontpage) بسهولة.
افتح صفحة guest.asp واحفظها باسم sign_book.asp حيث سنجري عليها التغييرات اللازمة. وإليك الـ Code لهذه الصفحة، وسنقوم بشرح أهم النقاط فيه بعد ذلك.

<%@ Language=VBScript CodePage = “1256”%>

<html dir=rtl><!–#include file=”pageheader.txt” –><p align=”center“><font face=”Simplified Arabic“>مرحبا بكم في
سجل الزوار.. وملاحظاتكم تسعدنا
</font></p>
<form method=”POST” action=”add_to_book.asp“>
<b>
الحقول التي أمامها علامة (<font color=”#C11111“>*</font>) مطلوبة.</b><p>
<b>
الاسم: <font color=”#C11111“>*</font> <input type=”text” name=”name” size=”20“></b></p>
<p><b>
البريد الالكتروني: <input type=”text” name=”email” size=”20“></b></p>
<p><b>
الموقع الشخصي (URL):
<input type=”
text” name=”website” size=”20“></b></p>
<p><b>
طريقة الاستدلال على الموقع: <select size=”1” name=”link“>
<option>
محرك بحث</option>
<option>
رابط من موقع آخر</option>
<option>
وسائل الإعلام</option>
<option>
صديق</option>
<option>
أخرى</option>
</select></b></p>
<p><b>
تقييم الموقع: <input type=”radio” value=”ممتاز” checked name=”ranking“>
ممتاز&nbsp;&nbsp;&nbsp;&nbsp; <input type=”radio” name=”ranking” value=”جيد“>
جيد&nbsp;&nbsp;&nbsp;&nbsp; <input type=”radio” name=”ranking” value=”ضعيف“>
ضعيف</b></p>
<p><b>
التعليق: <font color=”#C11111“>*</font></b></p>
<p><textarea rows=”
5” name=”comment” cols=”25“></textarea></p>
<p><input type=”
submit” value=”إضافة التوقيع” name=”B1“></p>
</form>

<!–#include file=”pagefooter.txt” –>

ستكون الصفحة بالشكل التالي:

الاسم: البريد الالكتروني:
الموقع الشخصي (URL):
طريقة الاستدلال على الموقع: محرك بحث رابط من موقع آخر وسائل الإعلام صديق أخرى
تقييم الموقع: ممتاز جيد ضعيف
التعليق:

والآن ليكم بعض الملاحظات حول هذه الصفحة:

  • طريفة إدراج الـ Forms تحدثنا عنها في الدرس الحادي عشر (تصميم صفحة البحث). وباختصار يمكنكم إدراجها من قائمة Insert وبعدها Form . وهنالك عدة أسماء وأشكال لها.

    • في: الاسم، والبريد، والموقع الشخصي، تم استخدام الحقل الذي باسم Textbox .
    • في: طريقة الاستدلال على الموقع، تم استخدام Drop-Down Box .
    • في: تقييم الموقع، تم استخدام Option Button (ثلاث مرات).
    • في: التعليق، تم استخدام Text Area .
  • يجب علينا تحديد اسم لكل حقل، وذلك بالضغط بزر الفأرة الأيمن على الحقل المراد تحديد اسمه، واختيار Form Field Properties من القائمة. وكتابة الاسم في خانة Name .
  • الأسماء للحقول هي كالتالي:
الحقل
الاسم

الاسم name البريد الالكتروني email الموقع الشخصي website طريقة الاستدلال على الموقع link التقييم (الاختيارات الثلاثة لها نفس الاسم) ranking التعليق comment

  • لكتابة الاختيارات في قائمة (طريقة الاستدلال على الموقع)، اضغط على القائمة بالزر اليمين، واختر Form Field Properties . من الشاشة التي ستظهر اضغط Add وأضف خياراتك واحدة تلو الأخرى.
  • وضعنا اسما واحدا لجميع الاختيارات في (التقييم) وللتميز بين هذه الخيارات، اضغط على الاختيار الأول بالزر اليمين، واختر Form Field Properties . ومنه حدد القيمة في خانة Value بكتابة ممتاز. وكرر العملية بالنسبة للخيارات الأخرى.
  • لتغيير كلمة Submit المكتوبة على الزر، اضغط عليه بالزر الأيمن واختر Form Field Properties . واكتب الكلمة التي تريد أن تظهر على الزر مكان Submit .

أخيرا، لإرسال هذه القيم لصفحة المعالجة والإضافة لقاعدة البيانات، اضغط على أي حقل بالزر اليمين، واختر Form Properties ، ستظهر لك الشاشة التالية: 

اختر Send to Other ثم اضغط على زر Options . وفي الشاشة التالية اكتب اسم الصفحة التي تود إرسال هذه المدخلات إليها في خانة Action (اكتب هذا الاسم add_to_book.asp) واترك الحقل Method كما هو (لا تغير كلمة POST ).
في الدرس التالي، سنصمم صفحة إضافة هذه المدخلات إلى قاعدة البيانات.

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: سجل الزوار
  • سيتم توفير الصفحات في الدرس التالي.

إعداد: خالد الحر

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/signbookasp/" rel="tag">signbookasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%aa%d9%88%d9%82%d9%8a%d8%b9/" rel="tag">التوقيع</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b1%d8%a7%d8%a8%d8%b9/" rel="tag">الرابع</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b2%d9%88%d8%a7%d8%b1/" rel="tag">الزوار</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%b5%d9%85%d9%8a%d9%85/" rel="tag">تصميم</a>، <a href="https://max4arab.com/tag/%d8%b3%d8%ac%d9%84/" rel="tag">سجل</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>، <a href="https://max4arab.com/tag/%d9%81%d9%8a/" rel="tag">في</a>

الدرس الثالث عشر: تصميم سجل الزوار (صفحة guest.asp)

الدرس الثالث عشر: تصميم سجل الزوار (صفحة guest.asp)

سنصمم سجل الزوار من صفحتين، صفحة عرض التواقيع: guest.asp ، وصفحة إضافة توقيع sign_book.asp . ومن الطبيعي أن نبدأ بصفحة sign_book.asp لإضافة التواقيع. إلا أننا سنفترض أن هنالك تواقيع في سجل الزوار وسنصمم صفحة العرض، ثم نصمم الصفحات الباقية.
والآن، لنصمم الجدول في قاعدة البيانات التي سيحتوي على التواقيع. افتح قاعدة البيانات، وسنصمم جدول باسم guest_book وهذا هو شكله:

  • انتبه لنوعية الحقول، فالحقل id نوعه AutoNumber. والحقل add_dat نوعه Date/Time . والحقل comment نوعه memo . وبقية الحقول text .
  • انتبه لكون بعض الحقول التي من نوع Text حجمها (Field Size) تساوي 255 (هذه الحقول هي name , email , website ).
  • انتبه لكون الحقلين email و website تم تغيير القيمة Allow Zero Length من : No إلى Yes .

قم بإدخال بيانات في هذه الخانات.
الآن، سنستخدم المهارات التي تعلمناها سابقا، لربط الصفحة view_book.asp بقاعدة البيانات، واستخدام الأمر Select لاختيار المعلومات من القاعدة، والأمر Response.Write لطباعة (عرض) المعلومات في الشاشة. وأوامر HTML لتزيين طريقة العرض. واختصارا للوقت. سأضع Code صفحة view_book.asp كاملا في هذه الصفحة.

<%@ Language=VBScript CodePage = “1256”%>

<html dir=rtl><!–#include file=”pageheader.txt” –><p align=”center“><font face=”Simplified Arabic“>مرحبا بكم في
سجل الزوار.. وملاحظاتكم تسعدنا
</font></p>
<!–#include file=”connection.txt” –>

<%

selectSQL=”select * from guest_book order by add_dat desc”

set rs=ADO.execute(selectSQL)

do while not rs.eof

%>
<div align=”center“>
<center>
<table border=”
0” cellpadding=”0” cellspacing=”0” style=”border-collapse: collapse” bordercolor=”#111111” width=”90%“>
<tr>
<td width=”
100%” dir=”rtl” bgcolor=”#DFDFFF“><b>التاريخ :<%response.write rs(“add_dat”)%></b></td>
</tr>
<tr>
<td width=”
100%” dir=”rtl” bgcolor=”#ECECFF“><b>الاسم : <a href=”mailto:<%response.write rs(“email”)%>“><%response.write rs(“name”)%></a></b></td>
</tr>
<tr>
<td width=”
100%” dir=”rtl” bgcolor=”#DFDFFF“><b>الموقع الشخصي : <a href=”<%response.write rs(“website”)%>“><%response.write rs(“website”)%></a></b></td>
</tr>
<tr>
<td width=”
100%” dir=”rtl” bgcolor=”#ECECFF“><b>طريقة
الاستدلال على الموقع :
 <%response.write rs(“link”)%></b></td>
</tr>
<tr>
<td width=”
100%” dir=”rtl” bgcolor=”#DFDFFF“><b>تقييم الموقع : <%response.write rs(“ranking”)%></b></td>
</tr>
<tr>
<td width=”
100%” dir=”rtl“><b>التعليق :<%response.write rs(“comment”)%></b></td>
</tr>
</table>
</center>
</div>
<hr color=”
#DFDFFF” width=”90%“>
<%
rs.movenext
loop

ADO.close
%>
<!–#include file=”pagefooter.txt” –>

بذلك نكون قد انتهينا من تصميم صفحة عرض التواقيع، وسنصمم صفحة إضافة التوقيع في الدرس القادم إن شاء الله.

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: سجل الزوار
  • سيتم توفير الصفحات في الدرس التالي.

إعداد: خالد الحر 

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/guestasp/" rel="tag">guestasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ab%d8%a7%d9%84%d8%ab/" rel="tag">الثالث</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%b2%d9%88%d8%a7%d8%b1/" rel="tag">الزوار</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%b5%d9%85%d9%8a%d9%85/" rel="tag">تصميم</a>، <a href="https://max4arab.com/tag/%d8%b3%d8%ac%d9%84/" rel="tag">سجل</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>

الدرس الثاني عشر: تصميم صفحة البحث وعرض النتائج search_result.asp

الدرس الثاني عشر: تصميم صفحة البحث وعرض النتائج search_result.asp

افتح صفحة search.asp وقم بحفظها باسم search_result.asp. ستجد الـ Code كالتالي:

<%@ Language=VBScript CodePage = “1256”%><html dir=rtl>

<!–#include file=”pageheader.txt” –>

<form method=>”GET” action=“search_result.asp”>
<p align=
“center”>
<input type=
“text” name=“keyword” size=“20”></p>
<p align=
“center”><input type=“submit” value=“ابحث” name=“B1”></p>
</form>

<!–#include file=”pagefooter.txt” –>

والآن.. لنقم بالتغييرات المطلوبة. أولى هذه التغييرات هو إعلام البرنامج أن هنالك (متغير) يجب أخذ قيمته من الصفحة السابقة serach.asp هذا المتغير هو keyword والذي يحتوي على الكلمة المطلوب البحث عنها. وكما فعلنا في الدرس التاسع، سنستخدم Request.QueryString للقيام بهذه المهمة. لذا قم بمسح هذه الأسطر:

<form method=“GET” action=“search_result.asp”>
<p align=
“center”>
<input type=
“text” name=“keyword” size=“20”></p>
<p align=
“center”><input type=“submit” value=“ابحث” name=“B1”></p>
</form>

واكتب بدلا منها:

<%
keyword
=request.querystring(“keyword“)
%>

والآن سنقوم بالبحث عن الكلمة في الجدول بعد استقبالها من صفحة البحث باستخدام أمر Select:

<%@ Language=VBScript CodePage = “1256”%><html dir=rtl>

<!–#include file=”pageheader.txt” –> <!–#include file=”connection.txt” –>
<%
keyword=request.querystring(“keyword”)

SelectTechSQL=”select * from tech_news where subject like ‘%”&keyword&”%’ ”
set rs=ADO.execute(
SelectTechSQL)
%><!–#include file=”pagefooter.txt” –>

الملاحظ في أمر Select هنا أننا أضفنا كلمة Like . كلمة Like تغني عن علامة ( = ). ويمكن أن تعبر عن مساواة كلية أو جزئية. ولتوضيح ذلك، لنفترض المثال التالي: إن قمنا باستخدام المساواة الكلية وبحثنا عن “خالد” فستظهر لنا النتائج التي تحتوي على كلمة “خالد”. أما إن استخدما المساواة الجزئية فستظهر لنا النتائج التي تحتوي على: خالد، خالدا، الخالد، الخالدون، خالدون .. الخ

  • للتعبير عن المساواة الكلية نكتب Like وبعدها اسم المتغير .. في مثالنا هو Keyword فنكتبه بالصيغة التالية: “&keyword&”
  • للتعبير عن المساواة الجزئية نكتب Like وبعدها اسم المتغير بين علامات النسبة المؤوية .. في مثالنا هو Keyword فنكتبه بالصيغة التالية: ‘%”&keyword&”%’

والمقصود في عبارة Select في هذا المثال هو: اختر أي شي من جدول Tech عندما تكون القيمة في العمود Subject مساوية أو مشابهة للقيمة في المتغير Keyword . للتوضيح لنفترض المثال التالي:
لديك في القاعدة العناوين الثلاثة التالية:

  1. لغة ASP متطورة وسهلة.
  2. لغة PHP سهلة ومتطورة.
  3. البرمجة بـ C++ ممتعة.

عند إدخال كلمة “لغة” للبحث عنها، سيظهر لنا أول عنوانين كنتائج للبحث. حيث أن أمرنا يبحث في العنوان.
إن كنا نود تغيير حقل البحث، فبإمكاننا تغيير اسم العمود الذي يتم البحث فيه.. كأن نكتب “select * from tech where body like ‘%”&keyword&”%’ ” في حال رغبتنا بالبحث في نص الموضوع وليس عنوانه. أما إن أردنا البحث في كافة الحقول، فعلينا كتابتها جميعا والربط بينها باستخدام أحد دوال الربط المنطقيةوهي Or . لنعد كتابة SelectTechSQL مرة باسخدام Or :

SelectTechSQL=”select * from tech_news where subject like ‘%”&keyword&”%’ or body like ‘%”&keyword&”%’ “

في هذه الحالة سيتم عرض النتائج الذي توجد بها كلمة البحث في:

  1. العنوان.
  2. المحتوى.
  3. العنوان والمحتوى.

الأمر السابق سيبحث عن الكلمة في جدول Tech_news وللبحث في كلا الجدولين ( Tech_news و General_news ) بإمكاننا كتابة أمر لكل جدول، كالتالي:

<%@ Language=VBScript CodePage = “1256”%><html dir=rtl>

<!–#include file=”pageheader.txt” –> <!–#include file=”connection.txt” –>
<%
keyword=request.querystring(“keyword”)
‘ أوامر البحث في جدول الأخبار التقنية
SelectTechSQL=”select * from tech_news where subject like ‘%”&keyword&”%’ or body like ‘%”&keyword&”%’ “
set rsTech=ADO.execute(
SelectTechSQL)
‘ أوامر البحث في جدول الأخبار العامة
S
electGeneralSQL=”select * from tech_news where subject like ‘%”&keyword&”%’ or body like ‘%”&keyword&”%’ ”
set rs
General=ADO.execute(SelectGeneralSQL)
%><!–#include file=”pagefooter.txt” –>

لا تنسى أن تضع ملف الربط بقاعدة البيانات، وذلك لأننا سنحتاج لقراءة بعض البيانات منها. بعد كتابة أوامر Select علينا كتابة أوامر عرض النتائج. وهي بسيطة قمنا بكتابتها سابقا في الدرسين السابع والثامن. سنكتب واحدة لـ SelectTechSQL وأخرى لـ SelectGeneralSQL .

<%@ Language=VBScript CodePage = “1256”%><html dir=rtl>

<!–#include file=”pageheader.txt” –> <!–#include file=”connection.txt” –>
<%
keyword=request.querystring(“keyword”)
‘ أوامر البحث في جدول الأخبار التقنية
SelectTechSQL=”select * from tech_news where subject like ‘%”&keyword&”%’ or body like ‘%”&keyword&”%’ “
set rsTech=ADO.execute(
SelectTechSQL)
‘ أوامر البحث في جدول الأخبار العامة
S
electGeneralSQL=”select * from general_news where subject like ‘%”&keyword&”%’ or body like ‘%”&keyword&”%’ ”
set rs
General=ADO.execute(SelectGeneralSQL)
%>

<p align=“center”><font face=“Simplified Arabic” size=“3”>نتائج البحث</font></p>

<%
‘ أوامر عرض نتائج الأخبار التقنية do while not rsTech.eof 
%>
<p><b><a href=”body.asp?field=tech_news&id=<%=rsTech(“id”)%>“><%response.write rsTech(“subject”)%></a></b></p>
<% 
rsTech.movenext
loop
‘ أوامر عرض نتائج الأخبار العامة
do while not rsGeneral.eof

%>
<p><b><a href=”body.asp?field=general_news&id=<%=rsGeneral(“id”)%>“><%response.write rsGeneral(“subject”)%></a></b></p>
<%
rsGeneral.movenext
loop
ADO.close
%>
<!–#include file=”pagefooter.txt” –>

بذلك نكون قد انتهينا من تصميم محرك البحث. وسنشرح في الدرس التالي إن شاء الله كيفية تصميم سجل الزوار.

  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: بحث
  • لسحب الصفحات: الدرس الثاني عشر

إعداد: خالد الحر 

نُشر في <a href="https://max4arab.com/category/%d9%84%d8%ba%d8%a7%d8%aa-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/" rel="category tag">دورات لغات البرمجة</a>، <a href="https://max4arab.com/category/%d8%af%d9%88%d8%b1%d8%a9-asp/" rel="category tag">دورة ASP</a> الموسومة <a href="https://max4arab.com/tag/searchresultasp/" rel="tag">searchresultasp</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%a8%d8%ad%d8%ab/" rel="tag">البحث</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a/" rel="tag">الثاني</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d8%af%d8%b1%d8%b3/" rel="tag">الدرس</a>، <a href="https://max4arab.com/tag/%d8%a7%d9%84%d9%86%d8%aa%d8%a7%d8%a6%d8%ac/" rel="tag">النتائج</a>، <a href="https://max4arab.com/tag/%d8%aa%d8%b5%d9%85%d9%8a%d9%85/" rel="tag">تصميم</a>، <a href="https://max4arab.com/tag/%d8%b5%d9%81%d8%ad%d8%a9/" rel="tag">صفحة</a>، <a href="https://max4arab.com/tag/%d8%b9%d8%b4%d8%b1/" rel="tag">عشر</a>، <a href="https://max4arab.com/tag/%d9%88%d8%b9%d8%b1%d8%b6/" rel="tag">وعرض</a>