الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فورم" اتصل بنا " يمكن استخدامه في موقعك

بدأه TareqVB في 26 أكتوبر 2008 · 12 رد · 5,576 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة

قمت في الاونة الاخيرة بتحديث احدى مواقعي واحتجت نموذج لاتصال الزوار بي لتقديم اي استفسارات وملاحاظات وبالرغم ان هذا الفورم كان موجودا من قبل الا اني عانيت من البريد المزعج من خلال ال BOT.

لذا قررت تحديثه بوضع حماية عليه باستخدام captcha حيث حصلت على شكلين كما في الصورة

post-112904-1225045861_thumb.jpg

يمكن استخدام هذه ال captcha في اي صفحة تحتاجه حيث صممت باستخدام Generic Handlers فما عليك الا وضع الكود التالي

<img alt="Captcha" src="SimpleAntiBotImage.ashx" />

او SimpleAntiBotImage.ashx نضع AntiBotImage.ashx

للحصول على شكلين مختلفين منها

ايضا يمكن الاستفادة من طريقة ارسال البريد حيث يمكن الارسال عن طريق سيرفر ايميل عادي او استخدام بريد الجي ميل Gmail

وفي مثل هذه الحالات ينصح باستخدام بريد مخصص لهذا الفورم بالتالي يمكن استخدام سيرفر بريد الجي ميل المجاني والارسال الى بريدك العادي

ملاحظة : لاستخدام بريد الجي ميل عليك بالدخول الى صفحة البريد ثم

Settings ---->>> Forwarding and POP/IMAP --->>> Enable POP for all mail

لمن اراد رؤية الفورم على ارض الواقع على الموقع

http://www.3lamat.net/

مرفق المشروع ويبقى عليك التنسيق والتجميل

ContactUS.rar

#2

رائع .. ما شاء الله عليك ..

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#3

