کاربر تایید شده
آخرین فعالیت ٢۰ ساعت پیش

@m-p

پارس کلیکی از ۶ ماه پیش

تجربه

5800

  • ٢ هفته پیش @m-p به بحث قابل دیدن نبودن بعضی صفحات سایت جواب داد.

    @netwons شما میتونید داخل دیتا بیس ی فیلد بسازید که میزان دسترسی های کاربر و ادمین رو مشخص میکنه و بعد میتونید ی middleware بسازید و داخل اون براساس میزان دسترسی صفحه رو نشون بدید و یا کاربران رو ریدایرکت کنید به ی صفحه دیگه(مثلا صفحه 404)

  • ٢ هفته پیش @m-p به بحث Uncaught TypeError در جاواسکریپت جواب داد.

    @m-p دلیلش رو پیدا کردم،کد دومی هم اون ارور رو داره ولی ارور نشون داده نمیشه،در واقع دلیل نشون دادن ارور else هست.

     else {
        console.log('error');
    }
  • ٢ هفته پیش @m-p به بحث Uncaught TypeError در جاواسکریپت جواب داد.

    @amir ممنون از راهنماییتون ولی ی نکته که هست کد زیر دقیقا شبیه همین کد هست ولی هیچگونه اروری ندارد.دلیلش چی میتونه باشه؟؟؟!!!

    var request
    
    if (window.XMLHttpRequest) {
      request = new XMLHttpRequest()
    } else {
      request = new ActiveXObject('Microsoft.XMLHTTP')
    }
    
    request.open('GET', 'data.xml')
    // request.open('GET', 'http://localhost:4046/api/values.asmx')
    request.onreadystatechange = function () {
      if (request.readyState === 4 && request.status === 200) {
        var items = request.responseXML.getElementsByTagName('name');
        var output = "<ul>";
    
        for(var i=0;i<items.length;i++)
        {
          output+="<li>"+items[i].firstChild.nodeValue+"</li>";
        }
    
        output+="</ul>";
        document.getElementById('update').innerHTML=output;
      }
    }
    
    request.send()
  • ٣ هفته پیش @m-p یک بحث به اسم Uncaught TypeError در جاواسکریپت درست کرد.

    با عرض سلام و خسته نباشید خدمت دوستان گرامی.

    چند لاین کد ajax نوشتم که کار میکنه ولی همزمان ارور هم میده.

    Uncaught TypeError: Cannot read property 'getElementsByTagName' of null at XMLHttpRequest.request.onreadystatechange

    مشکل این کد کجا میتونه باشه؟؟؟!!!

    • ی نکته وجود داره و اینکه این ارور زمانی نمایش داده میشه که قسمت اول شرط request.readyState === 4 && رو برمیدارم،در غیر این صورت فقط error رو لاگ میزنه.
    function ajax_XML(){
            var request;
            if(window.XMLHttpRequest){
                request = new XMLHttpRequest();
            }else{
                request = new ActiveXObject('Microsoft.XMLHTTP');
            }
            request.open('GET','ajax.xml');
            request.onreadystatechange = function(){
    
                if(request.readyState === 4 && request.status === 200){
                    var items = request.responseXML.getElementsByTagName('Name');
    
                    var output = "<ul>";
    
                    for(var i = 0;i<items.length;i++){
                        output+="<li>" + items[i].firstChild.nodeValue + "</li>"
                    }
                    output+="</ul>";
                    document.getElementById('ajax_xml').innerHTML=output;
                }else{
                    console.log('error');
                }
            }
            request.send();
        }
  • ۴ هفته پیش @m-p به بحث تحریم گیت هاب علیه کاربران ایرانی جواب داد.

    @amir دلیل اینکه آمریکا و یا هیچ کمپانی نمیتونه بدون زیان کردن اونارو تحریم کنه اینه که به کسی وابسته نیستن،ببینین ما الان هممون عضو یک انجمن برنامه نویس هستیم و همممون کم و بیش مهارت های خوبی داریم،به این نکته فکر کنید که ما قدرت این رو داریم که یک مخزن شبیه به git hub بسازیم،پس چرا اینکار رو نکنیم و خودمون از پلتفرم خودمون استفاده نکنیم،و اینطوری کارها و پروژه هامون هم امن میمونه و همچین ااتفاقی نمیوفته.

    اگر هرکدوممون یک گوشه کار رو بگیره به راحتی انجام میشه.
    لطفا نظرتون رو در این باره بگید
  • ۴ هفته پیش @m-p به بحث تحریم گیت هاب علیه کاربران ایرانی جواب داد.

    با عرض سلام و خسته نباشید خدمت دوستان، من اینجا تمام بند های تحریم علیه ایران توسط دولت آمریکا ذکر شده و من نتونستم بندی درباره این کار گیت هاب پیدا کنم.

    در واقع گیت هاب با بهانه تحریم ها نمیتونه این کار رو بکنه ،و اگر تحریمی در این باره باشه تنها در مورد شرکت ها و موسسه های وابسته به دولت و سپاه هست و نه بیشتر.

    من به شخصه این کار رو محکوم میکنم و با راه اندازی کمپین موافقم

  • ۴ هفته پیش @m-p به بحث مشکل نصب اوبونتو در کنار ویندوز جواب داد.

    @jserver دوست عزیز نکته مهم اینه که هر چیزی داخل سیستم از دست بره و از RAM خارج شده باشه قابل بازیابی هست فقط باید داخل ننت روش های مختلف رو امتحان کنید تا به جواب برسید.

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

  • کد نویسی از پایه و استفاده نکردن از فریمورک ی کار اشتباه هست به سه دلیل خیلی مهم:
    • دلیل اول اینکه سرعت ساخت اپلیکیشن و کیفیت کد ها رو خیلی پایین میاره
    • دلیل سوم راحتی خوندن کد ها
    • و از همه مهمتر اینکه امنیت اپلیکیشن رو کم میکنه، چون فریمورک هر روزه توسط هزاران نفر داره استفاده میشه و هر استفاده به منزله یک تست هست که اگر مشکلی باشه سریع دیباگ میشه ولی کد هایی که از پایه نوشته شدن فقط توسط نویسنده تست میشه،حالا شما فکرش رو بکن با این همه حملاتی که هر روزه داره انجام میشه و اکثرا هم بی هدف و فقط برای اثبات قدرت هست چه اتفاقی میتونه برای ی اپ که امتحان خودش رو پس نداده بیوفته.

    اگر هم میتونید در پایه نویسی کد ها امنیت رو به خوبی برقرار کنید(حداقل باگ های معروف رو نداشته باشید)،میشه باهاش کنار اومد

    البته این رو هم در نظر بگیرید که کد های ی پروژه دولتی نباید از هیچ نوع الگویی پیروی کنه تا به ی هدف ساده بدل نشه،دیگه تصمیم با خودتونه

  • ٢ ماه پیش @m-p به بحث مشکل نصب اوبونتو در کنار ویندوز جواب داد.

    @jserver

    طبق مراحل پایین باید ویش بری :
    • وارد قسمت secure Bootشو.

    ۱. os type رو بذار روی windows.

    ۲.وارد قسمت key management شو و pk managementرو پاک(delete)کن.

    ۳. برگرد و اگر دیدی secure Bootغیر فعال (disable)شده.اون وقت os type رو بذار روی other os.

    بعد از هر مرحله تغیرات رو saveکن. البته این مراحل رو باید قبل از نصب انجام میدادی

  • ٣ ماه پیش @m-p به بحث مشکل نصب اوبونتو در کنار ویندوز جواب داد.

    @jserver این مشکل هیچ ربطی به درایو C: نداره بلکه باید از داخل بایوس و در قسمت بوت،قسمت مربوط به نشون دادن همه سیستم عامل های فعال رو فعال کنی،احتمالش هست که بایوست bootableنباشه

  • ٣ ماه پیش @m-p به بحث ایجاد بخش فعالیت کاربری جواب داد.

    @behzad قبل از هر کاری ابتدا به شکل زیر به دیتا بیس وصل شو

    <?php
        $mysqli = new mysqli("localhost", "username", "password", "dbname");
    ?>

    بعد از اون با استفاده از ی فانکشن شبیه کد پایین(میزان پیچیدگی به نوع نیاز خودت بستگی داره)

    <?php
    function familyName($fname, $year) {
        echo "$fname Refsnes. Born in $year <br>";
    }
    
    familyName("Hege", "1975");
    familyName("Stale", "1978");
    familyName("Kai Jim", "1983");
    ?>

    و به جای familyName("Hege", "1975"); از کد زیر برای استفاده از داده مورد نیازت استفاده کن.

    <?php
        $result = $mysqli->query("SELECT lastname FROM employees");
    ?>
    راه دومی که داری اینه که از طریق آبجکت به دیتا بیس وصل و اطلاعات رو به کار بگیری،به روش زیر
    • برای وصل شدن به دیتا بیس به شکل زیر عمل کن :
      <?php
      $myPDO = new PDO('mysql:host=localhost;dbname=dbname', 'username', 'password');
      ?>
    • برای استفاده از داده ها به جای familyName("Hege", "1975"); از کد پایین استفاده کن :
      <?php
      $result = $myPDO->query("SELECT lastname FROM employees");
      ?>
      راه سوم اینه که از طریق خروجی به دیتا بیس وصل شی،به شکل زیر
    • برای وصل شدن به دیتا بیس به شکل زیر عمل کن
      <?php
      mysql_connect('localhost','username','password');
      mysql_select_db("dbname");
      ?>
    • برای استفاده از داده ها به جای familyName("Hege", "1975"); از کد زیر استفاده کن
      <?php
      $result = mysql_query('SELECT lastname FROM employees');
      ?>

      نکته : میتونی ی متغیر به عنوان ورودی به فانکشن بدی و در جا های مختلف ازش استفاده کنی، با استفاده از functionname(); میتونی از وریبل دیفالتی که به فانکشن دادی استفاده کنی و حجم کد نویس رو کمتر کنی.

  • ٣ ماه پیش @m-p به بحث ایجاد بخش فعالیت کاربری جواب داد.

    @behzad فقط لازمه که روابط بین جداول رو برقرار کنی و در فرنت،دیتا های مورد نظرت رو داخل قسمت های مربوطه past کنی.

  • ٣ ماه پیش @m-p به بحث مشکل نصب اوبونتو در کنار ویندوز جواب داد.
    سلام به احتمال زیاد اینجا میتونید جواب مشکلتون رو پیدا کنید.

    یک نکته قابل توجه اینه که خود من اوبونتو 18.3 رو روی DVD با استفاده از Rufus بوت کردم و بدون مشکل نصب شد.اما روی فلش حتی نمیشناختش چه برسه به اینکه بهم ارور بده.

  • نکته اول اینکه داخل همین فایلتون ی ارور دارید اول از همه تگ img رو ببندید نکته دوم اینه احتمالا داخل فایلی که فراخوانی میکنید یک syntax error دارید که باعث میشه require once اجرا نشه و نکته آخر هم اینه که به احتمال زیاد مسیر دهی تون اشتباه هست و یا یک فولدر رو در کسیر دهی فراموش کردید.

  • @woohee سلام دوباره. سورس رت رو باز کردم و دیدم که کد ها به صورت فوقالعداه سختگیرانه بسته و کد گذاری شده اند و عملا غیر قابل خوندن هستن و دیکود کردنش هم تقریبا غیر ممکنه.در کل نتونستم به سورس دسترسی پیدا کنم ولی با این سختگیری در بسته شدن کد ها صد در صد گیر آنی ویروس میوفته و هیچ کاری نمیتونه پیش ببره. البته این نظر شخصیه منه و شاید یکی دیگه بتونه کد ها رو باز کنه و طرز کارشون رو بفهمه

  • ۴ ماه پیش @m-p یک بحث به اسم اتوماسیون درست کرد.
    با عرض سلام و خسته نباشید خدمت دوستان و همکاران گرامی.

    در مورد 2 پیشنهاد کاری نیارمند کمک هستم.

    • شرکت اول شرکتی هست که قبلا هم داخلش مشغول به کار بودم قبل از اون هم کارآموزشون بودم تا برنامه نویسی رو یاد بگیرم و کارشون فقط برنامه نویسی(سمت سرور و کلاینت و ...) هست و میخوان ودشون رو آپدیت کنند و در سطح بین الملل کار کنن ولی تا زمانی که زیر ساخت هاشون رو عوض کنن باید نزدیک به دو ماه بی کار باشم و وقتم کاملا آزاد هست.

    • شرکت دوم ی شرکت اتوماسیون هست که 2 بخش نرم افزار و سخت افزار رو داره،قسمت برنامه نویسی فقط سمت سرور هست و اغلب اوقات edit کردن کد های نوشته شده هست و تا زمانی هم که کد هه از اول نوشته نشن باید با همون زبان کار کرد(تقریبا ارتقاع سطحی برای برنامه نویس وجود نداره) و سمت سخت افزار هم بیشتر سیمکشی و اینطور چیز هاست.

    ممنون میشم از کمکتون و اینکه تجربیاتتون رو در اختیارم بذارید.

  • @woohee موقع نصب هر برنامه داخل گوشی ی دسترسی هایی میخواد که باید اونا رو تایید کنید تا برنامه نصب بشه،نکته اینجاست که یکی از این دسترسی ها این امکان رو داره که بدون اجرا نشدن برنامه به رت اجازه بده که ی کارهایی رو انجام بده،دقیقا مث تلگرام و فیسبوک منیجر(شما اینترنت رو روشن میکنید ولی هیچکدوم از این 2 برنامه رو اجرا نمیکنید ولی آلرت پیام ها براتون میاد).

    حالا نکته اینجاست که این رت از این قابلیت استفاده میکنه اما نکته اساسی این جاست که از راه درست و دسترسی تایید شده این کار رو نمیکنه و چون در اون صورت گیر آنتی ویروس میوفته.

    برام سورس رو به ایمیل [email protected] بفرستید تا برسیش کنم.فقط ی کم سریع چون خیلی کنجکاوم کردید.

  • ی نصیحت دوستانه،هیچ وقت از اپلیکیشن هایی که بهتون ی چیز آماده میدن استفاده نکنید(مث Spynote و ... )،به سه دلیل
    • اول اینکه اگر رت (منظورم از رت همون عامل نفوذ هست)،ویروس،ورم ویا هر چیز دیگه رو خودتون بسازید اول اینکه مطمئن هستید که دقیقا همون کارهایی رو که میخواید براتون انجام میده و دوم اینکه کنترلش در دست شماست(منظور : اطلاعات فقط به دست شما میرسه).
    • دوم اینکه ی کم منطقی باشید آیا کسی که میاد و ی اپ مینویسه که میتونه ی عامل نفوذی بسازه آیا نمیتونه داخل کد های اپ خودش ی تکه کد بزاره که از اون طریق به خودتون اتک بزنه و در اختیارش باشید و به ی زامبی تبدیل بشید و اینکه شاید اون اطلاعات فقط برای شما ارسال نشه و افراد دیگه ای هم در کار باشند.
    • سوم اینکه اگر خودتون ی چیزی رو بسازید در بد ترین حالات میدونید که چطوری اون(مخلوق خودتون)رو از دید آنتی ویروس پنهان کنید
  • @woohee همونطور که گفتم و از پاسخ شما هم معلومه با ی آسیب پذیری اساسی داخل اندروید 6 به بالا روبرو هستیم که حتی به رت هایی که توسط Spynoteساخته میشن هم این اجازه رو میده که به پرمیشن های مورد نیاز رو بگیره. پس دیگه بحثی نمیمونه همه چیز مشخص و مفهومه.

  • به نظر من میتونه دلیلش این باشه که ی باگ زیرو دی داخل اندروید 6 به بالا هست که اکسپلویت شده و از این اکسپلوست داخل ی ویروس استفاده شده و این ویروس ی قسمت از اون رت هست و که همزمان با اجزا های لازمه برای نصب اپ فعال میشه و هدف رو زمین گیر میکنه. دلیل دوم این میتونه باشه که با ی رت فوق العاده هوشمند مثل ویروس استارکس نت روبرو هستید ک میتونه موقعیت خودش رو بشناسه که چه زمانی چه کاری کنه،در این مورد باز هم به ی کد مخرب که دربالا توضیح دادم نیاز داره.

    2 تا نتیجه هست:

    • رت کارش رو همزمان با نصب شروع میکنه که در این صورت قبل از شروع کار رت اکسپلویتش عمل میکنه
    • ویروس نویسی فوق حرفه ای

    در موارد بالا 2 تا نقطه مشترک وجود داره اول ی آسیب پذیری ziro day دوم اکسپلویت شدن اون آسیب پذیری که باعث میشه یه تکه کد قبل از اجرا توسط کاربر اجرا بشه

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @woohee پشت پرده آدرس سایت ها با ی نوع حروف دیگه که فقط کامپیوتر اونا رو میفهمه ساخته میشه و بعد به حروف الفبا ترجمه میشه و به ما تحویل داده میشه و با عوض کردن یکی از این حروف میشه ی ادرس انحصاری مثل gmai.com رو از اول به نام خودتون و در کنار آدرس اصلی سایت ثبت کنید و داخل گوگل و بقیه موتور های جست و جو هم بدون مشکل بالا بیاد.البته بهتون باید اینو بگم که این کار در همه جای دنیا جرم محسوب میشه.

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @woohee از نظر قانونی این غیر ممکنه،چون از این روش برای حملات فیشینک استفاده میشه مثلا پشت زمینه آدرس gmail.com رو تغییر میدن و سایت مورد نظر خودشون رو با gmail.com بالا میارن و محتوای مورد نظرشون رو قرار میدن و این یه حمله فیشینگ هست.منظور شما هم دقیقا ی همچین چیزی هست که میخواید آدرس سایتتون مال ی سایت دیگه باشه ولی با محتوای شما که البته امکانش هست و کار 5 دقیقس ولی همونطور که گفتم و دوست عزیزمون هم بهتون گفت این ی حمله فیشینگ به حساب میاد و ممکنه براتون دردسر بشه.

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @woohee خب ی Middleware بساز که قبل از هر چیزی اجرا میشه و آدرس ها رو ریدایرکت کنه به آدرسی که خودت میخوای،وتنها کاری که باید بکنی اینه که روت های جدیدی بسازی که همون کار روت های قدیمی رو بکنن،و یا میتونی روت ها رو دونه دونه ریدایرکت کنی

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @woohee
    popstate همون آدرس اصلی سایت هست که در قسمت event رویداد هایی که داخل سایت انجام میشه رو زیر نظر میگیره و در قسمت homepage هم که آدرس فعلی صفحه مورد نظر رو مینویسید،داخل شرط هم تغییر آدرس رو مینویسید،مثلا آدرس اینه -> 'http://my-app-url.com/?p=homepage' و همچنین میتونید داخل شرط از فانکشن history.pushState به شکل زیر استفاده کنید.

    history.pushState({
        id: 'homepage'
    }, 'pageTitle', url);

    ی نکته : اگر قبل از انجام همه این شروط homepage رو داخل ی وریبل تعریف کنید خیلی بهتره.

    تکه کد بالا یک مدل ساذه هست و شما بر اساس خواستتون باید تغیرش بدید.

    در ضمن نکته ای که هست اینجاست که این قابلیت زمانی کار میکنه که کاربر بخواد روی دکمه عقب یا جلو(بالای مرورگر که به صفحات قبل یا بعد میره)کلیک کنه کار میکنه.اگر این مدل مد نظرتون هست این روش میتونه کاربردی باشه. اگر روش دیگه ای مد نظرتون هست احتمالا کار نمیکنه.

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @woohee این رو امتحان کن.

    window.addEventListener('popstate', function (event) {
        if (history.state && history.state.id === 'homepage') {
            // Render new content for the hompage
        }
    }, false);

    اگر جواب نداد باز اطلاع بده

  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.
    میتونی از شرط هم استفاده کنی.
    if (history.pushState) {
      window.history.replaceState(“object or string”, “Title”, “/another-new-url”);
    } else {
      document.location.href = "/new-url";
    }
  • ۴ ماه پیش @m-p به بحث تغییر url بدون لود شدن صفحه وب جواب داد.
    سلام.این مقاله بهت کمک میکنه.

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

    window.history.replaceState(“object or string”, “Title”, “/another-new-url”);

    اگر کارساز نبود بگو.

  • ۴ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @amir ممنون از پیشنهادتون ولی برای مایگریشن ها و جداول همون کاری که گفتید رو قبلا انجام داده بودم و تمام مایگریشن ها و جدول ها بدون فارن کی ساخته شده و بعد در آخر فارن کی ها داخل ی مایگریشن جداگونه ساخته شده. بابت پیشنهاد NOSQL و Redis هم ممنون و ی سوال برای استفاده ازشون فقط کافیه داخل config\database.php حالت دیفالت رو تغییر بدم یا باید کامل یادشون بگیرم؟؟؟!!!

  • ۴ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @mohammad-hemmati نکته دیگه ای که هست با کامنت کردن ‍foreign key که ارور داره داخل foreign key بعدی که مربوط به ی جدول دیگه هست بازم همین ارور رو میده ولی اونم مشکوک نیست.

    • اینم ارورش

      1825 Failed to add the foreign key constraint on table 'advertising_category'. Incorrect options in FOREIGN KEY constraint 'project/advertising_category_category_id_foreign'")

      جداول درگیر :

    • foreign key

      Schema::table('advertising_category', function(Blueprint $table)
          {
              $table->engine = 'InnoDB';
              $table->foreign('category_id')->references('id')->on('category')->onDelete('cascade')->onUpdate('cascade');
              $table->foreign('advertising_id')->references('id')->on('advertising')->onDelete('setnull')->onUpdate('cascade');
          });
    • advertising_category

      Schema::create('advertising_category', function (Blueprint $table){
              $table->engine = 'InnoDB';
              $table->increments('id');
              $table->integer('category_id')->nullable(); 
              $table->integer('advertising_id')->nullable();
          });  
    • category

      chema::create('category', function (Blueprint $table){
               $table->engine = 'InnoDB';
               $table->increments('id')->unsigned();
               $table->string('body')->nullable();
               $table->timestamps();
      
          });
  • ۴ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @mohammad-hemmati

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

    براساس پروژه مجبور شدم چند تا تغییر داخل جداول بدم و چند تا جدول جدید هم اضافه کنم. foreign key ها رو داخل ی جدول جداگانه(بعد از همه جدول ها تا همه موارد مورد نیاز رو داشته باشه) و Constraints برای foreign key رو هم غیر فعال (disable) کردم و ارور تغیر کرد به :

    1825 Failed to add the foreign key constraint on table 'advertising'. Incorrect options in FOREIGN KEY constraint 'project/advertising_payment_situationـstatus_foreign'")

    اما مسئله جدید اینجاست که هیچ مورد مشکوکی نه در foreign key و نه در جداول مربوط نمیبینم.جدول های مرتبط رو پایین آوردم.

    • foreign key

      Schema::table('advertising', function(Blueprint $table)
          {
              $table->engine = 'InnoDB';
              $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
      
              $table->foreign('professional_id')->references('id')->on('professional')->onDelete('restrict')->onUpdate('cascade');
              $table->foreign('status_condition')->references('id')->on('status')->onDelete('Restrict')->onUpdate('cascade');
              $table->foreign('payment_situationـstatus')->references('status')->on('payment_situation')->onDelete('restrict')->onUpdate('cascade');
          });
    • advertising

      chema::create('advertising', function (Blueprint $table){
              $table->engine = 'InnoDB';
              $table->increments('id')->unsigned();
              $table->integer('user_id')->unsigned();
              $table->string('ranking')->nullable();
              $table->integer('status_condition')->unsigned()->nullable()->default(0);
              $table->string('name')->nullable();
              $table->string('family')->nullable();
              $table->string('phone')->nullable();
              $table->string('email')->nullable();
              $table->string('address')->nullable();
              $table->string('country_city')->nullable();
              $table->string('employer')->nullable();
              $table->string('official')->nullable();
              $table->time('start_date_of_cooperation')->nullable();
              $table->time('end_date_of_cooperation')->nullable();
              $table->string('employer_relationship')->nullable();
              $table->string('body')->nullable();
              $table->string('facebook')->nullable();
              $table->string('twitter')->nullable();
              $table->string('instagram')->nullable();
              $table->string('telegram')->nullable();
              $table->integer('professional_id')->unsigned()->nullable();
              $table->integer('payment_situationـstatus')->unsigned()->default(0);
              $table->timestamps();
      
          });
    • payment situation
      Schema::create('payment_situation', function (Blueprint $table) {
              $table->engine = 'InnoDB';
              $table->increments('id');
              $table->string('body')->nullable();
              $table->integer('status')->nullable()->numeric()->index();
              $table->timestamps();
          });=
  • ۴ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @katerou22 بله از mysql استفاده میکنم ولی این دستور (FOREIGN_KEY_CHECKS=0;)رو چطور استفاده کنم؟؟؟!!!(نتونستم جای درستش رو پیدا کنم)

  • با عرض سلام،دوست گرامی من پیشنهاد میکنم که کلا از پلاگین wordpress استفاده نکنید و بجاش از php یا Laravel استفاده کنید،چون علاوه بر اینکه سرعت و قدرت در php بیشتر هست،برای سایت های فروشگاهی که امکانات خاصی دارند بهتره که از php استفاده بشه،و از wordpress برای سایت های شرکتی(درکل سایت هایی که امکانات خاصی ندارند) خیلی خوب میشه استفاده کرد. علاوه بر این این پلاگین رو به زبان php حتما میتونید اینجا (گیت هاب) پیدا کنید.

  • ۴ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @katerou22 خیلی ممنون از جوابتون ولی فارن کی ها رو داخل ی مایگریشن جداگونه و در آخر از همه نوشتم ولی بازم بهم ارور داد و در نتیجه مجبور شدم برای تکمیل شدن رابطه ها،با توجه به اینکه فارن کی ها مشکلی نداشتن مجبور شدم با استفاده از کد Schema::disableForeignKeyConstraints(); محدودیت های ادد شدن فارن کی ها رو غیر فعال کنم.

    ولی همچنان مشکل پا برجاست و در واقع میشه گفت از حل مسئله فرار کردم.

    باز هم از جوابتون ممنونم.

  • ۵ ماه پیش @m-p به بحث اضافه نشدن foreign key جواب داد.

    @amin سلام،اگر میشه در مورد راه اول ی کم بیشتر توضیح بدید،نوع ستون ها رو هم برابر با هم قرار دادم ولی بازم جواب نداد.

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

    حتی آیدی رو با آیدی join کردم بازم بهم همون ارور(general error: 1251 cannot add foreign key constraint) رو بهم داد

  • ۵ ماه پیش @m-p یک بحث به اسم اضافه نشدن foreign key درست کرد.

    با عرض سلام و خسته نباشد خدمت دوستان گرامی.

    در migration زیر،foreign key های نوشته شده اضافه نمیشوند و ارور general error:cannot add foreign keyconstraint رو میده،نکته قابل توجه اینجاست که هر جدولی که بیشتر از یک foreign key داشته باشه این ارور رو میده.

    کد یکی از جدول ها رو پایین نوشتم(بابت طولانی بودن کد شرمنده).

    • جدولی که ارور میده
    public function up()
        {
            Schema::create('advertising', function (Blueprint $table){
                $table->increments('id');
                $table->integer('user_id')->unsigned()->index();
                $table->string('ranking')->nullable();
                $table->string('status')->nullable();
                $table->string('name')->nullable();
                $table->string('family')->nullable();
                $table->string('advertising_name')->nullable();
                $table->string('phone')->nullable();
                $table->string('email')->nullable();
                $table->string('address')->nullable();
                $table->string('country-city')->nullable();
                $table->integer('category_id')->nullable();
                $table->string('week_days')->nullable();
                $table->string('time_open')->nullable();
                $table->string('time_close')->nullable();
                $table->string('body')->nullable();
                $table->string('facebook')->nullable();
                $table->string('twitter')->nullable();
                $table->string('instagram')->nullable();
                $table->integer('service_garanti_id')->unsigned()->nullable();
                $table->integer('professional_id')->unsigned()->nullable();
                $table->integer('insurance_Limit_id')->unsigned()->nullable();
                $table->timestamps();
    
                $table->foreign('user_id')->references('id')->on('users')
                ->onDelete('cascade')->onUpdate('cascade');
    
                $table->foreign('service_garanti_id')->references('id')->on('service_garanti')
                ->onDelete('restrict')->onUpdate('cascade');
    
                $table->foreign('professional_id')->references('id')->on('professional')
                 ->onDelete('restrict')->onUpdate('cascade');
    
                $table->foreign('insurance_Limit_id')->references('id')->on('insurance_limit')
                 ->onDelete('restrict')->onUpdate('cascade');
            });  
    • جداول مربوط به foreign key
    public function up()
        {
            Schema::create('users', function (Blueprint $table) {
                $table->increments('id');
                $table->string('name')->unique();
                $table->string('email')->unique();
                $table->timestamp('email_verified_at')->nullable();
                $table->string('password')->nullable();
                $table->string('phone')->unique()->nullable();
                $table->string('Date_of_birth')->nullable();
                $table->integer('status_Condition')->nullable();
                $table->string('address')->nullable();
                $table->rememberToken();
                $table->timestamps();
    
            });
    
        }
    public function up()
        {
            Schema::create('service_garanti', function (Blueprint $table){
                $table->increments('id');
                $table->string('body')->nullable();
                $table->timestamps();
            });
    
        }
    public function up()
        {
            Schema::create('Professional', function (Blueprint $table){
                $table->increments('id');
                $table->string('body')->nullable();
                $table->timestamps();
            });
        }
    public function up()
        {
            Schema::create('Insurance_Limit', function (Blueprint $table){
                $table->increments('id');
                $table->string('body')->nullable();
                $table->timestamps();
            });
        }
  • ۵ ماه پیش @m-p به بحث نصب لاراول در ابونتو ۱۸.۱۰ جواب داد.

    @president درسته،ولی مشکلی که یک کم منو گیج کرد داکیومنت لاراول بود که که آدرس ~/.config/composer/vendor/bin رو پیشنهاد داده بود که ظاهرا غلط بوده،بازم ممنون

  • ۵ ماه پیش @m-p یک بحث به اسم نصب لاراول در ابونتو ۱۸.۱۰ درست کرد.

    سلام داشتم لاراول رو روی اوبونتو جدیدم نصب میکردم و بعد از ادیت کردن فایل .bashrc اکسپورت کردن $PATH.دستور لاراول اجرا نشد و همین دلیل کلی وقتم رو گرفت. من به صورت اتفاقی سیستم رو ریستارت کردم و بعد از اون دیدم که لاراول اوکی شده.اگه به این مشکل خوردین ی ریستارت نیاز دارین تا اوبونتو لاراول رو بشناسه.

  • phpرو نمیشه به عنوان یک زبان سمت کاربر مث html یا css شناخت و ازش ااستفاده کرد ولی نکته که وجود داره شما میتونین در پروژه هایی که با php خام نوشته شده و یا در لاراول ( در فایل blade)به کمک php طریقه اجرا شدن کد های html و ... رو کنترل کنید(در واقع از ی منطق پیروی کنن).

  • ۵ ماه پیش @m-p به بحث پیدا کردن حفره امنیتی جواب داد.

    @woohee ببین مثلا برای ایجاد باگ sql باید ی وریبل غیر متعارف به دیتا بیس اضافه شده باشه،مثلا شما اگر زبانphp و sql رو خوب بلد باشی(حرفه ای باشی)،با دونستن ورژن زبانی که اپ با اون نوشته شده میتونی بفهمی که در کدوم قسمت از اپ باید چیکار کنی که اپ آسیب پذیر بشه(باگ ایجاد بشه) و یا مثلا sql که بدونی چه ورژنی چه ضعفی داره و بتونی استفاده کنی و اگر ضعف داشت بتونی ضعف(آسیب پذیری)رو پیدا کنی(راه خیلی راحتی برا پیدا کردن باگ sqlاینه که به روت هایی که آخرشون برابر(=) با ی چی(عدد-متن و ...)،ی علامت سینگل کوتیشن( ' ) اضافه میکردیم،اگه باگی نبود نباید ارور میداد و صفحه دوباره لود میشد).

    در کل برا مسموم کردن تارگت باید ضعف های زبانی که تارگتت باهاش نوشته شده رو بدونی(این امر هم فقط با حرفه ای شدن داخل اون زبان امکان پذیر هست)تا بتونی ازشون سوء استفاده کنی.

  • سلام من خودم از شرکت برتینا هاست میگیرم و کارشونم خوبه،هم سرعت هاستشون بالاست و هم تمام موارد مورد نیاز لاراول رو داره،فقط تنها مشکلی که دارن اینه که امکان ست کردن کرون جابز از داخل پنل هاست نیست و باید بهشون تیکت بزنی تا خودشون ست کنن و مورد بعدی اینه که داخل هاست اشتراکی کرون جابز رو کمتر از 5 دقیقه ست نمیکنن.هم هاست ایرانی دارن هم خارجی و سرویس های دیگه هم دارن. در کل من خودم ازشون راضی ام فقط قیمتشون ی کم بالاست.

  • ۶ ماه پیش @m-p به بحث فریمورک جنگو جواب داد.

    @woohee

    ممنون از راهنماییت
  • ۶ ماه پیش @m-p به بحث پیدا کردن حفره امنیتی جواب داد.
    • نیاز بعدی اینه که مفاهیم شبکه رو بلد باشی
    • بعد از شبکه باید CEH رو بلد باشی یا حداقل کار با کالی لینوکس رو بلد باشی و ابزار ها رو کامل بشناسی چون کالی برای نفوذ طراحی شده و اگر بخوای داخل کارت پیشرفت کنی حتما بهش نیاز داری.
    • این سایت nabegheha.com میتونه توی این مورد بهت کمک کنه.
    • مورد بعدی که نیاز داری آشنایی با اکثر باگ های معروف و دلیل ایجاد شدنشون(مربوط به اینجکت)
    • در کل بحث خیلی گسترده ای هست و خیلی هم شاخه های مختلف داره.
    • در ضمن از به خرج دادن خلاقیت و انجام روش های غیر معمول هم نبایید بترسی(برای مثال مهندسی اجتماعی فیشینگ که نیازمند خلاقیت بالا هستن)
  • ۶ ماه پیش @m-p به بحث پیدا کردن حفره امنیتی جواب داد.

    سلام.در وحله اول باید بدونی که ی نفوذگر و هکر واقعی کسی هست که برنامه نویس خوبی باشه پس اولین کار باید یاد گرفتن ی زبان برنامه نویسی و ی توزیع لینوکسی باشه.

    زبان های خیلی خوب و قوی pyton و javascrypt و C# و C++ زبان های هستن که برای نوشتن اکسپلویت اختصاصی بدردت میخورن و خیلی قوی هستن توسط نفوذگران قوی استفاده میشه.

    با توجه به اینکه میخوای فعلا روی وب اپلیکیشن کار کنی زبان ‍‍‍php و sql بدردت میخوره.

    مبحث کلام اینه که برای نفوذ به بعضی آپ ها مثل آمازون که هیچ باگ معروفی ندارن باید بتونی داخلشون باگ ایجاد کنی (اصطلاحا دیتا اینجکت کنی(مسموم کردن هدف)).در نتیجه به برنامه نویسی نیاز داری