ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingท่านเทพ PHP เชิญทางนี้หน่อยครับ มีเรื่องปวดหัวให้ท่านแก้ให้ที
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ท่านเทพ PHP เชิญทางนี้หน่อยครับ มีเรื่องปวดหัวให้ท่านแก้ให้ที  (อ่าน 2089 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« เมื่อ: 10 พฤษภาคม 2012, 22:14:34 »

งงอ่ะครับ
ผมมี code php ดังนี้ครับ

ชื่อไฟล์ autosend.php

<?
$etime = strftime("%H:%M:%S");
$today = date('Y-m-d');
$todaychk = "$today $etime";
$expiredate = "2012-05-10 23:30:00";

if ($expiredate == $todaychk)
{
code ส่งเมล์ข้อความแจ้งมาที่เมล์ของเรา
}else{
ไม่มีไรเกิดขึ้น
}
?>

จาก code ด้านบนคือต้องการเช็คว่า ถ้า expiredate มีค่าตรงกับวันเวลาปัจจุบันให้ส่งข้อความแจ้งมาที่เมล์ของเรา
แต่ถ้าไม่ตรงก็ไม่มีไรเกิดขึ้น

ความต้องการแค่ เมื่อเราอัพโหลดไฟล์ autosend.php ขึ้น Host แล้ว และไม่มีใครเปิดไฟล์นี้ขึ้นมาเลย
จะทำอย่างไรให้มันเช็คเองอัตโนมัติและส่งข้อความมายังเมล์เราที่เราสร้างเงื่อนไขไว้

พอเข้าใจมั้ยครับ ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 10 พฤษภาคม 2012, 22:18:38 โดย $100perday » บันทึกการเข้า

เหนื่อย..
shokarita
สมุนแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 996



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 10 พฤษภาคม 2012, 22:16:21 »

ตั้ง cronjob ครับ
งงอ่ะครับ
ผมมี code php ดังนี้ครับ

ชื่อไฟล์ autosend.php

<?
$etime = strftime("%H:%M:%S");
$today = date('Y-m-d');
$todaychk = "$today $etime";
$expiredate = "2012-05-10 23:30:00";

if ($expiredate == $todaychk)
{
code ส่งเมล์ข้อความแจ้งมาที่เมล์ของเรา
}else{
ไม่มีไรเกิดขึ้น
}

จาก code ด้านบนคือต้องการเช็คว่า ถ้า expiredate มีค่าตรงกับวันเวลาปัจจุบันให้ส่งข้อความแจ้งมาที่เมล์ของเรา
แต่ถ้าไม่ตรงก็ไม่มีไรเกิดขึ้น

ความต้องการแค่ เมื่อเราอัพโหลดไฟล์ autosend.php ขึ้น Host แล้ว และไม่มีใครเปิดไฟล์นี้ขึ้นมาเลย
จะทำอย่างไรให้มันเช็คเองอัตโนมัติและส่งข้อความมายังเมล์เราที่เราสร้างเงื่อนไขไว้

พอเข้าใจมั้ยครับ ขอบคุณครับ
?>
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #2 เมื่อ: 10 พฤษภาคม 2012, 22:21:14 »

ตั้ง cronjob ครับ
งงอ่ะครับ
ผมมี code php ดังนี้ครับ

ชื่อไฟล์ autosend.php

<?
$etime = strftime("%H:%M:%S");
$today = date('Y-m-d');
$todaychk = "$today $etime";
$expiredate = "2012-05-10 23:30:00";

if ($expiredate == $todaychk)
{
code ส่งเมล์ข้อความแจ้งมาที่เมล์ของเรา
}else{
ไม่มีไรเกิดขึ้น
}

จาก code ด้านบนคือต้องการเช็คว่า ถ้า expiredate มีค่าตรงกับวันเวลาปัจจุบันให้ส่งข้อความแจ้งมาที่เมล์ของเรา
แต่ถ้าไม่ตรงก็ไม่มีไรเกิดขึ้น

ความต้องการแค่ เมื่อเราอัพโหลดไฟล์ autosend.php ขึ้น Host แล้ว และไม่มีใครเปิดไฟล์นี้ขึ้นมาเลย
จะทำอย่างไรให้มันเช็คเองอัตโนมัติและส่งข้อความมายังเมล์เราที่เราสร้างเงื่อนไขไว้

พอเข้าใจมั้ยครับ ขอบคุณครับ
?>

ตั้ง cronjob ครับ
ยังไงเหรอครับท่าน
บันทึกการเข้า

เหนื่อย..
kungbest
สมุนแก๊งเสียว
*

พลังน้ำใจ: 86
ออฟไลน์ ออฟไลน์

กระทู้: 670



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 10 พฤษภาคม 2012, 22:58:05 »

ต้องดูว่าใช้ control panel อะไร แต่ละอันก็จะมีเมนู cronjob มาให้คับ
บันทึกการเข้า

SL_master
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 57
ออฟไลน์ ออฟไลน์

กระทู้: 1,188



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 10 พฤษภาคม 2012, 23:53:17 »

ตั้ง cronjob ลอง หาจากอากู๋ดูครับ

ส่วนถ้าแบบแมนนวล คิดว่า cronjob ยากไป
ก็ลองเอาไป include ไว้ที่หน้าหลักเลย
บันทึกการเข้า

itportal
ก๊วนเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 350



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 11 พฤษภาคม 2012, 09:24:30 »

ใช้ cron job นั่นล่ะครับ ให้เข้าใจง่ายๆ มันก็คือการกำหนดวันเวลาให้ทำงานชิ้นนั้นๆ เป็นประจำ โดยที่เราไม่ต้องไปรันในเบราเซอร์
เช่น ต้องการส่งอีเมล์อวยพรวันเกิดให้กับสมาชิกในเว็บ ก็ไปตั้ง cron job ว่าเวลา 00.00 ของทุกวัน ให้โฮสติ้ง/เซิฟเวอร์เรียกใช้ไฟล์ autosend.php เองแบบอัตโนมัติ
หรือแม้กระทั่ง การสั่งแบ็คอัพไฟล์ ดาต้าเบส ฯลฯ
« แก้ไขครั้งสุดท้าย: 11 พฤษภาคม 2012, 09:25:26 โดย itportal » บันทึกการเข้า

xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 11 พฤษภาคม 2012, 09:37:21 »

ดูจากโค๊ด ใช้เครื่องหมาย == จะมีปัญหานะครับ เพราะมันต้องรันตรงกันพอดี เงื่อนไขถึงจะถูก ถ้ามากกว่าหรือน้อยกว่า มีปัญหาแน่นอน
อ้างถึง
if ($expiredate == $todaychk)

ลองเปลี่ยนวิธีตามที่ข้างบนบอกนะครับ รัน Cronjob ในเวลาที่เราต้องการ แล้วเอาเงื่อนไขข้างบนนี้ออกด้วยนะครับ
 wanwan003
บันทึกการเข้า

pugler
ก๊วนเสียว
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 206



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 11 พฤษภาคม 2012, 10:55:09 »

ตั้ง cronjob ครับ แล้วก็

โค๊ด:
if ($expiredate <= $todaychk)

ครับผม
บันทึกการเข้า

รับทำเว็บไซต์ทุกชนิด ทุก CMS ตัด template CSS Javascript HTML ด่วน ดี ถูก!
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 11 พฤษภาคม 2012, 10:57:05 »

ตั้ง cronjob ครับ แล้วก็

โค๊ด:
if ($expiredate <= $todaychk)

ครับผม

<= ก็ไม่ได้เช่นกันครับ เพราะมันเป็น String -..-
บันทึกการเข้า

itportal
ก๊วนเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 350



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 11 พฤษภาคม 2012, 11:01:40 »

ถ้าตั้ง cron job ให้รันทุกวัน ก็ไม่มีเหตุผลที่จะใช้เงื่อนไข "น้อยกว่า" นะครับ เพราะไม่งั้น มันจะกลายเป็นการส่งซ้ำ เว้นแต่ว่าต้องการให้เป็นอย่างนั้นอยู่แล้ว

ตั้ง cron job ให้รันทุกวัน เวลา 23.30 ก็ได้ครับ แล้วเช็คแค่วันที่ให้ตรงกันก็พอ ไม่ต้องเช็คเวลา
บันทึกการเข้า

seowizard
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 11 พฤษภาคม 2012, 11:08:00 »

== ถ้าใช้แบบนี้ เวลาที่ cronjob กับ ที่ตัว program ต้อง เปะ จริง ๆ ไม่งั้นมันจะไม่เข้าเงื่อนไขครับ

วิธีแก้ให้ใช้ <= แทนครับ แล้วเช็คค่าซ้ำเอา ถ้าส่งแล้วก็ไม่ต้องส่งอีกอะไรประมาณนี้
บันทึกการเข้า
pugler
ก๊วนเสียว
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 206



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 11 พฤษภาคม 2012, 11:19:48 »

ตั้ง cronjob ดีสุดแล้วครับแล้วก็ code เป็น
โค๊ด:
<?
$etime = strftime("%H:%M:%S");
$today = date('Y-m-d');
$todaychk = "$today $etime";

$expiredate = "2012-05-10 23:30:00";

if (strtotime($expiredate) <= strtotime($todaychk))
{
echo "over";
}else{
echo "not yet";
}

ใช้ strtotime เพื่อ convert time ที่เป็น string ให้เป็น UNIX Timestamp แล้วเอามาเปรียบเทียบกันครับ

ตาม code ถ้าเวลาที่ expire น้อยกว่าหรือเท่าเวลาปัจจุบัน (หรือจริงๆ ก็คือ เวลาปัจจุบันถึงหรือเลยเวลาที่ expire ไปแล้ว) ก็ให้ส่งเมล์ครับ

ต้องใช้ <= เพราะไม่งั้นถ้าเข้ามาแล้วมันเลยไปแล้วก็จะไม่เข้าเงื่อนไขนะครับผม
บันทึกการเข้า

รับทำเว็บไซต์ทุกชนิด ทุก CMS ตัด template CSS Javascript HTML ด่วน ดี ถูก!
หน้า: [1]   ขึ้นบน
พิมพ์