PhP

maCr0T

New member
PhP

אז, הנה שאלות דיי פשוטות על PHP: 1. מה ההבדל בינו לבין ASP חוץ מהפלטפורמה שעליו רץ השרת? 2. לפי מה שהנתי PHP אני כותב כמו HTML, למשל עושה : p> וכותב את הסריפט? אם כן אז מה זה הקומפלרים שכתבתם עליהם כאן? 3. למשהו יש מדריכים טובים באינטרנט על השפה? באנגלית או עברית?
 

cyberseal

New member
מסמך קצר שכתבתי על PHP לעומת ASP

מטרת מסמך זה היא להסביר את ההבדלים בין PHP ל ASP . PHP ו ASP הן שפות תיכנות לאפליקציות אינטרנט. הן רצות בצד שרת. משמעות הדבר היא שניתן בעזרתן ובעזרת מאגר נתונים כלשהו לבנות "אתר דינאמי" – אתר שמכיל נתונים רבים , יודע להציג אותם , להשתמש בהם ולשנות אותם. ASP היא טכנולוגיה פרטית של חברת מיקרוסופט. כל מי שמעוניין להשתמש בטכנולוגיה זו , חייב לקנות את כל המוצרים הנילוים – מערכת הפעלה ושרת IIS של מיקרוסופט. הקוד של ASP הוא קוד סגור ומוגן בזכויות יוצרים והתיעוד שקיים (שגם אותו צריך לקנות בחבילת MSDN) שייך למיקרוסופט. PHP לעומת זאת היא טכנולוגיה חופשית. כל אחד רשאי להשתמש בה ואין צורך לשלם על מוצרים נוספים. PHP עובד על כל סוגי השרתים ומערכות ההפעלה שקיימות כולל שרת IIS של מיקרוסופט. התיעוד הרישמי של PHP מופץ בצורה חופשית באינטרנט ויתרה מזו , גם קוד המקור של PHP מופץ בצורה חופשית באינטרנט כך שכל מתכנת יכול לפתחו ואין שום "סודות והפתעות". כתוצאה ישירה מכך, עלות ההפקה של אתר ב PHP נמוכה בהרבה מהעלות של אתר מקביל ב ASP. קצת על שרתים ------------ לאחרונה עלתה המודעות של בעלי שרתים לגבי סוג השרת אותו הם מפעילים בעקבות וירוסים שונים כגון NIMDA ו CODE RED . וירוסים כאלו ורבים אחרים הוכיחו ששרת IIS הוא שרת פרוץ ביותר ואתרים שעובדים על שרת כזה היו יעד נוח לתקיפות של "קראקרים" – פושעי מחשבים. וירוסים כאלו הסבו נזק לשרתי IIS בלבד ונזק כלכלי עצום לחברות שהחזיקו בשרתים מסוג זה. אתרים פשוטים נהרסו ותוכנם שונה על ידי הפורצים. אתרים אחרים המפעילים מערכות רגישות כגון מערכות סליקה, נפרצו והמידע הרגיש (כגון כרטיסי אשראי של לקוחות) נגנב והופץ ברחבי האינטרנט. יש לציין ששרת ה IIS הוא שרת "חדש בשכונה" והשרת הותיק יותר (והיציב יותר) הוא שרת "אפאצ´י". מתחילת ימי האינטרנט ועד עצם היום הזה , שרתי אפאצ´י הם השרתים השולטים באינטרנט. שרתי אפאצ´י הם שרתים יציבים ביותר שעובדים על מערכות הפעלה UNIX וקרובותיה (Linux,FreeBSD). מערכות הפעלה מבוססות UNIX הוכחו כמערכות היציבות והמאובטחות ביותר במשך 30 השנים שהן קיימות. ביצועים של PHP לעומת ASP ------------------------ בדיקות קפדניות הוכיחו שרמת הביצועים של שרת PHP מבוסס לינוקס עוקף כל טכנולוגיה מיקוסופטית המקבילה לו. ניהול הזיכרון של PHP הוא מעולה ואין את המושג "דליפות זיכרון" במילון המונחים של PHP. ASP ,לעומת זאת , בעייתי מאד מהבחינה הזו ואם ישנה דליפת זיכרון בתוכנית ה ASP , יתכן והשרת יקרוס בקביעות כל מספר ימים או שבועות. גם מבחינת מהירות הריצה של שתי השפות מחקרים הראו בבירור שזמן הריצה של אפליקציית PHP קטן בהרבה מהזמן הדרוש לאפליקציה זהה הכתובה ב ASP. מאגרי נתונים ------------ PHP תומך ועובד עם כל סוגי בסיסי הנתונים שקיימים כולל בסיסי הנתונים של מיקרוסופט. ASP תומך בעיקר ב ODBC/ACCESS שידוע במסורבלותו, איטיותו והנפח העצום שהוא גוזל מהדיסק הקשיח. מפתחי PHP מרבים להשתמש בבסיס נתונים בשם MySQL שהוא "קטן וממזר" כפי שרבים נוהגים לכנותו. מהירות התגובה של בסיס MySQL היא זריזה לאין ערוך והנפח שהוא דורש הוא מינימלי ביותר. להלן רשימת בסיסי הנתונים שנתמכים ב PHP : Adabas D, Ingres ,Oracle (OCI7 and OCI8), dBase ,InterBase, Ovrimos Empress, FrontBase, PostgreSQL ,FilePro (read-only), mSQL ,Solid Hyperwave ,Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis Informix, ODBC, Unix dbm קלות הפיתוח ב PHP ----------------- כל מתכנת בעל ידע בסיסי בשפת C או PERL יכול להתחיל לכתוב כמעט מייד אפליקציות PHP מסובכות. מבנה השפה של PHP (הסינטקס) קרוב מאוד לשפת C ועל כן הוא קרוב לליבם של מתכנתים רבים. לימוד PHP יכול להתבצע בצורה עצמית והוראת PHP אינה מצריכה הסמכה מיוחדת. התיכנות יכול גם להתבצע בצורה מונחית עצמים בדומה ל C++ . עלויות נילוות ------------- ב ASP קיימות עליות נלוות רבות. למשל כאשר אנו זקוקים לבצע פעולה מסויימת בעזרת מודול חיצוני. רוב המודולים של ASP נמכרים ברישיון סגור ואילו ב PHP יש לנו מגוון של אלפי מודולים חופשיים המופצים בחינם. כך למשל , אם ברצוננו לבנות טופס משוב\הזמנה פשוט , שלאחר סיום המילוי שלו על ידי משתמשי האתר , הוא ישלח באופן אוטומטי לתיבת הדואר האלקטרוני שלנו , עלינו לקנות מודול מיוחד לשליחת דואר. ב PHP לא נתקל בבעיה כזו. דוגמאות נוספות למודולים כאלו : מודול להעלאת קבצים (Software Artisans SA-FileUp) מודול להצפנה (ASPEncrypt) כל הפעולות האלו מתבצעות ב PHP ללא קושי ותשלום נוסף. לסיכום ------ היתרונות שיש ל PHP הם יתרונות עצומים. עסקים שיבחרו להשתמש בטכנולוגיית ASP בשנים הקרובות יסבלו מהנטל התחזוקתי והכלכלי העצום שנילווה איתה. הסיבה היחידה הניראית לעין לבחירה ב ASP היא שם המותג שעומד מאחוריה וזו לא סיבה מספקת כאשר ברצוננו לבנות מערכת מקצועית, יציבה והכי חשוב : מערכת שפשוט עובדת.
 

