28-11-2004, 15:48
|
|
|
חבר מתאריך: 25.08.03
הודעות: 9,114
|
|
יש לי קובץ X שמציג דף אינטרנט כל שהוא, ובמרכזו אמור להיות טופס לשליחת מייל שנמצא בקובץ בשם email.php.
email.php:
קוד PHP:
<? if ($_SERVER['REQUEST_METHOD'] == "POST") { if (!strpos($_SERVER['HTTP_REFERER'],"ist.janana.net")) { $msg="לא ניתן לשלוח מייל מתוך דף שאינו על שרתינו<br>נסה שוב למלא ולשלוח את הטופס"; print_page($msg_box,$msg); } if (!preg_match("/^[\w\-\.]+\@[\w\-\.]+\.[\w\-]+$/i",$_POST_["email"]) && strlen($_POST["email"])<5) { $msg="הטופס לא נשלח!<br>\nנא הקלד כתובת אימייל חוקית \n"; print_page($msg_box,$msg); } if ($_POST["subject"]) { $subject=$_POST["subject"]; } else { $subject = "this mail sent from a form in www.net, without subject"; } if (!$_POST["body"]) { $msg="הטופס לא נשלח!<br>\nנא הקלד את תוכן ההודעה\n"; print_page($msg_box,$msg); } $name="name: ".$_POST["name"]; $company="company: ".$_POST["company"]; $email="Email address: ".$_POST["email"]; $site="site: ".$_POST["site"]; $address="address: ".$_POST["address"]; $phone="phone number: ".$_POST["phone"]; $body=$name."\n" .$company."\n" .$email."\n" .$site."\n" .$address."\n" .$phone."\n" ."\n" .$_POST["body"]; mail('x@xxx.net',$subject,$body); echo "<h3 align=center>"; echo "הודעתך נשלחה בהצלחה !"; echo "<br> "; echo "תודה על פנייתך, נשתדל לענות בהקדם !"; echo "</h3>"; } print_page($msg_box,$msg); function print_page($msg_box,$msg) { $msg_box="<table border=2 bordercolor=red cellpadding=5> <td align=right class='text_warning'>$msg"; if ($msg){$msg_ok=$msg_box;} echo '<form>...'; //הדפסת הטופס שיוצג למשתמש } ?>
הערה: המשתנה $msg_ok מודפס בסופו של דבר בגוף הטופס, אם יש אזהרה/הודעה למשתמש.
הייתי כמובן יכול לכתוב את הקוד בעוד כמה דרכים, כמו למשל להשאיר את הדפסת הטופס בסוף הקובץ (במקום בתוך הפונקציה), ובפונקציה רק להגדיר את המשתנים.
אבל בכל דרך יש בעיה אחרת.
אחת השאלות העיקריות היא: איך אני יכול לצאת מתוך אחד התנאים הפנימיים, לגמרי אל מחוץ ל-IF הראשון ?
הבעיה העיקרית היא, שאם אני מכניס את הפונקציה exit בשלב כל שהוא, זה לא ימשיך את ריצה הקובץ הראשון - הקובץ X ששם היה את ה-include שהביא לריצת הקובץ הנוכחי.
נערך לאחרונה ע"י ישראל K בתאריך 28-11-2004 בשעה 15:52.
|