۸ خرداد، ۱۴۰۰

٣ هفته پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم ارور در پوشه sass در زمان استفاده از laravel mix درست کرد.

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

در مسیر و فایل resources/sass/app.scss برای استفاده از laravel mix استایل های سی اس اس رو وارد میکنیم(‍[email protected])،مشکل من اینجاست که mixبا وارد کردن فایل های app.css و scss/bootstrap مشکلی ندارد اما با وارد کردن فایل های خارجی و حتی افزودن محتوای آنان به فایل ‍app مشکل دارد و ارور

ERROR in ./resources/sass/app.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/css-loader/dist/cjs.js):
Error: Can't resolve '../webfonts/fa-brands-400.woff2' in '/home/milad/Desktop/PersianBit/resources/sass'

را در زمان راه اندازی npm run dev نشان میدهد.

خیلی ریسرچ کردم و خیلی از ارور ها رو برطرف کردم و این ارور آخره آما زورم بهش نرسید.

  • محتوای فایل ‍app.scss:
// Fonts
@import url('https://fonts.googleapis.com/css?family=Nunito');

// Variables
@import 'variables';

// Bootstrap
@import '~bootstrap/scss/bootstrap';
@import '../css/app';

@import '../css/all.min';
@import '../css/bootstrap.min';
@import '../css/tooplate-style';

۱۲ فروردین، ۱۴۰۰

٣ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی اختلاف زمانی در تاریخ شمسی جواب داد.

@behzad تاریخ پست بر اساس تاریخ هاستتون تنظیم میشه و مشکلی پیش نمیاد

٣ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی اختلاف زمانی در تاریخ شمسی جواب داد.

این کلاس و متود های زمانی در php بر اساس زمان تنظیم شده در os شما کار میکنند،مشکل از تاریخ . ساعت سیستمتون هست باید اون رو تنظیم کنید که دقیق باشه در این صورت درست کار میکنه.

در ضمن هیچ ربطی به تغیرات ساعت نداره

٣ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی اختلاف زمانی در تاریخ شمسی جواب داد.

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

  • کد شما را تست کردم و مشکل از کد شما نبود احتمالا فانکشن jdate دستکاری شده،لطفا کد فانکشن را ارسال کنید تا بتونیم مشکل رو حل کنیم.

  • همچنین میتونید از فانکشن های دیگر مثل gregorian_to_jalali استفاده کنید به شکل زیر:

    $year = date("Y");
    $month = date("m");
    $day = date("d");
    
    // return string
    $jalali_time = gregorian_to_jalali($year,$month,$day,'/ ');
    echo $jalali_time;
    echo "<br>";

۲۶ بهمن، ۱۳۹۹

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی requierd نشدن پکیج Swagger جواب داد.

@amin میشه بگید چطور باید اینکار رو انجام دهم،توی گوگل در موردش خوندم اما نفهمیدم که چطور انجام داده میشه

۲۴ بهمن، ۱۳۹۹

۴ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم requierd نشدن پکیج Swagger درست کرد.

با عرض سلام و خسته نباشید خدمت دوستان پارس کلیکی عزیز،