Netrix

New member
ערימה של אי דיוקים

נתחיל בזה ש PHP היא שפה מעולה לפיתוח אפליקציות מבוססות אינטרנט. ASP היא לא שפה אלא סביבה - אוסף של אוביקטים - מעולה לא פחות, שעושה שימוש בשפות שונות (JavaScript VBscript והאגדות מספרות שאפשר גם Perl ועוד כמה שפות). ASP היא טכנולוגיה פרטית של מייקרוסופט, אבל התיעוד נמצא חופשי באינטרנט. הלב של הטכנולוגיה הוא asp.dll את מערכת ההפעלה של מייקרוסופט צריך לקנות. שרת האינטרנט (IIS) הוא חינמי. PHP היא טכנולוגיית קוד פתוח. הקוד והתיעוד חופשיים. הלב של PHP הוא מוצר שנקרא Zend Engine המצורף חינם לכל הורדה של PHP, אבל בניגוד לשפה עצמה הוא לגמרי לא קוד פתוח. קצת ציונות - Zend Engine הוא מוצר כחול לבן מייד אין רמת גן :) קצת על שרתים ------------- IIS עובד על מערכות הפעלה NT ו Windows2000. PHP עובד על רוב היוניקסים ועל רוב מערכות ההפעלה של מייקרוסופט - הנה יתרון אמיתי ל PHP - האפשרות להריץ אותה אפליקציה על מערכות הפעלה שונות. יוניקס היא מערכת הפעלה יותר בטוחה מהמקבילות של מייקרוסופט, אבל הניהול שלה הרבה יותר מורכב. רוב הפריצות לשרתים נובעות מחוסר מיומנות ו/או מודעות של המשתמשים. נכון לשלשום הפריצות המתועדות מתחלקות כמעט חצי חצי. מתוך 85 פריצות מתועדות 46 הן לשרתים מבוססי חלונות ו 41 לשרתים מבוססי יוניקס. אני רוצה לסייג כאן - אני משתמש במושג פריצה, אבל הכוונה היא ל Defacement - שינוי של דף אחד או יותר באתר. ב IIS מדובר בניצול של באגים במערכת ההפעלה כדי לשנות מרחוק את הדפים. בשרתים מבוססי יוניקס מדובר בהשגת הרשאות שמאפשרות שליטה חלקית או מלאה על השרת. ופרט פיקנטי אחד - ה IIS ("החדש בשכונה") נולד באמצע 1995. האפאצ´י ("הוותיק יותר") נולד כמעט שנה אחריו, באפריל 1996 ביצועים --------- PHP בדרך כלל יותר מהירה וכמעט תמיד צורכת פחות משאבים בזמן הריצה. בעיות זיכרון נובעות בהרבה מקרים מקוד גרוע. עד היום היה קל יותר לדבג ASP. עד שהורדתי את הבטא של Zend IDE2 חשבתי שכאן יש יתרון ל ASP. ה IDE2 כולל עורך PHP מעולה ודיבגר מעולה - אחרי שהתרגלתי למעבר מ TextPad ל Zend IDE2 נראה לי שזה כלי חובה לכל מי שכותב PHP. בסיסי נתונים ------------- MySQL הוא מצויין, אבל ASP ניתן לקשר כמעט לכל בסיס נתונים. הסיפור על תמיכה בעיקר באקסס היא פשוט לא נכונה. קלות הפיתוח ------------- מפתח בעל ידע בסיסי לא יכול לכתוב אפליקציות מסובכות בשום שפה. למי שיש ידע קודם ב C או ב Perl יהיה קל יותר ללמוד PHP למי שיש ידע קודם ב C, JavaScript, VB או VBscript יהיה קל יותר עם ASP את שתי השפות ניתן ללמוד לבד ואין צורך בהסמכה מיוחדת קשה יותר למצוא מפתחי PHP. מפתחי ASP יש בשפע בגלל כמות אדירה של בוגרי קורסים עלויות נלוות ------------ ברמות הנמוכות ניתן להשיג מוצרים או מודולים חינמים לשתי הסביבות. ברמות הגבוהות ניתן לקנות מוצרים בעלויות של אלפי דולרים לשתי הסביבות. לסיכום ------- מדובר בשתי טכנולוגיות מצויינות שאת שתיהן כדאי ומומלץ להכיר. ההחלטה של במה להשתמש ומתי קשורה בשיקולים של אילוצים חיצוניים והעדפות אישיות.
 

