לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #4  
ישן 28-11-2004, 15:48
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "כן"

יש לי קובץ 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.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 28-11-2004, 18:02
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 5 שנכתבה על ידי שימי שמתחילה ב "יש לי הרגשה שלא קראת את התשובה שלי..."

קום כל תודה.

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

בגלל שברגע שאני עושה תנאי IF נוסף, אז כל "}" שיהיה בו, שייך ל-IF החדש שנוצר, ולא קשור ל-IF הראשי.
קיצקוץ, ניסיתי וניסיתי, אבל לא הסתדרתי.

אולי האסימון קפא מהקור, בכל אופן, הוא לא נפל...

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


תודה מראש
והמשך יומטוב (:


--- עריכה ---
אני מעוניין שבסיום הפונקציה יסתיים ריצת הדף, וריצת הקוד תמשיך מהמקום שיש את ה-include שקרא לקובץ.

נערך לאחרונה ע"י ישראל K בתאריך 28-11-2004 בשעה 18:08.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 29-11-2004, 05:34
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
מתוך הפונקציה אין סיכוי שתצליח לעשות דבר כזה...
בתגובה להודעה מספר 8 שנכתבה על ידי ישראל K שמתחילה ב "יש (כמה) תנאי(ם) מסוים, שאם..."

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

תראה, אני לא ממש מבין מה ניסית לעשות בדף הזה ואיך ניסית לעשות אותו, ואתה לא עוזר לי לעזור לך (לא נותן לי מה שאני מבקש) - אז אני אתן פתרון כללי...

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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:12

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר