ניהול הסקריפט
בסקריפט זה אנו צריכים להציג טופס לקבלת נתונים מהמשתמש על האי-מייל שהוא רוצה לשלוח. כאשר המשתמש שולח את הטופס, אנו צריכים לעבד את הנתונים שקיבלנו (לבדוק את השדות שהוזנו), ולהדפיס הודעות שגיאה במקרה הצורך. במקרה שיש שגיאה בטופס לא ננסה לשלוח את האי-מייל, אך נציג את הטופס שוב למשתמש (עם השדות שהכניס) כדי שיתקן את שגיאותיו. כאשר אין שגיאות בטופס, הסקריפט ינסה לשלוח את האי-מייל ליעד המבוקש, ויציג הודעה למשתמש באם האי-מייל נשלח בהצלחה.
את הסקריפט מנהל הקובץ הראשי של התוכנית, mail.php, שמבצע בדיוק את התוכנית שהוזכרה לעיל (כל התוכנית עוברת דרך הקובץ הנ"ל). הסקריפט עושה שימוש ב-2 קבצים נוספים: mail_form.inc (שמציג את הטופס), ו-mail_send.inc (שמעבד את הנתונים ושולח את האי-מייל).
file name: mail.php
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/HTML; charset=windows-1255">
<META http-equiv="content-language" content="hw">
<META name="author" content="Eli Hen">
<TITLE>שליחת אי-מייל</TITLE>
</HEAD>
<BODY>
<DIV align="right" dir="rtl">
<H2><U>שליחת אי-מייל</U></H2>
<? $mail_ok=false;/* | המשתנה $mail_ok הוא משתנה גלובלי, שתפקידו לשמש אינדיקציה לבדיקת הנתונים ולשליחת האי-מייל. אם false : ארעה שגיאה כלשהי. אם true : האי-מייל תקין. מאתחלים אותו עם הערך false , ומניחים בתחילה שעדיין לא שלחנו את הטופס. | */ |
if (isset($_POST["mail_button_send"]))/* | בטופס האי-מייל ניצור כפתור SUBMIT עם השם mail_button_send , וכאשר שולחים את הטופס ערכו של הכפתור גם נשלח. לכן אם המשתנה שבודקים כאן מאותחל, אז סימן ששלחנו את הטופס. | */ |
include "mail_send.inc";/* | מכלילים את הקובץ שמעבד את נתוני הטופס ושולח את האי-מייל. קובץ זה משתמש במשתנה הגלובלי
$mail_ok , ומשנה את ערכו בהתאם. | */ |
if ($mail_ok==false)/* | המשתנה $mail_ok מקבל את הערך false כאשר לא נשלח שום טופס או כאשר הטופס לא מולא בהתאם. בשני המקרים צריך להציג שוב את הטופס. | */ |
include "mail_form.inc";/* | מציג את הטופס למשתמש עם הנתונים ששלח. | */ |
?>
</DIV>
</BODY>
</HTML>
אי אפשר לעשות את זה יותר פשוט? | 08-12-03 14:02 מיכאל לטיצ'בסקי | #1070 |
| האם אי אפשר לכתוב במקום לכתוב
if (isset($_POST["mail_button_send"]))
אפשר פשוט
if ($submit)
או
if ($mail_button_send)
מה ההבדל |
|
לא רצוי | 09-12-03 18:02 אלי חן (מנהל) | #1122 |
| מה שתיארת מסתמך על register_globals.. שהוכח כבר כבעיית אבטחה ולכן מכובה כברירת מחדל בקונפיגורציה של PHP עוד מגרסה 4.
השתמש במערכים הגלובליים.. זה יותר בטוח.. |
|
איך אני מונע שישלחו דרך המערכת שלי דואר זבל ? | 02-12-06 13:01 אבי חדד | #2655 |
| דבר ראשון כל הכבוד על האתר ועל המערכת אני מאוד מרוצה וכל הכבוד על הקוד של שליחת האימייל , חפשתי בכל האנטרנט ומצאתי רק אצל איתן .
תמשיכו כך
ולשאלתי .
אני מקבל ביום בין 10-15 דואר זבל דרך הסקריפט מה לעשות ? |
|