พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
Javascript development / รบกวนช่วยแก้โปรแกรมให้ทีครับ(mail)
รุต
รุต
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";
  }

Administrator
Fri 24 Feb 2006 19:16:10
  if($show="root1@toyota2.com"){
 $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ที่ผมทำ  เพื่อเก็บใว้ใช้งาน

ขอบคุณมากครับ

Administrator
Sat 25 Feb 2006 10:49:08
เอาแบบง่ายไนะครับ
<?
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>";
}
?>

รบกวนด้วนนะครับ

Administrator
Sat 25 Feb 2006 13:49:13
โทษทีครับ ที่ถูกต้องเป็น

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

รบกวนด้วยนะครับ

Administrator
Sat 25 Feb 2006 17:58:30
ลองตรวจสอบดูครับว่าสามารถสร้างไฟล์ได้หรือไม่ ที่ไม่สามารถใช้คำสั่ง fclose ได้เนื่องจากไม่สามารถเปิดไฟล์ได้ครับ หรืออาจจะนำไปไว้ใน if() ก็ได้ครับ เช่น
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ใช่ไหมครับ  มันมะเห็นสร้างเลยครับ

รบกวนด้วยนะครับ

ขอบคุณมากครับ

Administrator
Tue 28 Feb 2006 21:07:51
if($handle = fopen($filename, "a+")){
       fwrite($handle, date("d-m-Y H:i:s")." ".$message);
       fclose($handle);
}

โทษทีครับลำดับผิดไปครับ ถ้าเช็คไฟล์ก่อนแล้วไม่มีจึงไม่มีการสร้างไฟล์เกิดขึ้นครับ
รุต
รุต
Mon 6 Mar 2006 11:19:54

ยังทำมะได้เลยครับ  ขอโค้ดเต็มๆนิดนึงครับ

รบกวนด้วยนะครับ

Administrator
Mon 6 Mar 2006 11:26:26
ที่แจ้งว่าทำไม่ได้คือส่วนใดหรือครับ ถ้าในส่วนการเขียน log ก็มีเพียงเท่านั้นครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login