من برای استفاده از یک api مجبور به استفاده از پکیج Swagger-php شده ام و این پکیج رو در سرویس composer و نصب نمودم و در فایل composer.json وارد شده است اما در زمان استفاده از کلاس های این پکیج ارور class...not found رو به من میده،اولین باره که به اینمشکل برمیخورم و از طریق گوگل سرچینگ هم نتونستم جواب به درد بخوری پیدا کنم.

  • نکته : این پکیج رو با همون روش پکیج های قبل نصب کردم و همه پکیج ها بهم جواب دادن(composer require [package name])

  • محتویات فایل composer.json

    {
    "require": {
        "guzzlehttp/guzzle": "^7.0",
        "phpmailer/phpmailer": "^6.2",
        "swiftmailer/swiftmailer": "^6.0",
        "zircote/swagger-php": "^3.1",
        "doctrine/annotations": "^1.11",
        "sendinblue/api-v3-sdk": "7.x.x"
    }
  • محتویات فایل autoload_real.php

    
    <?php
    class ComposerAutoloaderInit9a732474ebcdab3ca8b0d72c7250c12c
    {
    private static $loader;
    
    public static function loadClassLoader($class)
    {
        if ('Composer\Autoload\ClassLoader' === $class) {
            require __DIR__ . '/ClassLoader.php';
        }
    }
    
    /**
     * @return \Composer\Autoload\ClassLoader
     */
    public static function getLoader()
    {
        if (null !== self::$loader) {
            return self::$loader;
        }
    
        require __DIR__ . '/platform_check.php';
    
        spl_autoload_register(array('ComposerAutoloaderInit9a732474ebcdab3ca8b0d72c7250c12c', 'loadClassLoader'), true, true);
        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
        spl_autoload_unregister(array('ComposerAutoloaderInit9a732474ebcdab3ca8b0d72c7250c12c', 'loadClassLoader'));
    
        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
        if ($useStaticLoader) {
            require __DIR__ . '/autoload_static.php';
    
            call_user_func(\Composer\Autoload\ComposerStaticInit9a732474ebcdab3ca8b0d72c7250c12c::getInitializer($loader));
        } else {
            $map = require __DIR__ . '/autoload_namespaces.php';
            foreach ($map as $namespace => $path) {
                $loader->set($namespace, $path);
            }
    
            $map = require __DIR__ . '/autoload_psr4.php';
            foreach ($map as $namespace => $path) {
                $loader->setPsr4($namespace, $path);
            }
    
            $classMap = require __DIR__ . '/autoload_classmap.php';
            if ($classMap) {
                $loader->addClassMap($classMap);
            }
        }
    
        $loader->register(true);
    
        if ($useStaticLoader) {
            $includeFiles = Composer\Autoload\ComposerStaticInit9a732474ebcdab3ca8b0d72c7250c12c::$files;
        } else {
            $includeFiles = require __DIR__ . '/autoload_files.php';
        }
        foreach ($includeFiles as $fileIdentifier => $file) {
            composerRequire9a732474ebcdab3ca8b0d72c7250c12c($fileIdentifier, $file);
        }
    
        return $loader;
    }
    }
    function composerRequire9a732474ebcdab3ca8b0d72c7250c12c($fileIdentifier, $file)
    {
    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
        require $file;
    
        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
    }
    }

۱۸ بهمن، ۱۳۹۹

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل در اجرای یک یا چند عکس جواب داد.

@ahmadi کلیپ رو ساختم و اینجا در یوتیوب قرار دادم براتون

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل در اجرای یک یا چند عکس جواب داد.

@ahmadi برای من خیر،شاید به دلیل فرمت فرمت عکس استفاده شده توسط من ( jpg.) هست و باید بر اساس فرمت عکس خودتون تغیرش بدیید.

من از php 8 استفاده میکنم

۱۴ بهمن، ۱۳۹۹

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل در اجرای یک یا چند عکس جواب داد.

@ahmadi مشکل از ‍روت شما هست که به شکل :

$dirname = "C:/Users/George/Pictures/Camera Roll/";

نوشته شده،در صورتی که به جای بکاسلش باید از اسلش استفاده میکردید به شکل زیر:

$dirname = "C:\Users\Milad\Pictures\Camera Roll\";

در سیستم عامل یونیکس برای روتینگ از بک اسلش(/) و در ویندوز از اسلش(\) استفاده میکنیم&در ویندوز برای کمتر شدن اشتباهاتی از این قبیل بهتره که به فولدر مربوطه رفته و از منوی properties(کلیک راست در فولدر مربوطه) لینک را از قسمت locaion بردارید تا درصد اشتباه کمتر شود

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل در اجرای یک یا چند عکس جواب داد.

@ahmadi دوباره سلام،مشکل کد استفاده شده توسط شما در مسیر دهی بود،کد درست به شکل زیر هست و من ازش ریزالت گرفتم.

$dirname = "media/images/iconized/";
    $images = glob($dirname."*.jpg");
    $ignore = Array(".", "..");
    foreach($images as $curimg){
        if(!in_array($curimg, $ignore)) {
            echo "<img src='$curimg' /><br>\n";
        }
    }

۴ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل در اجرای یک یا چند عکس جواب داد.

کدی که داخل استک به عنوان سوال پرسیده شده بود:

$dirname = "media/images/iconized/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){
    if(!in_array($curimg, $ignore)) {
        echo "<img src='$dirname/$curimg' /><br>\n";
    }
}

رو تست کردم و جواب داد اما کدی که به عنوان پاسخ:

$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");

foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}

داده شده بود(کد استفاده توسط شما) جواب نداد،اگر کد رو تغییر دادید لطفان نمونه کد تغییر یافته و نمونه ارور رو بدید،تا بتونیم کمک کنیم

