הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה לטירון - ()mail ב-PHP. (https://hosts.co.il/forums/showthread.php?t=21325)

itrigalo 06-05-06 17:48

עזרה לטירון - ()mail ב-PHP.
 
עשיתי חיפוש בפורום אבל זה לא כ"כ עזר, אין לי כ"כ מושג ב-PHP.
יש לי טופס לשליחת מייל ואני רוצה להשתמש ב-PHP עבורו.
כשאני שולח את הטופס הדפדפן עובר לדף mail_2.php (לא רוצה!), וכלום לא קורה! למה?!?
הדף הלא תקין באתר:
http://www.ofri-jewelry.com/contactphp.htm
(וקישור לדף הישן הקיים על-בסיס HTML שאותו אני רוצה להחליף: http://www.ofri-jewelry.com/contact.htm)

מורכב מקובץ PHP + קובץ HTML שבו נמצא הטופס.
קובץ ה-PHP:
ציטוט:

<?php

ini_set("SMTP", "mailgw.netvision.net.il");
ini_set("sendmail_from","contact@ofri-jewelry.com");

//Check whether the submission is made
if(isset($hidSubmit)){

//Declarate the necessary variables
$mail_to='contact@ofri-jewelry.com';
$mail_Name=$txtName;
$mail_from=$txtEmailfrm;
$mail_sub=$txtSub;
$mail_msg=$txtMsg;
$mail_Pho=$txtPho;

//Check for success/failure of delivery
if(mail($mail_to,$mail_Name,$mail_sub,$mail_msg,"F rom:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='textred'>E-mail has been sent successfully from $mail_sub to $mail_to</span>";
else
echo "<span class='textred'>Failed to send the E-mail from $mail_sub to $mail_to</span>";
}
?>

קוד ה-HTML:
ציטוט:

<form name="frmsendmail" method="post" action="mail_2.php" onSubmit="return ValidationForm()">
<table width="70%" border="0" align="center">
<tr>
<td width="100" class="text"><font color=#ffffff>Name</font></td>
<td >
<input name="txtName2" type="text" class="input" id="txtName22" size="30" maxlength="100" size="22" value="" dir="rtl">
</td>
</tr>
<tr>
<td><font color=#ffffff>your email</font></td>
<td>
<input name="txtEmailfrm2" type="text" class="input" id="txtEmailfrm22" size="22" value="" dir="rtl">
</td>
</tr>
<tr>
<td><font color=#ffffff><nobr>subject</font></td>
<td>
<input name="txtSub2" type="text" class="input" id="txtSub22" size="22" value="" dir="rtl">
</td>
</tr>
<tr>
<td><font color=#ffffff>comments</font></td>
<td>
<textarea name="txtMsg" cols="20" rows="4" class="input" id="textarea" dir="rtl"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
&nbsp;&nbsp;&nbsp;&nbsp;
<input name="hidSubmit" type="hidden" id="hidSubmit" value="true">
<input name="Submit" type="submit" class="input" value="Send">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input name="Submit2" type="reset" class="input" value="Reset">
</td>
</tr>
</table>

</form>

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

עריכה:
2 השורות הראשונות בקוד PHP הן בגלל השרת WIN שעליו מאוחסן האתר, אחרת אי אפשר לשלוח מייל:
ציטוט:

ini_set("SMTP", "mailgw.netvision.net.il");
ini_set("sendmail_from","contact@ofri-jewelry.com");

RS324 06-05-06 18:27

זה לא אמור לקבל את הערכים של ה POST מה FORM ?

PHP קוד:

$mail_to='contact@ofri-jewelry.com';
$mail_Name=$txtName;
$mail_from=$txtEmailfrm;
$mail_sub=$txtSub;
$mail_msg=$txtMsg;
$mail_Pho=$txtPho

כאילו ככה :


PHP קוד:

$mail_Name=$_POST['txtName'];
$mail_from=$_POST['txtEmailfrm'];
$mail_sub=$_POST['txtSub'];
$mail_msg=$_POST['txtMsg'];
$mail_Pho=$_POST['txtPho']; 


itrigalo 06-05-06 18:34

אתה שואל אותי? כי אין לי מושג כ"כ.
בעקרון נראה לי שכן, אבל מה שעשיתי זה לפי דוגמה שנעזרתי בה:
http://www.smartwebby.com/PHP/emailsending.asp

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

RS324 06-05-06 18:39

תסתכל דבר ראשון : הדף של ה HTML
יש לך את השורה הזאת

form name="frmsendmail" method="post" action="mail_2.php" onSubmit="return ValidationForm()">

תשנה את mail_2.php לדף שאתה רוצה

דבר שני...
מתוך ה HTML :
PHP קוד:

<input name="txtName2" type="text" class="input" id="txtName22" size="30" maxlength="100" size="22" value="" dir="rtl">
<
input name="txtEmailfrm2" type="text" class="input" id="txtEmailfrm22" size="22" value="" dir="rtl">
<
input name="txtSub2" type="text" class="input" id="txtSub22" size="22" value="" dir="rtl">
<
textarea name="txtMsg" cols="20" rows="4" class="input" id="textarea" dir="rtl"></textarea>
<
input name="hidSubmit" type="hidden" id="hidSubmit" value="true"

עכשיו תסתכל על השמות של כל INPUT
ובדף של ה PHP אתה צריך לשנות את המשתנים לפי השמות של ה FORM
לדוגמא :

[PHP]
<input name="txtName2" type="text" class="input" id="txtName22" size="30" maxlength="100" size="22" value="" dir="rtl">

[PHP]
אז ב PHP אתה צריך שיהיה לך :

PHP קוד:

$mail_Name=$_POST['txtName2']; 


itrigalo 06-05-06 19:16

ציטוט:

נכתב במקור על ידי RS324
תסתכל דבר ראשון : הדף של ה HTML
יש לך את השורה הזאת

form name="frmsendmail" method="post" action="mail_2.php" onSubmit="return ValidationForm()">

תשנה את mail_2.php לדף שאתה רוצה

אתה טועה...
זה הקישור של הטופס לפונקציית השליחה mail() שנמצאת בדף נפרד (mail_2.php).
אם אני משנה את זה - זה יהיה סתם טופס HTML רגיל.

לגבי ההערה השניה של שמות המשתנים - צודק, שיניתי.
עדיין לא עזר, והתוצאה כמו קודם.
זה מוביל לדף mail_2.php והוא ריק לגמרי!
למה אין הודעה כלשהי?!
ציטוט:

//Check for success/failure of delivery
if(mail($mail_to,$mail_Name,$mail_sub,$mail_msg,"F rom:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='textred'>E-mail has been sent successfully from $mail_sub to $mail_to</span>";
else
echo "<span class='textred'>Failed to send the E-mail from $mail_sub to $mail_to</span>";
}

מבאס...

BlueNosE 06-05-06 19:20

אתה שולח לקובץ בסיומת HTM משהו בPHP?..

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

itrigalo 06-05-06 19:28

זה כתב הפוך.
לא הבנתי מה התכוונת עם ה-HTML וה-PHP...
עשיתי כמו בדוגמה שפה:
http://www.smartwebby.com/PHP/emailsending.asp

RS324 06-05-06 19:48

לא, לא טעיתי.
אתה שולח את הFORM לקובץ mail_2.php
משמע שבתוך הקובץ הזה אמור להיות לך כל הפעולות של השליחה של המייל וכד'
אם יש לך דף אחר שעושה את זה אז תשנה את זה ב FORM
זה פשוט.

itrigalo 06-05-06 20:25

OK, כנראה שמרוב שזה פשוט לא הבנתי.
תוכן קובץ ה-PHP כולו, כולל השליחה, מופיע בהודעה ה-1 שבדיון.
אולי יש שם משהו שלא בסדר?

RS324 06-05-06 20:32

ציטוט:

נכתב במקור על ידי itrigalo
OK, כנראה שמרוב שזה פשוט לא הבנתי.
תוכן קובץ ה-PHP כולו, כולל השליחה, מופיע בהודעה ה-1 שבדיון.
אולי יש שם משהו שלא בסדר?


אמרתי לך כבר מה לא בסדר.

דבר ראשון אתה צריך לקרוא לקובץ mail_2.php

דבר שני אתה צריך להחליף את כל הערכים של המשתנים לקבל את הערך מ $_POST
כבר הראיתי לך איך....


כל הזמנים הם GMT +2. הזמן כעת הוא 17:26.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