รบกวนช่วยดูโค๊ดเกี่ยวกับการส่งเมลล์ด้วยค่ะ เกือบจะสำเร็จแล้วแต่ติดอยู่นิดนึง
กำลังทำระบบส่งเมลล์ ทดสอบส่งผ่านหมดแล้ว
แต่ติดอยู่ที่ ต้องการให้ user เลือกรายชื่อเองจาก checkbox
ตอนนี้มันก็เลือกได้นะ แต่ว่ามันส่งไปแค่คนเดียวคือ checkbox ที่เลือกล่าสุด
ช่วยดูโค๊ดหน่อยค่ะว่าผิดตรงใหน
Code (PHP)
<?
echo"<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=tis-620\">";
echo "<link href=\"../css/style.css\" rel=\"stylesheet\" type=\"text/css\">";
include ("class.phpmailer.php");
$path="../";
include ($path.'include/config.php');
include ('mailfunc.php');
$op =$_REQUEST['btnSend'];
if($op=="sendmail"){
for($i=0;$i<count($_POST["chkMembers"]);$i++)
{
if($_POST["chkMembers"][$i] != "")
{
$strSQL = "select * from tb_memtest ";
$strSQL .="WHERE memberID ='".$_POST["chkMembers"][$i]."' ";
$result = mysql_db_query($database,$strSQL);
}
}
while($members= mysql_fetch_array($result)){
$to_name ="".$members[memberName]."";
$to_email ="".$members[memberEmail]."";
$from_name ="เยาวลักษณ์";
$email_user_send ="[email protected] ";
$email_pass_send ="123456789";
$subject ="หัวข้อ Email";
$body_html = file_get_contents('contents.html');
$body_html = eregi_replace("[\]",'',$body_html);
//echo $body_html;
sendmail($to_name,$to_email,$from_name,$email_user_send,$email_pass_send,$subject,$body_html);
echo "<div align=\"left\">".$to_email.":<span style=\"color:red; font-size:11px;\">Successfully</span></div>";
} //End loop while
echo"<br>";
echo "<div align=\"center\"><form><input type=button value=\"Close Window\" onClick=\"javascript:window.close();\"></form></div>";
}else{
$n=1;
$sql_member = "select * from tb_memtest";
$result_member = mysql_db_query($database,$sql_member);
?>
<div align="left">รายชื่อ Email ทั้งหมด :</div>
<form name="frmMail" action="sendmail.php" method="post">
<table width="500" border="1" cellpadding="0" cellspacing="0">
<tr>
<th width="50"> <div align="center">ID</div></th>
<th width="200"> <div align="center">Name </div></th>
<th width="200"> <div align="center">Email </div></th>
<th width="30"> <div align="center">Select</div></th>
</tr>
<?
while($membersMail = mysql_fetch_array($result_member))
{ ?>
<tr>
<td><div align="center"><?=$n;?></div></td>
<td align="center"><?=$membersMail[memberName];?></td>
<td><?=$membersMail[memberEmail];?></td>
<td align="center"><input type="checkbox" name="chkMembers[]" value="<?=$membersMail[memberID];?>"></td>
</tr>
<?
$n++;}
?>
</table>
<input type="submit" name="btnSend" value="sendmail">
</form>
<?}?>
<?
$op =$_REQUEST['btnSend'];
if($op=="sendmail"){
for($i=0;$i<count($_POST["chkMembers"]);$i++)
{
if($_POST["chkMembers"][$i] != "")
{
$strSQL = "select * from tb_memtest ";
$strSQL .="WHERE memberID ='".$_POST["chkMembers"][$i]."' ";
$result = mysql_db_query($database,$strSQL);
}
}
while($members= mysql_fetch_array($result)){
$to_name ="".$members[memberName]."";
$to_email ="".$members[memberEmail]."";
$from_name ="เยาวลักษณ์";
$email_user_send ="[email protected] ";
$email_pass_send ="123456789";
$subject ="หัวข้อ Email";
$body_html = file_get_contents('contents.html');
$body_html = eregi_replace("[\]",'',$body_html);
//echo $body_html;
sendmail($to_name,$to_email,$from_name,$email_user_send,$email_pass_send,$subject,$body_html);
echo "<div align=\"left\">".$to_email.":<span style=\"color:red; font-size:11px;\">Successfully</span></div>";
} //End loop while
echo"<br>";
echo "<div align=\"center\"><form><input type=button value=\"Close Window\" onClick=\"javascript:window.close();\"></form></div>";
}else{
$n=1;
$sql_member = "select * from tb_memtest";
$result_member = mysql_db_query($database,$sql_member);
?>
<div align="left">รายชื่อ Email ทั้งหมด :</div>
<form name="frmMail" action="sendmail.php" method="post">
<table width="500" border="1" cellpadding="0" cellspacing="0">
<tr>
<th width="50"> <div align="center">ID</div></th>
<th width="200"> <div align="center">Name </div></th>
<th width="200"> <div align="center">Email </div></th>
<th width="30"> <div align="center">Select</div></th>
</tr>
<?
while($membersMail = mysql_fetch_array($result_member))
{ ?>
<tr>
<td><div align="center"><?=$n;?></div></td>
<td align="center"><?=$membersMail[memberName];?></td>
<td><?=$membersMail[memberEmail];?></td>
<td align="center"><input type="checkbox" name="chkMembers[]" value="<?=$membersMail[memberID];?>"></td>
</tr>
<?
$n++;}
?>
</table>
<input type="submit" name="btnSend" value="sendmail">
</form>
<?}?>
<?
$op =$_REQUEST['btnSend'];
if($op=="sendmail"){
for($i=0;$i<count($_POST["chkMembers"]);$i++)
{
if($_POST["chkMembers"][$i] != "")
{
$strSQL = "select * from tb_memtest ";
$strSQL .="WHERE memberID ='".$_POST["chkMembers"][$i]."' ";
$result = mysql_db_query($database,$strSQL);
}
}
while($members= mysql_fetch_array($result)){
$to_name ="".$members[memberName]."";
$to_email ="".$members[memberEmail]."";
$from_name ="เยาวลักษณ์";
$email_user_send ="[email protected] ";
$email_pass_send ="123456789";
$subject ="หัวข้อ Email";
$body_html = file_get_contents('contents.html');
$body_html = eregi_replace("[\]",'',$body_html);
//echo $body_html;
sendmail($to_name,$to_email,$from_name,$email_user_send,$email_pass_send,$subject,$body_html);
echo "<div align=\"left\">".$to_email.":<span style=\"color:red; font-size:11px;\">Successfully</span></div>";
} //End loop while
echo"<br>";
echo "<div align=\"center\"><form><input type=button value=\"Close Window\" onClick=\"javascript:window.close();\"></form></div>";
}else{
$n=1;
$sql_member = "select * from tb_memtest";
$result_member = mysql_db_query($database,$sql_member);
?>
<div align="left">รายชื่อ Email ทั้งหมด :</div>
<form name="frmMail" action="sendmail.php" method="post">
<table width="500" border="1" cellpadding="0" cellspacing="0">
<tr>
<th width="50"> <div align="center">ID</div></th>
<th width="200"> <div align="center">Name </div></th>
<th width="200"> <div align="center">Email </div></th>
<th width="30"> <div align="center">Select</div></th>
</tr>
<?
while($membersMail = mysql_fetch_array($result_member))
{ ?>
<tr>
<td><div align="center"><?=$n;?></div></td>
<td align="center"><?=$membersMail[memberName];?></td>
<td><?=$membersMail[memberEmail];?></td>
<td align="center"><input type="checkbox" name="chkMembers[]" value="<?=$membersMail[memberID];?>"></td>
</tr>
<?
$n++;}
?>
</table>
<input type="submit" name="btnSend" value="sendmail">
</form>
<?}?>
Tag : - - - -
Date :
2009-12-21 14:00:20
By :
Avrill
View :
1128
Reply :
8
บรรทัดที่ 146 อยู่ข้างนอก for-loop มันก็เลยรับค่า $result ตัวสุดท้ายมาครับ
ลองเอาไว้ข้างในใน for-loop ดูครับ
Code (PHP)
for($i=0;$i<count($_POST["chkMembers"]);$i++)
{
if($_POST["chkMembers"][$i] != "")
{
$strSQL = "select * from tb_memtest ";
$strSQL .="WHERE memberID ='".$_POST["chkMembers"][$i]."' ";
$result = mysql_db_query($database,$strSQL);
while($members= mysql_fetch_array($result)){
......
}
}
}
Date :
2009-12-21 14:33:52
By :
xbeginner01
มันอยู่นอก Loop หรือเปล่าครับ
Date :
2009-12-21 14:48:08
By :
ความรู้เท่าหางอึ่ง
เย้ๆ ขอบพระคุณมากๆเลย ค่ะได้แล้ว
นั่งงมอยู่ตั้งนานไม่ยอมถาม 55
ขอถามอีกนิดนะค่ะ ถ้าเราจะเพิ่ม function sleep()
โดยกำหนดให้หยุดทำงาน สัก 10 วินาที ทุกๆ ครั้งที่ส่งไป 5 ฉบับ จะเขียนยังไงดี อ่านในหนังสือแล้วมึนตึบเลย
Date :
2009-12-21 15:14:11
By :
Avrill
Code (PHP)
$numLetter =0;
for($i=0;$i<count($_POST["chkMembers"]);$i++)
{
if($_POST["chkMembers"][$i] != "")
{
$strSQL = "select * from tb_memtest ";
$strSQL .="WHERE memberID ='".$_POST["chkMembers"][$i]."' ";
$result = mysql_db_query($database,$strSQL);
while($members= mysql_fetch_array($result)){
....
if($numLetter > 5 ){
sleep(5);
$numLetter=0;
}
sendmail($to_name,$to_email,$from_name,$email_user_send,$email_pass_send,$subject,$body_html);
$numLetter++;
......
}
}
}
Date :
2009-12-21 15:24:08
By :
xbeginner01
ขอบคุณค่ะ
แล้วเราจะตรวจสอบได้อย่างไรว่ามันหยุดทำงานค่ะ
ตอนนี้ทดสอบดูแล้วมันก็ทำงานปกติ ไม่มีอะไรให้เห็นถึงความเปลี่ยนแปลง
Date :
2009-12-23 09:31:26
By :
Avrill
ตอนมันกำลังประมวลโค้ดเรามองไม่เห็นครับ
เพราะตอนประมวลจะไม่แสดง html มาครับ หลังจากประมวลเสร็จแล้วถึงจะแสดง html ทั้งหมดมาให้เห็น แต่ความเป็นจริงได้มีการส่งเมล์เป็นช่วงๆไปแล้วครับ *.*
ทดสอบของจริงกันเลยดีกว่า
http://imwriter.6te.net/mail.php
ผมเอาโค้ดข้างล่างนี้ลงใน mail.php น่ะครบ
Code (PHP)
<form method=post action=mail.php>
ส่งถึง :<input type=text name=to>กรอกอีเมล์ที่มีอยู่จริงเท่านั้นน่ะ<br/>
<input type=submit name=submit value=send>
</form>
<?
if(isset($_POST['submit']) && trim($_POST[to])!=''){
$strTo =$_POST[to];
$strSubject = "Test Send Email";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: [email protected] \n";
$headers .= "Content-type: text/html; charset=windows-874\r\n";
$headers .="X-Mailer: PHP/" . phpversion();
$numLetter =0;
for($i=0; $i<6 ;$i++){
if($numLetter >1){
sleep(10);
$numLetter =0;
}
$strMessage = "เวลาที่ส่ง ".date("Y-m -d H:i:s");
mail($strTo ,$strSubject ,$strMessage ,$headers);
$numLetter++;
}
}
?>
ข้างบนนี้ คือส่งจดหมายไป 6 ฉบับ ทุกๆ 2 ฉบับจะหยุดส่ง 10 วินาที แล้วค่อยส่งต่อ
ลองทดสอบเข้าเมล์ตัวเองเลยครับ แล้วเช็คเวลาที่ส่ง *.*
ปล.โค้ดโพส No4 ผิดนิดหนึ่ง เขียนส่งไปทุกๆ 6ฉบับและจะหยุดรอส่ง 5 วิ
แก้นิด if($numLetter > 4 ){ // ทุกๆ 5 ฉบับ
sleep(10); // หยุดรอ 10 วิ
Date :
2009-12-23 13:30:32
By :
xbeginner01
คุณ avrill ตอนนี้ผมกำลังทำโปรเจ็คจบ ครับ ผมถามนิดนึงได้ไหมครับ คือ โปรแกรมคุณ จะประมาณว่า แอ้ดชื่อ คนเสด ก็จะมีให้เลือก checkbox
ละพอเช็คเลือกเสร็จ กด submit แล้วก็ จะ ส่ง อีเมลไปตามชื่อ ที่ แอ้ดเข้าไปใช่ไหมครับ ผมคิดว่าโปรแกรมคุณน่าจะ คล้ายๆ ของผมที่กำลังมีปัญหาอยู่อ่ะครับ
คอนเซ็ป โปรแกรมผมคือ
1.แอ้ด ข้อมูลเข้าดาต้าเบส ข้อมูลในที่นี้ก็คือโปรแกรมต่างๆอะครับ
2.ดาต้าเบสก็จะไปแสดงที่หน้า user
3.ถ้า user ติ้ก เลือกโปรแกรมไหนก็จะทำการส่งลิ้งดาวโหลดไปให้ทาง Email โดย ลิ้งนี้จะมีอยู่ที่ Sv ของบริษัทอยู่แล้ว
4.ประมาณนี้อะครับ ซึ่งผมคิดว่า โปรแกรมของคุณอาจจะช่วยเหลือผมได้ไม่มากก็น้อยแหล่ะครับ
ปัญหาของผมก็คือข้อ 3 ง่ะครับ งงครับว่าจะทำยังไงเพราะต้องส่ง ลิ้งดาวโหลด ที่ตรงกับ โปรแกรมอะครับ อ๊ากปวดหัว
รบกวนแนะนำทีนะครับ หรือ ส่ง เข้า Email ผม ทีนะครับ [email protected]
Date :
2009-12-23 16:30:55
By :
นศ.ฝึกงาน
เอ่อ แล้วก็ หนังสือชื่ออะไรหรอครับทีว่ากำลังอ่านอยู่ แล้วมันมีเนื้อหาแบบ นี้ไหม = = รบกวนหน่อยนะคับ
Date :
2009-12-23 16:49:54
By :
นศ.ฝึกงาน
Load balance : Server 02