۴ بهمن، ۱۳۹۹

۵ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم ارسال ایمیل با پی اچ پی درست کرد.

با سلام خدمت دوستان،کد های زیر را جهت ارسال ایمیل از لوکال هاست نوشتم و کد اجرا میشه و هیچ اروری نمیده ولی نکته مهم اینه که هیچ ایمیلی از طرف کلاینت دیده نمیشه.در ضمن php.ini و sendmail برای ارسال ایمیل در حالت دیفالت هستند.

اگر مشکلی باشه احتمالا(نظر شخصی)از لاین ۱۴ به بعد هست

<?php

$data = array();

function validation($form){
    $form = trim(htmlspecialchars(stripcslashes(strip_tags($form))));
    return $form;
}

if($_SERVER['REQUEST_METHOD'] == 'POST'){

    if(isset($_POST['toemail']) && isset($_POST['subject']) && isset($_POST['message'])){

        $to_email = validation($_POST['toemail']);
        $subject = validation($_POST['subject']);
        $message = wordwrap(validation($_POST['message']),70);
        $headers = "From: [email protected]" . "\r\n" ."CC: $to_email";

        if((!empty($to_email) && preg_match('/^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/', $to_email)) && !empty($subject) && !empty($message)){

            try{
                if(mail($to_email, $subject, $message, $headers)){
                    $data['status'] = 400;
                    $data['data'] = "Email SuccessFully Sent";
                }
                else{
                    throw new Exception("Email Not Send");
                }
            }
            catch(Exception $e){
                $data['status'] = 404;
                $data['data'] = $e->getMessage();
            }

        }
        else{
            $data['status'] = 408;
            $data['data'] = "Data Not Validated";
        }

    }
    else {
        $data['status'] = 412;
        $data['data'] = "Access Denied";
    }

}
else{

    $data['status'] = 416;
    $data['data'] = "Access Denied";

}

echo json_encode($data);

?>

۲۶ دی، ۱۳۹۹

۵ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی انتخاب زبان برنامه نویسی در حوزه شبکه جواب داد.

@samikaner با تشکر از نظرتون،البته منظور از اشاره من به زبان های ‍C++ ، C صرفا اسکریپت نویسی نبود بلکه منظور برنامه نویسی ویروس هست که اکثرا با زبان های یاد شده و به خصوص با زبان assembly نوشته میشه،البته زبان های سی در ایران بیشتر شناخته شده هستند و مثال بهتری بودند. باز هم از بازخوردتون ممنونم

۲۴ دی، ۱۳۹۹

۵ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی ارور CORS policy جواب داد.

احتمالا شما در حال استفاده از یک وب سرویس هستید و به دلیل پیچیده بودن درخواست به این مشکل برخوردی توضیح بیشتر:

آنچه در سطح شبکه رخ می دهد می تواند کمی پیچیده تر از توضیحات بالا باشد. اگر درخواست یک درخواست "غیر ساده" باشد ، ابتدا مرورگر یک درخواست OPTIONS "بدون پرواز" بدون داده را ارسال می کند تا تأیید کند که سرور درخواست را قبول می کند. درخواست هر دو (یا هر دو) غیر ساده است: استفاده از فعل HTTP غیر از GET یا POST (به عنوان مثال PUT ، DELETE) استفاده از هدرهای درخواست غیر ساده ؛ تنها عناوین درخواست های ساده عبارتند از: تایید کنید پذیرش-زبان زبان محتوا نوع محتوا (این فقط زمانی ساده است که مقدار آن برنامه / x-www-form-urlencoded ، multipart / form-data یا text / plain باشد)

اگر سرور به پیشآگهی OPTIONS با هدرهای پاسخ مناسب پاسخ دهد (Access-Control-Allow-Headers برای هدرهای غیر ساده ، Access-Control-Allow-Methods برای افعال غیر ساده) که با فعل غیر ساده و / یا غیر مطابقت دارند سرصفحه های ساده ، سپس مرورگر درخواست واقعی را ارسال می کند.

با فرض اینکه سایت A می خواهد درخواست PUT را برای / somePage ارسال کند ، با مقدار غیر ساده نوع محتوا از برنامه / json ، مرورگر ابتدا یک درخواست قبل از پرواز را ارسال می کند:

OPTIONS / somePage HTTP / 1.1 منبع: http://siteA.com روش کنترل دسترسی-درخواست: قرار دهید دسترسی-کنترل-درخواست-عنوان ها: نوع محتوا

توجه داشته باشید که سرصفحه های Access-Control-Request-Method و Access-Control-Request-Headers توسط مرورگر به طور خودکار اضافه می شوند. نیازی به افزودن آنها نیست. این پیش پرواز OPTIONS دارای عناوین پاسخ موفقیت آمیز است:

دسترسی-کنترل-اجازه-مبدا: http://siteA.com دسترسی-کنترل-اجازه-روشها: GET ، POST ، PUT دسترسی-کنترل-اجازه-سرصفحه ها: نوع محتوا

هنگام ارسال درخواست واقعی (پس از انجام پیش پرواز) ، رفتار یکسان با نحوه رسیدگی به یک درخواست ساده است. به عبارت دیگر ، با یک درخواست غیر ساده که قبل از پرواز آن موفقیت آمیز است همانند یک درخواست ساده رفتار می شود (یعنی سرور برای دسترسی به جواب واقعی باید Access-Control-Allow-Origin را دوباره ارسال کند).

مرورگرها درخواست واقعی را ارسال می کنند:

PUT / somePage HTTP / 1.1 منبع: http://siteA.com نوع محتوا: برنامه / json

{"myRequestContent": "JSON بسیار عالی است"}

و سرور یک Access-Control-Allow-Origin را ارسال می کند ، دقیقاً همانطور که برای یک درخواست ساده ارسال می شود:

دسترسی-کنترل-اجازه-مبدا: http://siteA.com

برای اطلاعات بیشتر در مورد درخواست های غیر ساده ، به درک XMLHttpRequest over CORS مراجعه کنید.

در اینجا میتونید جواب سوال رو پیدا کنید

۵ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی انتخاب زبان برنامه نویسی در حوزه شبکه جواب داد.

همونطور که دوستمون @m-javidi گفتند در بحث شبکه آنچنان نیازی به برنامه نویسی نداریم به جز در حوزه اسکریپت ها که در اون مورد زبان های python,C++,C معروف به زبان های اسکریپتی هستند،همچنین در بحث شبکه دوره های network+,sisco,mcse بحث کلی هستند. در اینجا مقاله ای در این مورد هست که میتواند به شما کمک کند

۲۲ دی، ۱۳۹۹

۵ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی چگونه در لاراول کلاس شخصی بسازیم جواب داد.

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

مهدی عزیز این موضوع بستگی به نوع کلاس داره،مثلا اگر میخوای controller یا model بسازی،معمول و آسون ترین راه استفاده از دستورات پیشنهادی لاراول هست: به شرح زیر

  • controller :

    php artisan make:controller ProvisionServer

  • model :

    : php artisan make:model Flight

همچنین اگر منظور از ساخت کلاس ایجاد یک helper هست میتونی از پاسخی که دوستان ازطرق composer ارائه کردند استفاده کنی

۳ دی، ۱۳۹۹

۶ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم مقاله ای در مورد تغییرات php 8 درست کرد.

با عرض سلام و خسته نباشید خدمت پارس کلیکی های عزیز. ورژن php رو به version 8 آپدیت کردم و شاهد تغییراتی بودم که کمی گیج کننده بود و در اینجا مقاله ای در باره تغییرات به زبان انگلیسی خواندم ،برای مثال متد ‍__autoload() و به جای آن به ‍spl_autoload_register() تغییر پیدا کرده

اولا اینکه نظرتون در مورد این تغیرات چیه و دوما از دوستان نویسنده درخواست دارم یک مقاله به زبان فارسی در این مورد بنویسند.

۱۶ آذر، ۱۳۹۹

۶ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم مشکل کار با API در php درست کرد.

با عرض سلام و خسته نباشید خدمت پارسکلیکی های عزیز. من نیاز دارم که برای پلتفرم خودم از یک API استفاده کنم و تا حالا از طریق PHP با API کار نکرده بودم،کد زیر کدی هست که برای تست کردن API نوشتم.


<?php 

    // Api url
    $url = "https://restcountries.eu/rest/v2/all";

    //Initiate cURL.
    $ch = curl_init($url);

    //Tell cURL that we want to send a POST request.
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ???);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

    //Execute the request
    $result = curl_exec($ch);
    $response = json_decode($result, true);
    var_dump(json_encode($response));
?>

