Fri 24 Feb 2006 16:41:28
รบกวนแก้ป้ญหาให้ทีครับ คือปัญหาคือ
เริ่มจากformที่ใช้ส่งmailครับ ตรงช่องvalue ผมจะเก็บค่าใว้ในshowเพื่อส่งต่อให้mail
<td><select name="show" size="1">
<option value="0">==โปรดเลือก== </option>
<option value="root1@toyota2.com">- test1</option>
<option value="root2@toyota2.com">- test2</option>
<option value="root3@toyota2.com">- test3</option>
</select></td>
ในส่วนของmail ตรงto จะเก็บค่าshow ค่าshowจะมาจากformด้านบน แล้วส่งต่อไปยังEmail addrss ที่ได้จากshow
$to = "$show";
ปัญหาคือผมต้องการให้ test1หรือtest2หรือtest3 ส่งไปกับemail address ที่เลือกส่งจากto
ผมเลยเขียนโค้ดด้านล่างนี้ แต่ยังมะถูก รบกวนช่วยแก้ให้ทีครับ
if($show="root1@toyota2.com"){
$show="test1";
}
if else($show="root2@toyota2.com"){
$show="test2";
}
if else($show="root3@toyota2.com"){
$show="test3";
}
$message = "
<tr bgcolor=FFFFFF>
<td><strong><font color=000000 size=2 face=Microsoft Sans Serif, MS Sans Serif, sans-serif>รับค่าtestที่ได้ : </font></strong></td>
<td width=350><font color=006600 size=2 face=Microsoft Sans Serif, MS Sans Serif, sans-serif>$show</font></td></tr>
";
$headers = "Content-type: text/html; charset=windows-874\r\n";
$headers .= "Content-transfer-encoding: 8bit\r\n";
if (mail($to, $subject, $message, $headers)){
echo "<br><br><br><br><br><br><br><center><class=genblack><strong><font color=#006600>การส่งสำเร็จ</font></strong></center><br>";}
Fri 24 Feb 2006 17:16:36
จากโค้ดด้านบน ผมลองเอามาเขียนๆดูปรากฎว่าผมแก้แบบนี้แล้วมันผ่านครับ แต่ผมอยากได้ ที่ใช้else ร่วมด้วยได้ไหมครับ
if($show=="root1@toyota2.com"){
$show="test1";
}
if($show=="root2@toyota2.com"){
$show="test2";
}
if($show=="root3@toyota2.com"){
และถ้าจะบันทึกลงtextfileด้วย ต้องเขียนเพิ่มอยางไรบ้าง
รบกวนขอวิธีแก้โค้ดด้านบนให้ใช้elseได้ด้วย แต่ให้ค่าที่ได้เป็นแบบเดิม จะขอมาศึกษาครับ
และรบกวนขอเพิ่มแบบ ให้บันทึกลงtextfileได้ด้วย ผมต้องเขียนเพิ่มไงบ้างครับ แบบ พอส่งmailไปแล้ว แล้วให้มันบันทึกลงtextfileด้วยนะครับ
รบกวนด้วยนะครับ
$show="test3";
}
$show="test1";
}
if else($show="root2@toyota2.com"){
$show="test2";
}
if else($show="root3@toyota2.com"){
$show="test3";
}
มันผิด Syntax ครับ ที่ถูกควรเป็น
if(expressions){
}else if(expressions){
}else{
}
Sat 25 Feb 2006 10:33:56
ขอบคุณมากครับ ผมก็ว่าทามไมมันแปลกๆ ไม่ค่อยคุ้นตา เหมือนกัน แต่มะรู้ว่าผิดตรงไหน
ขอบคุณมากๆนะครับ ที่ช่วยแก้ให้ ผมจะเก็บใว้ศึกษาใช้กับงานอื่นๆ
ขอรบกวนอีกนิดครับ ถ้าผมจะเพิ่ม ให้เวลาเรากดส่งmailไปแต่ละครั้งให้มันเก็บเหมือนlogfile หรือบันทึกลองtextfileทุกครั้งที่มีการส่ง รบกวนขอวิธีเขียนครับ ว่าเขียนไงบ้าง ผมจะเอามาเพิ่มกับmailที่ผมทำ เพื่อเก็บใว้ใช้งาน
ขอบคุณมากครับ
<?
function logMessage($message){ //ส่งค่าสตริงที่ต้องการเก็บลง log
$filename = "mail.log";
if(is_writeable($filename) && $handle = fopen($filename, a+")){
fwrite($handle, date("d-m-Y H:i:s")." ".$message);
}
fclose($handle);
}
if(mail($to, $title, $message)){
logMessage("Mailer system : Message sent to ".$to."\r\n");
}else{
logMessage("Mailer system : Message can not send to ".$to."\r\n");
}
?>
ถ้าใช้ใน win platform อาจจะใส่เพียงแค่ \n ก็ได้ครับแต่ถ้า *nix ต้องใส่ \r\n
ทั้งหมดก็ประมาณนี้ครับ
Sat 25 Feb 2006 11:33:14
รบกวนอีกนิดครับผมลองเอาโค้ดไปใส่แล้วตังตัวอย่างด้านล่างนี้แล้วมันerror
Parse error: parse error, unexpected T_STRING in c:\appserv\www\makewww\yaris\yaris_mail.php on line 107
ผมไม่รู้ทำผิดตรงไหน รบกวนช่วยดูให้ทีครับ
ผมอยากให้พอกดส่งmail ให้มันบันทึกด้วยนะครับตอนเรากดส่งmailนะครับให้เก็บในรูปtextfile
รบกวนดูโค้ดข้างล่างนี้นะครับ
<?php
# $to = "phithan@phithan-toyota.com";
$to = "$show";
$subject = "$name $sname";
$ddate = date("d/m/Y H:i:s");
$IIp = $_SERVER["REMOTE_ADDR"];
/* message */
if($show=="root1@toyota2.com"){
$show="test1";
}
else if($show=="root2@toyota2.com"){
$show="test2";
}
else if($show=="root3@toyota2.com"){
$show="test3";
}
$message = "
<table width=590 border=0 cellpadding=0 cellspacing=1 bgcolor=0066FF>
<tr bgcolor=FFFFFF>
<td><strong><font color=000000 size=2 face=Microsoft Sans Serif, MS Sans Serif, sans-serif>=ชื่อ: </font></strong></td>
<td width=350><font color=006600 size=2 face=Microsoft Sans Serif, MS Sans Serif, sans-serif>$name</font></td></tr>
</table>
";
$headers = "Content-type: text/html; charset=windows-874\r\n";
$headers .= "Content-transfer-encoding: 8bit\r\n";
$headers .= "To: Mary $show\r\n";
$headers .= "From:$name $sname \r\n";
---------------------ผมเอาโค้ดที่ให้ใส่ตรงนี้----------------------------
function logMessage($message){
$filename = "mail.log";
if(is_writeable($filename) && $handle = fopen($filename, a+")){
fwrite($handle, date("d-m-Y H:i:s")." ".$message);
}
fclose($handle);
}
if(mail($to, $subject, $message, $headers)){ <-------------ใส่เพิ่มตรงนี้
logMessage("Mailer system : Message sent to ".$to."\r\n");
}else{
logMessage("Mailer system : Message can not send to ".$to."\r\n");
}
if (mail($to, $subject, $message, $headers)){
echo "<br><br><br><br><br><br><br><center><class=genblack><strong><font color=#006600>¡ÒÃÊè§ÊÓàÃç¨ ¢Íº¤Ø³·ÕèãªéºÃÔ¡Òà ·Ò§ºÃÔÉÑ·¨ÐÃÕºµÔ´µèÍ¡ÅѺä»</font></strong></center><br>";
echo"<center><class=genblack><strong><font color=#FF3300>ÃÍÊÑ¡¤ÃÙè¡ÓÅѧ¡ÅѺÊÙè˹éÒà´ÔÁ</font></strong></center>";
}
else{
echo "<br><br><br><br><br><br><br><center><class=genblack><strong><font color=#006600>äÁèÊÒÁÒöÊè§ä´é ¡ÃسҵÃǨÊͺ</font></strong></center>";
}
?>
รบกวนด้วนนะครับ
function logMessage($message){
$filename = "mail.log";
if(is_writeable($filename) && $handle = fopen($filename, "a+")){
fwrite($handle, date("d-m-Y H:i:s")." ".$message);
}
fclose($handle);
}
if(mail($to, $subject, $message, $headers)){
logMessage("Mailer system : Message sent to ".$to."\r\n");
}else{
logMessage("Mailer system : Message can not send to ".$to."\r\n");
}
Sat 25 Feb 2006 16:30:22
ผมได้ลองเอาโค้ดที่ให้มาด้านบนนี้ไปใส่ตาม แบบคำถามที่#5 ด้านบน
แต่มันเกิดerrorตามด้านล่างนี้ครับ รบกวนดูให้ทีครับว่าผิดตรงไหนผมเอาโค้ดไปใช้ถูกอะเปล่าครับ ผมได้ทำการสร้างtextfileชื่อmail.log.txtเก็บใว้ที่เดียวกะmail
Warning: fclose(): supplied argument is not a valid stream resource in c:\appserv\www\makewww\yaris\yaris_mail.php on line 100
รบกวนด้วยนะครับ
if(is_writeable($filename) && $handle = fopen($filename, "a+")){
fwrite($handle, date("d-m-Y H:i:s")." ".$message);
fclose($handle);
}
ประมาณนี้ครับ
Tue 28 Feb 2006 19:28:03
ผมลองเอาโค้ดไปลองทำดูแล้วครับ
มันไม่สามารถสร้างfileเองได้ครับ fileที่มันจะสร้างคือmail.logใช่ไหมครับ มันมะเห็นสร้างเลยครับ
รบกวนด้วยนะครับ
ขอบคุณมากครับ
fwrite($handle, date("d-m-Y H:i:s")." ".$message);
fclose($handle);
}
โทษทีครับลำดับผิดไปครับ ถ้าเช็คไฟล์ก่อนแล้วไม่มีจึงไม่มีการสร้างไฟล์เกิดขึ้นครับ
Mon 6 Mar 2006 11:19:54
ยังทำมะได้เลยครับ ขอโค้ดเต็มๆนิดนึงครับ
รบกวนด้วยนะครับ

















