דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
ח

חוקר

@חוקר
אודות
פוסטים
1.2k
נושאים
199
שיתופים
0
קבוצות
0
עוקבים
5
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • חומת האש באובונטו
    ח חוקר

    @שמואל4 אמר בחומת האש באובונטו:

    @חוקר אם כל הפורטים חסומים עם חומת אש חיצונית אז למה להתעסק עם ufw?

    כלומר, למיטב הבנתי, אמרת שיש שלך באמזון חומת אש מעל השרת - כלומר השרת הוא לא הראוטר עצמו, אז לכאורה החומת אש בו היא שלב שני, ואם פתחת רק 80 ו443 אז מה העניין להתעסק בעוד חסימות בשרת עצמו?

    כי אין שם פיתרון קליל לחסימת כתובות ספציפיות מ 80/443.
    אני רוצה שכל פעם שזיהיתי איזה שרת שמנסה לגשת לכתובות כ admin וכו' שסתם חופרים באתר שאחסום אותם לגשת לשרת

    רשתות

  • פריימוורק לשליחה **וקבלה** של מיילים - לנוד
    ח חוקר

    @chv אמר בפריימוורק לשליחה **וקבלה** של מיילים - לנוד:

    ש את מיילין mailin (NPM - גיטהב) נראה חמוד! (יש שתי גרסאות כאשר לא לגמרי הוברר לי מה חדש בגרסה החדשה) הוא אכן נותן לי לקבל מיילים הוא מאזין למיילים נכנסים לדומיין. ואפשר לטפל בכל מייל שהתקבל בצורה נוחה. אבל לא הצלחתי להתחיל להבין איך שולחים איתו מיילים אם זה אפשרי בכלל.

    דבר ראשון תודה רבה על זה, כבר מזמן חיפשתי פיתרון לקבל מיילים
    כעת אני רואה בסיס שניתן לעבוד איתו..

    תכנות

  • חומת האש באובונטו
    ח חוקר

    מה היא צורת העבודה הנכונה בזה?
    אם כל הצורך שלי הוא לא לכל הפורטים, כי זה כבר חסום לי מהפיירוול של AWS, אלא ס"ה לפורט 80 ו 443 לחסום כתובות שאני מזהה שהם רובוטים.
    מה מומלץ?
    לעשות פקודה של
    sudo ufw default allow incoming
    ואח"כ לעשות לכל כתובת שזהיתי כרובוט לעשות
    sudo ufw deny from 255.255.255.255
    יייתכן כאן מכשול כלשהו או צורך עבודה לא טובה?

    רשתות

  • קריסה ב OVH
    ח חוקר

    מה ניתן להפיק מאירוע כזה?
    למשל ב aws לא יוכל להיות כזה אירוע? הכל יכול לקרות לכל אחד.
    כשמשתמשים בגיבוי תמונות מערכת המובנה של aws זה נמצא באותו מקום או באיזור נפרד?
    יש עניין לגבות נתונים בחברות נפרדות?

    רשתות

  • מענק התאמות קורונה שוב חוזר
    ח חוקר

    @חוקר אמר במענק התאמות קורונה שוב חוזר:

    מישהו יודע לענות?

    לפי הנראה כאן, כנראה שזה מתוקצב ממשלתי.

    גומלין - כללי

  • מענק התאמות קורונה שוב חוזר
    ח חוקר

    @חוקר אמר במענק התאמות קורונה שוב חוזר:

    זה תקציב מהמדינה או עמותות פרטיות או משהו כזה?

    מישהו יודע לענות?

    גומלין - כללי

  • מענק התאמות קורונה שוב חוזר
    ח חוקר

    זה תקציב מהמדינה או עמותות פרטיות או משהו כזה?

    גומלין - כללי

  • פלאפון C2 שנכבה פתאום מה יכולה להיות הבעיה ?
    ח חוקר

    @מעמד
    ייתכן שזה בגלל שחיקה בחיבור הבטריה למכשיר. כבר קרה לי פעם.
    במידה וכן, ניתן לדחוף דף קטן וכדומה בין הבטריה למכשיר, בצד מול החיבורים, כך שיתן תמיכה לבטריה שלא יתרופף מהחיבור למכשיר.

    מובייל וטבלט

  • עזרה דחופה | הסעות לירושלים לשושן פורים
    ח חוקר

    מה עם מוניות?
    והאם יש הבדל בין מונית עם כובע למונית ללא כובע..?

    גומלין - כללי

  • פרק שירה לימי הפורים בתקופת הקורונה
    ח חוקר

    משנכנס אדר מרבים בשמחה..
    פרק שירה בימי הקורונה.pdf

    גומלין - כללי

  • References ב-PHP
    ח חוקר

    @dovid אמר בReferences ב-PHP:

    חשבת שלא הבנתי מה עושה הפונקציה

    לא עבורך!
    אני חשבתי מזמן שזה יכול לעזור לאחרים וכאן הייתה הבמה.
    כי לי זה היה חידוש, וכמו שציינתי בדוגמא איך שכתבתי המון שורות מסורבלות, עד שגיליתי את החידוש ההוא.
    למה שאחרים לא ידעו מזה..

    תכנות

  • References ב-PHP
    ח חוקר

    להלן הסט המלא בשיטה זו:

        getDescendantProp : function (obj, desc, returnByUndefined = false) {
            if (!desc){return obj;}
            let arr = desc.split('.');
            while (arr.length && obj !== undefined) {
                obj = obj[arr.shift()];
            }
            return obj;
        },
    
         setDescendantProp : function (obj, desc, value) {
             if (!desc){return obj = value;}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 let shift = arr.shift();
                 if (typeof obj[shift] === 'undefined'){obj[shift] = {}}
                  obj = obj[shift];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             return obj[arr[0]] = value;
        },
    
        addDescendantProp : function (obj, desc, value) {
             if (!desc){return obj = value;}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 let shift = arr.shift();
                 if (typeof obj[shift] === 'undefined'){obj[shift] = {}}
                  obj = obj[shift];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             if (!obj[arr[0]]){
                 obj[arr[0]] = 0;
             }
             return obj[arr[0]] += value;
        },
    
        addPlusDescendantProp : function (obj, desc) {
             if (!desc){ if (!obj) {obj = 0} else {obj++} return obj}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 let shift = arr.shift();
                 if (typeof obj[shift] === 'undefined'){obj[shift] = {}}
                  obj = obj[shift];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             if (!obj[arr[0]]){
                 obj[arr[0]] = 0;
             }
            obj[arr[0]] = parseInt(obj[arr[0]]);
             return obj[arr[0]]++;
        },
    
        addPropertyDescendantProp : function (obj, desc, key, value) {
             if (!desc){return obj = value;}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 let shift = arr.shift();
                 if (typeof obj[shift] === 'undefined'){obj[shift] = {}}
                  obj = obj[shift];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             if (!obj[arr[0]]){
                 obj[arr[0]] = {};
             }
            obj[arr[0]][key] = value;
             return obj[arr[0]];
        },
    
         delDescendantProp : function (obj, desc) {
             if (!desc){return obj = value;}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 obj = obj[arr.shift()];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             return delete obj[arr[0]];
        },
    
    

    דוגמאות שימוש:

    //הוספת סכום למשתנה שאינו בטוח קיים
    __.addDescendantProp(myData.IncomingCallMinutes, ApiDID + '.' + moment().format('YYYYMMDD'),  duration);
    
    //הוספת ++ למשתנה שלא בטוח שהוא קיים
    let countIp = __.addPlusDescendantProp(myData.ipBlocked, clientIp + '.' + 'count');
                                            
    //הוספת איבר והצבת ערך לאיבר, על משתנה שלא בטוח שהוא קיים
    __.addPropertyDescendantProp(id_data['Butza']['Mishnaiot'], seder_key +'.' + masecet_key +'.' + perek_key, i, [perek_obj['r' + i], __.getDescendantProp(myData.QuestionsAndAnswersMishnaiot, ProjectID + '.' + seder_key + '.' + masecet_key + '.' + perek_key + '.' + i + '.QValid') === parseInt(perek_obj['r' + i])])
    
    //מחיקת איבר פנימי                                        
    __.delDescendantProp(myData.QuestionsById, ProjectID + '.' + SelectedTrivia['id'] );
    תכנות

  • References ב-PHP
    ח חוקר

    @dovid אמר בReferences ב-PHP:

    @חוקר אני בחיים לא צריך את הפונקציה הזאת...

    לפני

                        if (!myData.ExtraMessageReadingConfirmation[ProjectID]){
                            myData.ExtraMessageReadingConfirmation[ProjectID] = {};
                        }
                        if (!myData.ExtraMessageReadingConfirmation[ProjectID][messageId1]){
                            myData.ExtraMessageReadingConfirmation[ProjectID][messageId1] = {};
                        }
                        if (!myData.ExtraMessageReadingConfirmation[ProjectID][messageId1][userId]){
                            myData.ExtraMessageReadingConfirmation[ProjectID][messageId1][userId] = {};
                        }
                        myData.ExtraMessageReadingConfirmation[ProjectID][messageId1][userId]['np'] = 1;
    

    אחרי

    __.setDescendantProp(myData.ExtraMessageReadingConfirmation, ProjectID + '.' + messageId1 + '.' + userId + '.' + 'np', 1);
    

    בצורת העבודה שלי יש לי המון אובייקטים שמכילים תתי אבוייקטים ותתי תתי וכו'.
    לפני הפונקציה הייתי משתגע איך אני מגדיר ערך לאובייקט שאני לא יודע אם כבר קיים הנתיב שלו דהיינו תתי/תתי תתי/תתי תתי תתי
    אם אגדיר אותו ישירות אקבל שגיאה שלא ניתן להגדיר ערך ל undefined.
    באמצעות הפונקציה הנ"ל ששידרגתי אותה לצורה כזו:

         setDescendantProp : function (obj, desc, value) {
             if (!desc){return obj = value;}
             let arr = desc.split('.');
             while (arr.length > 1) {
                 let shift = arr.shift();
                 if (typeof obj[shift] === 'undefined'){obj[shift] = {}}
                  obj = obj[shift];
                 if (typeof obj[arr[0]] === 'undefined' && arr.length > 1){obj[arr[0]] = {}}
             }
             return obj[arr[0]] = value;
        },
    

    אני מגדיר בקלות את הנתיב המלא, ומזין את הערך הנדרש באובייקט המקורי - הגלובאלי

    תכנות

  • References ב-PHP
    ח חוקר

    אני לא הצלחתי הרבה להתעמק בנושא הזה.
    אבל אציין דוגמא של משהו שאולי זה חלק מהכוונה של @yossiz
    ואולי זה יפתח קצת את התאבון להבין טוב יותר את הנושא (גם אני לא יודע בזה הרבה)

            $rows = self::find()
                ->where(['ProjectID' => \common\models\GetProjectID::getProjectID()])
                ->andWhere(['id' => $selection])
                ->andWhere(['is', 'PaymentDetails', new \yii\db\Expression('null')])->asArray()->all();
            $rows2 = [];
            foreach ($rows as $row){
                if ($row['TotalToPaid'] > 0) {
                    if (isset($Students[$row['StudentId']])) {
                        $row['Bank'] = $Students[$row['StudentId']]['BankNumber'];
                        $row['Branch'] = $Students[$row['StudentId']]['BranchNumber'];
                        $row['AccountNumber'] = $Students[$row['StudentId']]['AccountNumber'];
                        $row['TeudatZehut'] = $Students[$row['StudentId']]['Identity'];
                        $row['ClientName'] = $Students[$row['StudentId']]['Family'] . ' ' . $Students[$row['StudentId']]['Name'];
                    }else{
                        $row['Bank'] = '';
                        $row['Branch'] = '';
                        $row['AccountNumber'] = '';
                        $row['TeudatZehut'] = '';
                        $row['ClientName'] = '';
                    }
                    $rows2[] = $row;
                }
            }
            return $rows2;
    

    במקרה זה, היה לי מערך שעלי היה להוסיף נתונים לאיברים, ולקבל מערך חדש הכולל את האיברים.
    אם זה היה כמו ב JS למשל הייתי עושה זאת פשוט יותר:

            $rows = self::find()
                ->where(['ProjectID' => \common\models\GetProjectID::getProjectID()])
                ->andWhere(['id' => $selection])
                ->andWhere(['is', 'PaymentDetails', new \yii\db\Expression('null')])->asArray()->all();
            foreach ($rows as $row){
                if ($row['TotalToPaid'] > 0) {
                    if (isset($Students[$row['StudentId']])) {
                        $row['Bank'] = $Students[$row['StudentId']]['BankNumber'];
                        $row['Branch'] = $Students[$row['StudentId']]['BranchNumber'];
                        $row['AccountNumber'] = $Students[$row['StudentId']]['AccountNumber'];
                        $row['TeudatZehut'] = $Students[$row['StudentId']]['Identity'];
                        $row['ClientName'] = $Students[$row['StudentId']]['Family'] . ' ' . $Students[$row['StudentId']]['Name'];
                    }else{
                        $row['Bank'] = '';
                        $row['Branch'] = '';
                        $row['AccountNumber'] = '';
                        $row['TeudatZehut'] = '';
                        $row['ClientName'] = '';
                    }
                }
            }
            return $rows;
    

    דהיינו כשעושים foreach, הוא לא מעביר לי את האיבר האמיתי המקורי, אלא איבר משוכפל, ששינוי בו אינו משנה כלום באיבר המקורי, ב JS לעומת זאת ניתן להעביר משתנים אפילו לפונקציות שהן משנות את האיבר המקורי.
    דוגמא לזה, פונקציות שאני משתמש איתן המון

    function setDescendantProp(obj, desc, value) {
      var arr = desc.split('.');
      while (arr.length > 1) {
        obj = obj[arr.shift()];
      }
      return obj[arr[0]] = value;
    }
    
    var obj = {a: {b: {c: 0}}};
    var propPath = getPropPath();  // returns e.g. "a.b.c"
    var result = setDescendantProp(obj, propPath, 1);  // obj.a.b.c will now be 1
    

    מקור: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

    אציין, שאני התחלתי עם PHP, וכשנתקלתי בפונקציה הנ"ל setDescendantProp לקח לי המון זמן לעבוד איך עובד הפלא ההוא.

    תכנות

  • ייצוא למס"ב / ASCII מ PHP
    ח חוקר

    @clickone אמר בייצוא למס"ב / ASCII מ PHP:

    תסתכל אם אתה רואה את העברית תקין

    לי אין גישה.
    אבל הלקוח אומר שבבדיקה נראים השמות בעברית תקינים.
    לכן אמרתי בא נראה שגם השידור בסדר.
    ייתכן והתיקון שם הוא שיש בדיקה על קידוד הקובץ ולפי זה השרת שלהם מפענח את הטקסט.
    כי במקור אמורים גם להפוך מימין לשמאל וגם לא עשיתי את זה.

    תכנות

  • ייצוא למס"ב / ASCII מ PHP
    ח חוקר

    תודה לעונים.
    כל האפשרויות של iconv לא עזרו.
    אמרתי לעצמי בא נראה שחוץ מזה הכל תקין, והשארתי את התווים ב utf-8 ללא שום המרה.
    והלקוח ניסה לבצע טעינת הקובץ במס"ב (טעינת בדיקה), ועל פניו נראה שהכל תקין (לאחר 2 תיקונים הקשורים לסכומים וכו'..).
    אולי הם שיפרו את המערכת ולא עדכנו בתיעוד?
    c6b270a5-d6c1-434a-b178-30d2bf0da0d6-image.png
    סוף מעשה נראה רק בשידור האמיתי ולראות אח"כ שפרטי חשבון המוטב מופיעים נכון..
    בל"נ נעדכן מה יצא..

    תכנות

  • ייצוא למס"ב / ASCII מ PHP
    ח חוקר

    לאחר חיפוש מצאתי במס"ב איזה שהוא נספח לגבי אותיות בעברית
    אך לא הבנתי איך עלי ליישם אותו..
    https://www.masav.co.il/media/2001/hebrew.pdf

    תכנות

  • ייצוא למס"ב / ASCII מ PHP
    ח חוקר

    אני צריך לייצא קובץ מ PHP שיתאים למס"ב.
    במס"ב הקובץ אמור להיות ב ASCII.
    איך אני ממיר את השמות של בעלי החשבון מ utf-8 ל ASCII.
    וכן הפוך (מ ASCII ל UTF-8) הייתי שמח לדעת איך, לראות מה קורה בקובץ המסב המוכן.
    גיגלתי הרבה יחסית אך לא מצאתי פיתרון שעובד.
    למי שיש ידע בנושא, יעזור לי מאוד.
    תודה

    מצ"ב קובץ ההוראות ממס"ב, לצורך העניין.
    mifrat_zikuim_msv.pdf

    תכנות

  • כמה שורות לכמה שדות - SQL
    ח חוקר

    @ש-ב-ח אמר בכמה שורות לכמה שדות - SQL:

    אני כמעט בטוח שקיים כזה דבר (אולי זה נקרה טבלת ציר - pivot)

    איזה SQL מדובר?
    MSSQL או MYSQL?
    כי בMSSQL זה נראה לי קיים.
    אבל ב MYSQL זה לא קיים.
    אך יש דרכים לבצע זאת פרימטיבי

    תכנות

  • API לקבל את שם הבנק ושם הסניף
    ח חוקר

    @katz אמר בAPI לקבל את שם הבנק ושם הסניף:

    @חוקר
    כאן יש API של כל הבנקים

    https://data.gov.il/api/3/action/datastore_search?resource_id=1c5bc716-8210-4ec7-85be-92e6271955c2&

    אגב עם אציין לימיט 2000 או יותר גדול (נכון לעכשיו יש שם 1468) אז זה יהיה כולל הכל באותה קריאה וניתן לבצע סינון על פי חיפוש מספר הסניף.
    אבל לכאורה כן אסתפק בטבלה פנימית ולחצן עדכון ידני או תזמון עדכון פעם ב.
    תודה לכולם

    תכנות
  • 1
  • 2
  • 24
  • 25
  • 26
  • 27
  • 28
  • 62
  • 63
  • 26 / 63
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום