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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלת תם - מה כל כך נורא בPHP?

שאלת תם - מה כל כך נורא בPHP?

מתוזמן נעוץ נעול הועבר תכנות
27 פוסטים 9 כותבים 535 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • WWWW מנותק
    WWWW מנותק
    WWW
    השיב לnigun ב נערך לאחרונה על ידי
    #9

    @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

    עוד פרצת אבטחה נפוצה זה שאתה לא צריך להפעיל מחדש את השרת כדי להוסיף קוד

    נראה לי עלוב לכנות את זה פרצת אבטחה.
    גם השרת אינטרנט הוא 'פרצת אבטחה' שמאזין לכל בקשה ברשת בלי שום אימות.
    בכל מקרה הפיצ'ר הזה זה המעלה של PHP...

    @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

    אפשר להשתמש בטעות במשתנה שלא קיים בכלל (יש הזהרה בקובץ שגיאות אבל לא בודקים שם כל הזמן)

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

    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

    nigunN מוטי אורןמ 2 תגובות תגובה אחרונה
    4
    • nigunN מנותק
      nigunN מנותק
      nigun
      השיב לWWW ב נערך לאחרונה על ידי
      #10

      @www אמר בשאלת תם - מה כל כך נורא בPHP?:

      @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

      עוד פרצת אבטחה נפוצה זה שאתה לא צריך להפעיל מחדש את השרת כדי להוסיף קוד

      נראה לי עלוב לכנות את זה פרצת אבטחה.
      גם השרת אינטרנט הוא 'פרצת אבטחה' שמאזין לכל בקשה ברשת בלי שום אימות.
      בכל מקרה הפיצ'ר הזה זה המעלה של PHP...

      המציאות היא שזה גרם להרבה פרצות אבטחה באתרים שונים וזה לא היה קורה בשפות אחרות
      זה גם באג וגם פיצ'ר אבל אי אפשר להתעלם מהחסרונות.

      @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

      אפשר להשתמש בטעות במשתנה שלא קיים בכלל (יש הזהרה בקובץ שגיאות אבל לא בודקים שם כל הזמן)

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

      אני כנראה לא מתכנת נורמלי כי היה לי קשה לנטר שגיאות בPHP.

      מייל: nigun@duck.com

      תגובה 1 תגובה אחרונה
      2
      • מוטי אורןמ מנותק
        מוטי אורןמ מנותק
        מוטי אורן
        השיב לWWW ב נערך לאחרונה על ידי מוטי אורן
        #11

        @www אמר בשאלת תם - מה כל כך נורא בPHP?:

        נראה לי עלוב לכנות את זה פרצת אבטחה.
        גם השרת אינטרנט הוא 'פרצת אבטחה' שמאזין לכל בקשה ברשת בלי שום אימות.
        בכל מקרה הפיצ'ר הזה זה המעלה של PHP...

        אולי זה לא פרצת אבטחה, אבל זה מתכון בטוח (שהוכחה היעילות שלו) לפרצות אבטחה מהזן המסוכן יותר.
        הדוגמה הפשוטה ביותר היא מנגנון העלאת קבצים ב-PHP. כל עוד המתכנת לא בודק בצורה המחמירה ביותר את הקבצים, ניתן לקבוע כמעט בוודאות שתיווצר אפשרות להריץ קוד מרוחק על המערכת שלו. קח דוגמא את הקוד הזה שהשתמשתי בו פעם (באיזה אתגר של Remote execution שמצאתי):

        system($_GET["shell"]);
        

        מה שעשיתי היה די פשוט. הכנסתי את הקוד הזה לקובץ, העליתי את הקובץ לשרת, ולאחר מכן ביצעתי קריאת GET לשרת (לנתיב שהעליתי אליו את הקובץ) עם הפרמטר shell שמכיל את הערך של פקודה כלשהי, והוא בהחלט רץ על השרת. אם אני זוכר נכון, את אותה פגיעות בדיוק מצאו בתוסף וורדפרס הפופולארי 'ווקומרס' לפני כשנתיים. פרצה המבוססת על חוסר בבדיקת הקבצים המועלים לשרת.

        תגובה 1 תגובה אחרונה
        3
        • chvC מנותק
          chvC מנותק
          chv
          השיב לnigun ב נערך לאחרונה על ידי chv
          #12

          @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

          הציק לי בPHP שלא מכריזים על משתנה (אולי קיים בעוד שפות)

          אני משער שאתה מתכוין 'מצהירים' declare.
          בהרבה שפות לא מצהירים על משתנה. הדוגמא הראשונה כנראה היא פייתון.

          בפייתון אם אתה משתמש במשתנה שלא הוצהר, זה מחזיר None (זה סוג של null בפייתון. לא מדויק..)

          בלוג | מייל

          nigunN תגובה 1 תגובה אחרונה
          1
          • nigunN מנותק
            nigunN מנותק
            nigun
            השיב לchv ב נערך לאחרונה על ידי
            #13

            @chv
            אז זה גם מתכון לצרות
            למה לא לזרוק שגיאה אם משתמשים במשתנה שלא קיים?

            מייל: nigun@duck.com

            chvC תגובה 1 תגובה אחרונה
            0
            • chvC מנותק
              chvC מנותק
              chv
              השיב לnigun ב נערך לאחרונה על ידי
              #14

              @nigun זה לא נכון, לרוב היוזקייסים, לזרוק שגיאה על עצם השימוש במשתנה שהערך שלו הוא None (בפייתון, או undefined ב-JS וכו').
              שגיאה תיזרק לך אם יש איזו פרוצדורה שאתה מנסה לבצע מתוך הערך של המשתנה. לדוגמא אם אתה מנסה להוציא מפתח מתוך אובייקט שבעצם לא קיים, כמובן ייזרוק לך שגיאה (בפייתון/JS וכו').
              אבל בהחלט יש מצבים שדווקא כן תנסה להשתמש בערך של המשתנה - גם אם הוא None.
              זה יהיה תנאים על פי הערך של המשתנה הזה, אם הוא קיים תעשה X אם לא תעשה Y וכדו'

              בלוג | מייל

              nigunN dovidD 2 תגובות תגובה אחרונה
              1
              • nigunN מנותק
                nigunN מנותק
                nigun
                השיב לchv ב נערך לאחרונה על ידי
                #15

                @chv אמר בשאלת תם - מה כל כך נורא בPHP?:

                אבל בהחלט יש מצבים שדווקא כן תנסה להשתמש בערך של המשתנה - גם אם הוא None.

                למה שתרצה להשתמש בערך של משתנה שמעולם לא הוגדר?

                מייל: nigun@duck.com

                תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב לchv ב נערך לאחרונה על ידי
                  #16

                  @chv פייתון וJS לא מהווים דוגמה למופת של שפת תכנות בטוחה...
                  אבל @nigun זה לא חכמה לבוא לשפה של שטח מסויים ולבוא אליה בטענות שהיא לא חיה אחרת לגמרי.
                  זה PHP ויש בזה מעלות רבות. שפות בטוחות סובלות מעודף בירוקרטיה תכנותית בפרט לדברים קלים ולמפתחים מתחילים.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  nigunN תגובה 1 תגובה אחרונה
                  4
                  • nigunN מנותק
                    nigunN מנותק
                    nigun
                    השיב לdovid ב נערך לאחרונה על ידי
                    #17

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

                    מייל: nigun@duck.com

                    תגובה 1 תגובה אחרונה
                    1
                    • nigunN מנותק
                      nigunN מנותק
                      nigun
                      כתב ב נערך לאחרונה על ידי nigun
                      #18

                      ואיך שכחתי את הקובץ PHP.INI שרוב האנשים לא מכירים את כל ההגדרות שלו
                      וכך יש לך הבדלים בין סביבת פיתוח לפרודקשן שזה מתכון לצרות.
                      (בפרט שלא ברור איפה הקובץ הזה יושב ובכל שרת אפשר למצוא אותו במקום אחר, אולי יש בזה כללים אבל אני זוכר שהיה בזה כאב ראש)

                      מייל: nigun@duck.com

                      תגובה 1 תגובה אחרונה
                      1
                      • nigunN מנותק
                        nigunN מנותק
                        nigun
                        כתב ב נערך לאחרונה על ידי nigun
                        #19

                        עוד כאב ראש זה התאימות לאחור בין הגרסאות
                        אם בפייתון צריך להתמודד רק עם השינויים בין גרסא 2 ל 3
                        מPHP זכור לי שיש יותר כאבי ראש ויותר מעברים בין גרסאות (נראה לי שעכשיו זה אוחז ב8.1 כשיש לך שרתים שרצים רק על 5.6)
                        ואם אתה רוצה להריץ סקריפטים מגרסאות שונות זה כאב ראש רציני.

                        מייל: nigun@duck.com

                        dovidD WWWW 2 תגובות תגובה אחרונה
                        1
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          השיב לnigun ב נערך לאחרונה על ידי dovid
                          #20

                          @nigun אתה הופך כל תסכול שהיה לך לטענה של ממש על השפה,
                          זה טענות שבמקרה הטוב נכונות ל"למה אני מעדיף X" ולא לטענות למה PHP לא טוב.
                          מי שמחליט רציני לפתח בPHP צולח בתחילת דרכו את הטענות שלך (ודי בקלות) והם הופכים די מהר ללא רלוונטיים, הכל די מוגדר וקל לפחות מהבחינות שהעלית.

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          nigunN תגובה 1 תגובה אחרונה
                          3
                          • nigunN מנותק
                            nigunN מנותק
                            nigun
                            השיב לdovid ב נערך לאחרונה על ידי nigun
                            #21

                            @dovid
                            אני לא חושב שיש נקודה אחת שגורמת לאנשים לא לאהוב את PHP
                            אלא מכלול של פרטים שמציקים לכל אחד בפינה אחרת
                            ואני לא אומר שPHP זה שפה גרועה/רעה, אלא פשוט שפה ישנה שעדיף ללמוד שפות אחרות ולא להיכנס לפינות של השפה הזו, ומי שיש לו 10 שנות ניסיון בPHP אולי כדאי לו להישאר שם (אני אישית שמח שלא נשארתי שם, אבל זה היה טוב לשפה ראשונה).

                            מייל: nigun@duck.com

                            תגובה 1 תגובה אחרונה
                            1
                            • WWWW מנותק
                              WWWW מנותק
                              WWW
                              השיב לnigun ב נערך לאחרונה על ידי WWW
                              #22

                              @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

                              עוד כאב ראש זה התאימות לאחור בין הגרסאות
                              אם בפייתון צריך להתמודד רק אם השינויים בין גרסא 2 ל 3
                              מPHP זכור לי שיש יותר כאבי ראש ויותר מעברים בין גרסאות (נראה לי שעכשיו זה אוחז ב8.1 כשיש לך שרתים שרצים רק על 5.6)
                              ואם אתה רוצה להריץ סקריפטים מגרסאות שונות זה כאב ראש רציני.

                              דווקא בזה אני ממש חולק עליך.
                              ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.
                              כאבי הראש מתחילים, כשאתה רוצה להתקין ספריה שמעודכנת לגרסה 8 ולך יש 5.6 בשרת. (אתה מכיר את זה כי עבדת עם אסטריסק, ו-FREEPBX היו בזמנו תקועים ב 5.6, זה לא מקרה סטנדרטי, כל שרתי האחסון מעדכנים מיד לגרסה האחרונה).

                              @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

                              ואיך שכחתי את הקובץ PHP.INI שרוב האנשים לא מכירים את כל ההגדרות שלו
                              וכך יש לך הבדלים בין סביבת פיתוח לפרודקשן שזה מתכון לצרות.
                              (בפרט שלא ברור איפה הקובץ הזה יושב ובכל שרת אפשר למצוא אותו במקום אחר, אולי יש בזה כללים אבל אני זוכר שהיה בזה כאב ראש)

                              זה נכון, זה קשור לזה שההגדרות חלות על שרת האינטרנט, וגם לזה שלפעמים יש 5 גרסאות PHP מותקנות על השרת (הבעיה הזאת קיימת בעוד שפות אני חושב).

                              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                              nigunN תגובה 1 תגובה אחרונה
                              1
                              • nigunN מנותק
                                nigunN מנותק
                                nigun
                                השיב לWWW ב נערך לאחרונה על ידי nigun
                                #23

                                @www אמר בשאלת תם - מה כל כך נורא בPHP?:

                                ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.

                                מה אתה עושה אם יש פיצ'ר חדש ב8 שאתה ממש רוצה להשתמש בו ויש לך ספריה אחרת על השרת שתואמת רק ל5.6? גם אם זה פרוייקטים נפרדים זה כאב ראש להפריד ביניהם (אולי אני טועה וזה ממש קל להגדיר לכל פרוייקט גרסה שונה) אבל באותו פרוייקט זה נראה לי בלתי אפשרי.

                                מייל: nigun@duck.com

                                איש נחמדא WWWW 2 תגובות תגובה אחרונה
                                0
                                • איש נחמדא מנותק
                                  איש נחמדא מנותק
                                  איש נחמד
                                  השיב לnigun ב נערך לאחרונה על ידי
                                  #24

                                  @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

                                  @www אמר בשאלת תם - מה כל כך נורא בPHP?:

                                  ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.

                                  מה אתה עושה אם יש פיצ'ר חדש ב8 שאתה ממש רוצה להשתמש בו ויש לך ספריה אחרת על השרת שתואמת רק ל5.6? גם אם זה פרוייקטים נפרדים זה כאב ראש להפריד ביניהם (אולי אני טועה וזה ממש קל להגדיר לכל פרוייקט גרסה שונה) אבל באותו פרוייקט זה נראה לי בלתי אפשרי.

                                  אני לא יודע באיזה מבנה היישום שלך בנוי, אבל יש את התחביר הזה:

                                  if (version_compare(phpversion(), '5', '>='))
                                  {
                                         // act accordintly
                                  }
                                  

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

                                  להיות איש נחמד זה מחייב...

                                  nigunN תגובה 1 תגובה אחרונה
                                  1
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לאיש נחמד ב נערך לאחרונה על ידי
                                    #25

                                    @איש-נחמד
                                    לא הכרתי.
                                    אבל עדיין אם יש לך קוד שנכתב ב5.6 בזמן שלא היה גרסה 8 בעולם
                                    אז איך המפתח אמור לדעת איפה להוסיף את זה? ולהוסיף אחר כך זה לכאורה עבודה קשה.

                                    מייל: nigun@duck.com

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • D מנותק
                                      D מנותק
                                      davidnead
                                      כתב ב נערך לאחרונה על ידי davidnead
                                      #26

                                      אני חושב, שיש הרבה סיבות לא לאהוב PHP, ורובם הוזכרו כאן לעיל. אבל הסיבה האמיתית ש"קוברת" את השפה (ענין של זמן, רק האקוסיסטם מחזיק אותה) זה ה"קוד ספגטי".
                                      הבשורה של PHP (אי שם במאה ה-14) היתה היכולת לכתוב HTML בצורה דינמית, ובשפה קלה ונגישה.
                                      לוקחים שורת HTML וכתובים אותה בלולאה, או מכניסים בה משתנה.
                                      הבשורה, הזו, שהיתה בשורה אי שם, הפכה לחושך בעיניים של כל מתכנת מודרני. הערבוב בין הלוגיקה והAPI לבין הHTML - יצר את הביטוי קוד ספגטי, שאני לא מוצא גרוע ממנו. מכוער, קשה להבנה ולהתחזוק, ולא גמיש בגרוש.
                                      עם הזמנים יצאו פתרונות שונים, ופריימוורקים שונים, ותבניות MVC וכדומה, אבל הם פותרים בקושי נקודת פתיחה גרועה.

                                      אז נכון, ככל שהBACK שלך גדול יותר, והHTML שולי יותר זה פחות משנה.
                                      אבל אם זה המצב - אז גם בשביל מה PHP. למה לא שפה נקיה ומודרנים יותר וחפה מבעיות? ולמה פריימוורק בצד שרת שמנסה להסתדר עם המגבלות של השיטה הישנה כשיש פרייוורקים טובים בצד לקוח שעושים את העבודה בJS, בהפרדה חזקה מהשרת ובהפרדה חזקה בין הJS לHTML?
                                      בעבר גם היכולות של JS ושל דפדנים היו מוגבלות מאוד, והיכולת של עיבוד HTML נוח בצד שרת היתה חשובה. אבל היום? SPA זו המילה האחרונה.

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

                                      תגובה 1 תגובה אחרונה
                                      4
                                      • WWWW מנותק
                                        WWWW מנותק
                                        WWW
                                        השיב לnigun ב נערך לאחרונה על ידי
                                        #27

                                        @nigun אמר בשאלת תם - מה כל כך נורא בPHP?:

                                        ויש לך ספריה אחרת על השרת שתואמת רק ל5.6?

                                        כמעט ואין דברים כאלה.
                                        הם שומרים הרבה על תאימות.

                                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                        תגובה 1 תגובה אחרונה
                                        0

                                        • 1
                                        • 2
                                        בא תתחבר לדף היומי!
                                        • התחברות

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

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