مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

m.amin1964

عضویت از 1395/03/01

مشکل در کپچا

  • دوشنبه 8 خرداد 1396
  • 15:22
تشکر میکنم

با سلام خدمت دوستان و استاد مدائنی گرامی

کپچایی که من استفاده کردم درست عمل میکنه و موقع رفرش اون برای بار اول هم درست عمل میکنه و کپچا تغییر میکنه اما سری های بعد که کلیک میکنی دیگه رفرش نمیشه ؟

<script type="text/javascript">
        $(function () {
            $('#refresh').click(function () {                
                $.ajax({
                    url: '@Url.Action("CaptchaImage", "Account")',
                    type: "GET",
                    data: null,
                    success: function (data) {
                        $("#imgcpatcha").attr("src", "/Account/CaptchaImage?" + data);
                    }
                })
            });
        });
    </script>

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 8 خرداد 1396
  • 16:26

چه اروری میده ؟

با فایر باگ بررسی کنید و متن ارور را قرار دهید

کاربر سایت

m.amin1964

عضویت از 1395/03/01

  • دوشنبه 8 خرداد 1396
  • 17:07

هیچ ارروری نمیده و درست عمل میکنه ، فقط تصویر تغییر نمیکنه یعنی همون تصویر و فقط برمیگردونه و لی خب بار اول درست عمل میکنه ، اینم کد سمت سرورم :

public ActionResult CaptchaImage(string prefix, bool noisy = true)
        {
            var rand = new Random((int)DateTime.Now.Ticks);

            //generate new question
            int a = rand.Next(10, 99);
            int b = rand.Next(0, 9);
            var captcha = string.Format("{0} + {1} = ?", a, b);

            //store answer
            Session["Captcha" + prefix] = a + b;

            //image stream
            FileContentResult img = null;
            using (var mem = new System.IO.MemoryStream())
            using (var bmp = new System.Drawing.Bitmap(130, 30))
            using (var gfx = System.Drawing.Graphics.FromImage((System.Drawing.Image)bmp))
            {
                gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
                gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                gfx.FillRectangle(System.Drawing.Brushes.White, new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height));

                //add noise                
                if (noisy)
                {
                    int i, r, x, y;
                    var pen = new Pen(Color.Yellow);
                    for (i = 1; i < 10; i++)
                    {
                        pen.Color = Color.FromArgb(
                        (rand.Next(0, 255)),
                        (rand.Next(0, 255)),
                        (rand.Next(0, 255)));

                        r = rand.Next(0, (130 / 3));
                        x = rand.Next(0, 130);
                        y = rand.Next(0, 30);

                        gfx.DrawEllipse(pen, x - r, y - r, r, r);
                    }
                }

                //add question
                gfx.DrawString(captcha, new System.Drawing.Font("Tahoma", 15), System.Drawing.Brushes.Gray, 2, 3);

                //render as Jpeg
                bmp.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg);
                img = this.File(mem.GetBuffer(), "image/Jpeg");
            }

            return img;
        }

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 8 خرداد 1396
  • 18:15

شاید خود کتابخانه اش مشکل داره

از یک نمونه دیگه استفاده کنید

کاربر سایت

m.amin1964

عضویت از 1395/03/01

  • دوشنبه 8 خرداد 1396
  • 18:57

کتابخانه کپچا منظورتونه ؟

اصلا کتابخانه نیست به وسیله همین ActionResulte من کپچا رو تولید میکنم و ازش استفاده میکنم ، بزای رفرش صفحه هم از یک درخواست آجاکسی میفرستم و بعد جایگذاری میکنم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 9 خرداد 1396
  • 09:39

بله الان متوجه شدم

کد رو Trace کنید ببینید روی کلید رفرش که میزنید آیا هربار وارد اکشن میشه ؟

اگر بله مشکل از کدهای ajax هست

کاربر سایت

m.amin1964

عضویت از 1395/03/01

  • سه شنبه 9 خرداد 1396
  • 15:03

بله هر بار وارد اکشن میشه ، ولی فقط بار اول تصویر رو تغییر میده ، سری های بعد وارد میشه ولی تغییر نمیده دیگه تصویر رو

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 9 خرداد 1396
  • 16:10

الان مشکل در اسکریپت است

بار اول درست کار میکنه ولی بار بعدی از کار میوفته

متاسفانه نمیتونم حدس بزنم مشکل کجاست و باید کدتون و اسکریپت ها Trace بشوند تا مشخص بشه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)