مشکل اینجاست که این کد هیچگون ریزالتی به من برنمیگردونهResult : string(4) null و من نمیدونم که در قسمت ‍CURLOPT_POSTFIELDS وریبل ورودی(???) چی هست؟؟؟!!!!

  • ریزالتی که ارائه دادم در صورتی هست که یک وریبل وارد کنم نظر دوستان چیه؟؟؟!!!!

۲۰ مهر، ۱۳۹۹

۸ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم یک ایده جدید درست کرد.

با عرض سلام و خسته نباشید. در حال حاظر در حال نوشتن یک پلتفرم از نوع کاری Idea هستم و در آخر به اسپانسر برای معرفی به عموم نیازمندم. چندتا مورد توی ذهن خودم بود

  • سپاه
  • شرکت های دانش بنیان
  • حامی دولتی مشاغل جدید

مسئله مهم و گیج کننده خودم اینه که این پلتفرم به راحتی توانایی جهانی شدن رو داره. نظر دوستان در این باره چیه؟؟؟!!!!

یک سوال دیگه هم دارم:

آیا راهی هست که بتونم این پلتفرم رو قبل از ارائه ثبت کنم تا کپی نشه؟؟؟!!!

۱۱ مهر، ۱۳۹۹

۸ ماه پیش ١۰۰+ امتیاز
@m-p به گفتگوی روش کار شرکت‌های برنامه نویسی جواب داد.

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

  • نکته اول این بود که ساعت کاری قانونی از ساعت ۸ تا ۱۶ بود و کار مفید حدود ۷ ساعت هست،نکته قابل توجه اینه که برامون ساعت کاری مهم نیست و هر وقت که کارمون تموم بشه دست از کد زدن میکشیم بعضی شبا شده خودم تا ساعت ۱۱ شب داخل شرکت بودم بعضی روزها هم ساعت ۱۳ رفتم

  • با توجه به این که همه پروژه ها روی Git یا بقیه ریپازیتوری ها آپلود میشه محل کار مهم نیست ولی توی شرکت تمرکز بیشتری روی کار داریم.

  • چطور نوشت پروژه به خود پروژه بستگی داره بعضی مواقع فقط یک نفر روی پروژه کار میکنه و نوع نوشتن به انتخاب خودمون بستگی داره،اما بعضی مواقع چند نفر روی کد کار میکنند و یا در آینده قراره چند نفر دیگر روی همون کد کار کنند در این مواقع نوع نوشتن کد بستگی به نظر لیدر تیم داره

۲۳ شهریور، ۱۳۹۹

۹ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم برنامه نویسی Drone درست کرد.

باعرض سلام و خسته نباشید خدمت امیر عزیز و دوست های پارس کلیکی. یک پروژه مربوط به کد نویسی پرواز هواپیما های بدون سر نشین(Drone) بهم پیشنهاد شده که برای انتخاب زبان برنامه نویسی شک دارم. به نظرتون بین زبان های python و rust کدوم زبان انتخابعاقلانه ای هست؟؟؟!!!

۲ امرداد، ۱۳۹۹

١١ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم گرفتن اطلاعات بیشتر از طریق session درست کرد.