תמר,

New member
כמה הערות

asp - זו טכנולוגיה (Active server page) שמאפשרת שימוש בשפות סקריפטים מוטבעות בצד השרת. PHP היא אחת מהשפות האלו. זו לא אגדה שניתן להשתמש ב-perl כ-asp עם apache+mod_perl. הסתכל בקישור הבא.
 

Netrix

New member
התכוונתי לומר ש...

אפשר גם להטביע דגים בטקילה או זיתים בסנדויץ´ עם ממרח שוקולד - אבל למה שמישהו ירצה לעשות את זה
אני יודע שהאפשרויות קיימות, אבל איך להגיד את זה בעדינות, השימוש באפשרויות האלו "לא ממש נפוץ" - לזה התכוונתי כשהשמשתי בביטוי אגדה
 

galh

New member
תיקון לתיקון...

מתוך האתר הרשמי של אפאצ´י: Using NCSA httpd 1.3 as a base, we added all of the published bug fixes and worthwhile enhancements we could find, tested the result on our own servers, and made the first official public release (0.6.2) of the Apache server in April 1995. כלומר, אפריל 95 ולא 96 כמו שכתבת.
 

Netrix

New member
צודק...בערך

טעות שלי גרסה 1.0 של אפאצ´י שוחררה בראשון לדצמבר 1995. מסתבר שהם כמעט תאומים
After extensive beta testing, many ports to obscure platforms, a new set of documentation (by David Robinson), and the addition of many features in the form of our standard modules, Apache 1.0 was released on December 1, 1995.
 

galh

New member
מה עם IIS?

יש לך מושג איפה מוצאים ציטוט דומה לגבי ה- IIS או ה- Personal Web Server של מיקרוסופט?
 

Netrix

New member
זה הדבר הכי קרוב שמצאתי

Around this mid-1995 timeframe, the microsoft.com Web servers were migrated to a pre-release version of Microsoft Internet Information Server (IIS) because the EMWACS servers were straining to keep up with the burgeoning server loads. אני אישית משתמש גם באפאצ´י וגם ב IIS מ 1996. בסוף 1996 היה כבר IIS 3.0, אבל עד כמה שאני זוכר גם גרסה 2 שוחררה באותה שנה.
 

maCr0T

New member
חבריה

אתם מנסים להסביר לי (לפחות בת´רד שלי) על שרתים? לא רציני.... בתור מנהל שרת עם 12 מעבדים אני מכיר WIN וUNIX וBSD, וTRU64 ועוד רבות אחרות אז זה לא מה שאני צריך, גם להתקין PHP אני יודע, מקוד מקור. אני צריך הסברים על איך לכתוב לא מסביב maCr0T שמודה על העזרה, גם כשהיא לא בכיוון
 

cyberseal

New member
אי דיוקים ברשימת האי דיוקים שלך

נכנסתי לאתר תיעוד הפריצות שציינת והמאזן של 85 פריצות ומתוכן 46 לוינדוס ו 41 ללינוקס ממש לא נכון... מאיפה לקחת את הנתון הזה ?? המאזן עומד על פי 3 בערך .. טבלה מהאתר : 61.5 אחוז פריצות לוינדוס 18.63 אחוז פריצות ללינוקס וזאת למרות ששרתי אפאצ´י עדיין רבים יותר משרתי IIS וזאת לפי הסקר של נטקראפט מאוקטובר 2001: http://www.netcraft.com/survey/ אז אם תעשה חשבון פשוט תגלה שאחוז הפריצות מכלל שרתי ה IIS הוא עצום לעומת אחוז הפריצות לשרתי linux/unix/freebsd . אני לא יודע מאיפה לקחת את הנתונים שציינת. יהיה נחמד אם תמסור לינק מדוייק. הנה הלינק של טבלת מערכות הפעלה: http://defaced.alldas.de/?archives=os בנוסף, לא נספרים שם השרתים שנפרצו בצורה שיטתית ואוטומטית ע"י וירוסים נחמדים כמו nimda ולמי שלא יודע איך הוירוס הזה פועל: הוא מנצל פירצה של buffer overflow ומאפשר גישה לכל המידע בכונן, כך שבעזרת דפדפן פשוט אני יכול להריץ פקודות דוס על השרת. הוא גם משנה את תוכנם של קבצי ASP ו HTML ומוסיף להם את הוירוס בצורת mime כך שגם מי שמשתמש באקספלורר לא מתוקן ונכנס לאתר נגוע - נדבק. למי שרוצה לקרוא עוד בנושא : http://www.cert.org/advisories/CA-2001-26.html שימחת זקנתי ששרת IIS הוא חינמי!!! אני רץ עכשיו לקנות וינדוס כדי שאוכל להתקין שרת IIS חינמי. בקשר לנושא הותק של אפאצ´י: אפאצ´י אכן יצא תחת השם אפאצ´י רק בשנת 95 אבל הוא מבוסס על שרת ה httpd הקדום שפותח ע"י בחור בשם "רוב מקקול". זהו השרת WEB הראשון באינטרנט שנכתב לפי הסטנדרטים של פרוטוקול http 1.0 כשהוא הפסיק לפתח את השרת, באו רבים אחרים שהמשיכו. http://hoohoo.ncsa.uiuc.edu/docs/ בקשר להתממשקות עם בסיסיי נתונים - אני יודע על מספר לא מבוטל של חברות שנאלצו להמיר את בסיס הנתונים שלהם כי רצו לכתוב אתר ב ASP. מסתבר ש ODBC לא תמיד יעיל\עובד. עוד אי דיוק ברשימת האי דיוקים שלך: מנוע ZEND הוא open source לכל דבר. אמנם זה qpl ולא gpl אבל עדיין מותר לך לשנות ולכתוב פאטצ´ים. הנה הרישיון שלו : http://www.zend.com/zend/qpl.php לסיכום, NETRIX היקר, תעשה טובה ותבדוק את השטויות שאתה פולט לפני שאתה פולט אותן בקצב מסחרר. במסמך שלי יש אולי מספר אי דיוקים אבל אין שקרים. אני חושב שהוא מהווה תשובה נאותה לפרופוגנדה של וינדוס
 

nirdagan

New member
נטריקס, אתה עובד במיקרוסופט??

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

cyberseal

New member
אכן מדובר בהתקפה של אנשי מיקרוסופט

פשוט אין לי הסבר אחר למה שהולך פה.
 

חובבן

New member
אין סיבה להתכתש

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

Netrix

New member
מממש ממש ממש לא

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

stac

New member
ועוד עיתרון לIIS

שהוא תומך בISAPI שבהרבה רמות מעל קובץ CGI מהודר
 

cyberseal

New member
מדריכים של php באנגלית ובעיברית.

המדריך הכי טוב באנגלית הוא כמובן המניואל הרישמי של PHP שניתן להורדה בחינם מהאתר הרישמי.ויש עוד אלפים לא רישמיים. בקשר למדריכים באנגלית ... יש מעט מאד ... אבל יש: by Lior Kaplan: Lesson no1 : http://www.guides.co.il/php/forums/msg.php?msgid=580 Lesson no2 : http://www.guides.co.il/php/forums/msg.php?msgid=827 Lesson no3 : http://www.guides.co.il/php/forums/msg.php?msgid=1184 Lesson no4 : http://www.guides.co.il/php/forums/msg.php?msgid=3504 PHP time functions: http://www.guides.co.il/php/download.php?guide=132 Hebrew and PHP: http://www.guides.co.il/php/download.php?guide=101 PHP control structures: http://www.guides.co.il/php/download.php?guide=146 PHP and MySQL: http://www.guides.co.il/php/download.php?guide=147 by Me: PHP and Security : http://www.guides.co.il/php/forums/msg.php?msgid=3494 PHP-GTK : http://www.guides.co.il/php/forums/msg.php?msgid=3564 Regular experssions : http://www.guides.co.il/php/download.php?guide=161
 
למעלה