جزاك الله كل وخير وتقبل الله منك

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#4

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        'في شفرة الكود بدل  
        ' <img alt="Captcha" src="AntiBotImage.ashx" />
        'الى
        ' <img alt="Captcha" src="simpleAntiBotImage.ashx" />
        'لتحصل على شكل مختلف

        If Not String.IsNullOrEmpty(Session("antibotimage")) AndAlso Session("antibotimage").ToString().Trim() = txtnumber.Text.ToUpper Then
            'ضع بريدك الذي تريد ان تصلك الرسائل عليه
            Dim ToAddress As String = "m_shoon@hotmail.com"
            Dim FromAddress As String = ToAddress 'or "Someoneelse@someDomainElse"

            'ضع بريد الجي ميل او اي بريد اخر مع كلمة المرور
            Dim YourPWD As String = "XXXXXXXX"
            Dim YourEmail As String = "XXXXXXX@hotmail.com"

            Dim MailServer As String
            If YourEmail.EndsWith("@gmail.com") Then
                MailServer = "smtp.gmail.com"
            Else
                MailServer = "m_shoon1@hotmail.com" ' غير معلوماتك هنا
            End If
            Try


                '(1) Create the MailMessage instance
                Dim mm As New Net.Mail.MailMessage(FromAddress, ToAddress)

                '(2) Assign the MailMessage's properties
                mm.Subject = String.Concat("Contac us : ", txtsubject.Text)

                Dim STB As New StringBuilder
                STB.Append("الاسم : ").AppendLine(txtname.Text)
                STB.Append("البريد الالكتروني: ").AppendLine(txtemail.Text)
                STB.AppendLine("")
                STB.Append("الملاحظات: ").AppendLine(txtbody.Text)

                mm.Body = STB.ToString
                mm.IsBodyHtml = False

                '(3) Create the SmtpClient object

                '-----------------------------------------------------------

                Dim smtp As Net.Mail.SmtpClient
                If YourEmail.EndsWith("@gmail.com") Then
                    'فقط ل Gmail  
                    smtp = New Net.Mail.SmtpClient(MailServer, 587)
                    smtp.EnableSsl = True
                Else
                    '------------------------------------------------------------ 
                    ' غير بريد جي ميل  استخدم السطر التالي
                    smtp = New Net.Mail.SmtpClient(MailServer)
                    '------------------------------------------------------------
                End If


                Dim mailAuthentication As New System.Net.NetworkCredential(YourEmail, YourPWD)
                smtp.UseDefaultCredentials = False
                smtp.Credentials = mailAuthentication
                smtp.Send(mm)

            Catch ex As Exception
                Label1.Text = "حدث خطأ في الارسال"
                pnlerror.Visible = True
            End Try

            Response.Redirect("Cont.aspx") 'OR SentPage.aspx


        Else
            Label1.Text = "ادخل رمز الحماية في المربع كما هو في الصورة"
            pnlerror.Visible = True
        End If


    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="text-align:center;">

  <h1>اتصل بنا</h1>

    <table id="contact" style="text-align:right;dir:rtl"  cellpadding="0" cellspacing="1" >
     <tr>
      <td colspan="4" style="height: 69px">
       <asp:Panel ID="pnlerror" Visible="false" runat="server">
            <asp:Label ID="Label1" ForeColor="Red" runat="server" Text="Label"></asp:Label>
        </asp:Panel>
      </td>
      </tr>
        <tr>
            <td>
               الاسم
            </td>
            <td>
                 <asp:textbox id="txtname" runat="server"></asp:textbox>

                 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                     ControlToValidate="txtname" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator>

            </td>
            <td>   البريد الالكتروني
               </td>
                <td style="width: 168px"> <asp:textbox id="txtemail" runat="server"></asp:textbox>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                        ControlToValidate="txtemail" Display="Dynamic" ErrorMessage="*" 
                        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
               </td>
        </tr>

        <tr>
            <td>
                الموضوع
            </td>
            <td colspan="3">

                <asp:textbox id="txtsubject" runat="server"></asp:textbox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                    ControlToValidate="txtsubject" Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator>
            </td>

        </tr>
        <tr>
            <td>
                التعليق
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                    ControlToValidate="txtbody" ErrorMessage="*"></asp:RequiredFieldValidator>
            </td>

            <td colspan="3">
                <asp:textbox id="txtbody" runat="server" textmode="multiline" rows="10" columns="50"></asp:textbox>
            </td>
        </tr>
        <tr>
         <td>ادخل رمز الحماية</td>
                <td> <asp:textbox id="txtnumber" runat="server"></asp:textbox></td>

            <td>
                رمز الحماية
            </td>

            <td style="width: 168px">
                <img alt="Captcha" src="SimpleAntiBotImage.ashx" />
            </td>
        </tr>

        <tr><td></td>
            <td>
                <asp:button id="btnsubmit" runat="server" text="ارسال" 
                    onclick="btnsubmit_click" />
            </td>
           <td>

            </td>
        </tr>

    </table>
        <br />
        <br />
<br />


    </div>
    </form>

</body>
</html>

الكود ما يطرش الرسالة على ايميلي

لماذا .؟

تم تعديل هذه المشاركة بواسطة TareqVB في 26 أبريل 2010 في 14:23

#5

السلام عليكم

نحتاج الى تغيير سيرفر الارسال الخاص بالهوتميل وهو smtp.live.com (لست متأكدا منه ) اي سيكون التغيير في السطر التالي كمايلي :

                MailServer = "smtp.live.com" ' غير معلوماتك هنا

او بالامكان استخدام الجي ميل

#6

السلام عليكم

شكرا صديقي و الله يجزيك كل خير ويدخلك الجنة ولكن لديي سؤال

بحكم نشر الكود هل اصبح من الممكن كسر هذه الطريقة

السؤال الثاني انا استخدم طريقة واتمنى تقييمها

اصمم صور على الفوتوشوب كل صورة بتنسيقات مختلفة وبالوان مختلفة

وكل صورة مدخلة بقاعدة البيانات ولها قيمة السلسلة النصية بعمود والمسار بعمود بحيث تظهر احدى

هذه الصور للمستخدم عشوائيا تبعا للوقت

اتمنى منك الرد والافادة

In bad state

#7
TareqVB كتب:

السلام عليكم

نحتاج الى تغيير سيرفر الارسال الخاص بالهوتميل وهو smtp.live.com (لست متأكدا منه ) اي سيكون التغيير في السطر التالي كمايلي :

                MailServer = "smtp.live.com" ' غير معلوماتك هنا

او بالامكان استخدام الجي ميل

غيرت سيرفر الارسال فلم يرسل

فقمت و عملت لي اكونت ع الجيميل

و لكن الكود لازال لا يرسل

استخدم الكود في الفيجوال

هل يلزمني شيء لان يعمل الكود ؟

#8
اقتباس
بحكم نشر الكود هل اصبح من الممكن كسر هذه الطريقة

بشكل عام هذه الطريقة بسيطة ولا يهم نشرها ام لا لان الناتج صورة .

ومرة اخرى هي طريقة بسيطة فهناك طرق اعقد منها ويتم تجاوزها لكن في النهاية هي افضل من لاشيء

اقتباس

فقمت و عملت لي اكونت ع الجيميل

و لكن الكود لازال لا يرسل

ملاحظة : لاستخدام بريد الجي ميل عليك بالدخول الى صفحة البريد ثم

Settings ---->>> Forwarding and POP/IMAP --->>> Enable POP for all mail

1
#9

الله يعطيك العافة ويجزيك الخير

In bad state

#10

بالنسبة اخي AsJsGle لسؤالك الثاني عن استخدام صورة مخزنة اعتقد انها تفي بالغرض كحماية بسيطة لكن الخطر فيها ان تكون الاحتمالات فيها قليلة اي الصور قليلة وبالتالي اذا تعرض الموقع لهجوم Brute force attack تكون نسبة النجاح كبيرة .

بالنسبة للالوان وشكل الحرف فهناك طرق وحلول لتجاوزهم والتعرف عليهم .

وبالنسبة ايضا للطريقة التي قمت انا باستخدامها يمكن تعقيد الامر اكثر عن طريق استخدام خطوط غريبة عجيبة لكن ستكون صعبة ايضا على من سيقوم بادخالها وبالتالي من الممكن ان تخسر بعض الزبائن او الزوار او ..

لذا يجب ان نحاول ان نوازن في اختيار الحماية المناسبة خاصة لمواقعنا البسيطة .

1
#11

أخي طارق بارك الله فيك .. وجعله في ميزان حسناتك

وعلمك من علمه ...

أفدتني كثبر..

طلب .. هل من الممكن ان تلقي نظرة في موضوعي لعلي استفيد من خبرتكم.

تحياتي

تم تعديل هذه المشاركة بواسطة alrahel في 27 أبريل 2010 في 15:21

#12

مشكور ياغالي على الرد وبصراحة ولا مرة اعملتو مع اكثر من عشرين صورة

ولهيك رح فكر من جديد بشي جديد

:)

In bad state

#13
TareqVB كتب:

ملاحظة : لاستخدام بريد الجي ميل عليك بالدخول الى صفحة البريد ثم

Settings ---->>> Forwarding and POP/IMAP --->>> Enable POP for all mail

لقد قمت بعمل هذه الخطوة

و لكني حين اسوي رن للصفحة

و املا البيانات

و من ثم اضغط بوتون سيند

و اجيك الانديكس تبع الجيميل و الهوتميل

فان الرسالة لم تصل مطلقا

اني اجيك عن طريق الفيجوال ران عادي

هل نحتاج الى هوست او سيرفر او ما شابه ذلك ؟

مواضيع مشابهة