با عرض سلام و خسته نباشید خدمت پارس کلیکی های عزیز. در بخش لاگین من مجبورم مثل ی حالت middleware مانند ایجاد کنم که فقط یوزر مورد نظر دسترسی های لازم رو داشته باشه و برای اینکار به محتوای ستون admin نیازمند هستم و میخوام این ستون رو از طریقsession ذخیره شده بگیرم،این session به من آیدی رو میده اما نمیتونم ازش استفاده کنم و ناچارا فعلا admin رو با session میفرستم که امنیتش خیلی پایینه.

  • کد اولیه(دارای ارور)

    function confirm_logged_in_admin(){
        $id = $_SESSION["user_id"];
        $user = select_user_by_id($id);
        if ($user["admin"] == 0) {
            redirect_to("../404.php");
        }
  • ارور

    Fatal error: Uncaught Error: Call to a member function query() on null in /var/www/html/barnelli/includes/functions.php:112 Stack trace: #0 /var/www/html/barnelli/includes/functions.php(174): select_user_by_id() #1 /var/www/html/barnelli/admin/index.php(5): confirm_logged_in_admin() #2 {main} thrown in /var/www/html/barnelli/includes/functions.php on line 112

    ارور ها رو برسی کردم و تنها مشکل واقعی در لاین سوم فانکشن هست.در واقع آیدی رو به varable وارد میکنه اما زمان استفاده آیدی رو بهم نمیده.

۶ تیر، ۱۳۹۹

١٢ ماه پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم Runing php files in the other directorys exept /var/www/html درست کرد.

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

مشکل اینجاست که apache2 آپدیت کردم به نسخه 2.4.41 و از بعد از آپدیت سرور آپاچی

فقط و فقط داخل روت ‍‍var/www/html کار میکنه.

و داخل دایرکتوری های دیگه فایل های phpران نمیشه.

این مشکل رو چطور میشه حل کرد؟؟؟!!!

۴ شهریور، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی استفاده از ‍‍ubuntu or unix base جواب داد.

باسلام.

از نظر من (طبق تجربه شخصی):

  • مهمترین و اولین فرق unix base با ویندوز اینه که ی سری دخالت های بیجا که سیستم عامل انجام میده رو نداره و دست کاربر رو باز تر گذاشته(برای مثال استفاده کردن از زبان الکسیر در ویندوز از همون اول شروع به نصب به ارور میخوری)
  • فرق دوم اینه که تا حالا آنچنان ویروسی که در سطح جهانی پخش بشه برای unix ساخته نشده(حداقل تا اونجایی که من خبر دارم) در نتیجه نیازی به استفاده از آنتی ویروس های آشغال که سرعت سیستم و کار رو پایین میارن نیست
  • فرق سوم و مهمتر اینه که open source‍‍ هست و هر کسی میتونه به هر شکلی که میخواد شخصی سازیش کنه و همه افراد درش سهیم هستن

۱۷ امرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@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 به گفتگوی پیشنهاد پلاگین وردپرسی برای ارزهای رمزگذاری شده مانند بیت کوین جواب داد.

@alirezan137 سلام.اگر پیام من رو یکبار دیگه با دقت بخونید متوجه میشید که من نگفتم از وردپرس نمیشه برای اپلیکیشن های مهم استفاده کرد بلکه گفتم بهتره که بجاش از php استفاده شه به همون دلایلی که بالا گفتم،در کل اگر کامنت قبلیم باعث توهین یا ایجاد سوء تفاهم شده،طلب بخشش میکنم

۱۳ تیر، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی کد نویسی با فریم ورک یا از پایه نویسی MVC جواب داد.

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

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

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

۷ تیر، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل نصب اوبونتو در کنار ویندوز جواب داد.

@jserver اگر درایو مربوط به ویندوز فرمت نشده باشه 2 تا راه دارید که اینجا و اینجا میتونید بهش دسترسی داشته باشید

۲۱ خرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل نصب اوبونتو در کنار ویندوز جواب داد.

@jserver

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

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

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

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

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

۱۹ خرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل نصب اوبونتو در کنار ویندوز جواب داد.

@jserver

Secure ‌Bootرو چک کردین؟

باید به روش خاصی غیر فعال بشه

۱۷ خرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل نصب اوبونتو در کنار ویندوز جواب داد.

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

۱۵ خرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی مشکل نصب اوبونتو در کنار ویندوز جواب داد.

@jserver مشکل از کجا بود؟

۱۱ خرداد، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@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 بوت کردم و بدون مشکل نصب شد.اما روی فلش حتی نمیشناختش چه برسه به اینکه بهم ارور بده.

۲۸ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی عدم فراخوانی برخی فایل ها در سایر پوشه ها جواب داد.

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

۱۹ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

@woohee من اپ رو به فرمت زیپ تبدیل کردم(.apk -> .zip) و بعد از حالت فشرده خارج کردم و به کد ها دسترسی داشتم.

۱۸ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

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

۱۷ اردیبهشت، ۱۳۹۸

٢ سال پیش ٢۰۰+ امتیاز
@m-p یک گفتگو به اسم اتوماسیون درست کرد.

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

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

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

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

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

۱۵ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

@woohee هنوز وقت نکردم متاسفانه ولی تا آخر هفته بهتون ساز و کارش رو میگم

۱۳ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

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

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

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

۱۲ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

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

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

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

۱۱ اردیبهشت، ۱۳۹۸

٢ سال پیش ١۰۰+ امتیاز
@m-p به گفتگوی نحوه گرفتن پرمیشن بدون اجازه کاربر در اندروید 6 به بالا جواب داد.

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

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

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

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