簡體   English   中英

我終於可以使用cron了……但是我不確定它是否可以與我的代碼一起使用。 我該如何更改?

[英]I finally was able to use cron… but I'm not sure if it will work with my code. How can i change it?

我的虛擬主機支持cronjobs。 我很新,所以我幾乎不知道自己在做什么。 我安排cron運行一個發送電子郵件的腳本。 但是我不知道該怎么辦! 這是我的cron: 0 0 28 * * php -f /home/a7269592/contact.php現在我該如何調整我的代碼,所以當它是28號時,該代碼將發送一封電子郵件。 這是PHP:

<?php    
if(isset($_POST['email']))
{

 $headers = "From: Memory Jet <your_company@example.com>\r\n";


$to_visitor = $_POST["email"];
$common_data = $_POST["message"];
mail($to_visitor, "Your Memory", $common_data, $headers);

} ?>

這是html表單:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<html> <body><form method="post" action="contact.php">
 Email: <input name="email" type="text"><br> name:<br> 
<textarea name="name" rows="15" cols="40"></textarea><br> 
Message:<br> <textarea name="message" rows="15" cols="40"></textarea><br>
 <input type="submit"> </form> <body> <html>
</body>

那么我將如何更改php,以便cron安排它? 提前致謝! -本

到目前為止,我的處境完全相同。 在我看來,您正在嘗試將郵件從“發布時”精確地調度到預定的時間表。 因此,首先需要知道的是:

在運行CRON時,您將無法訪問$ _SERVER,$ _ POST和其他全局變量

那是因為您運行PHP而不是通過服務器運行,而PHP是全局變量的作者。

因此,您需要為郵件創建臨時存儲,例如郵件任務文件(例如,在執行cron mailer發送郵件時,附加執行任務時可能會出現問題,同時您的前端PHP腳本希望添加一些任務,以便任務文件可能被損壞)或數據庫,或您想像的任何事情。

之后,您需要設置cron任務,例如,將執行前500個郵件任務並將其郵寄。 當然,您現在可以郵寄所有郵件任務,這不是問題。

希望能幫助到你。

我知道您正在嘗試做什么,但是您是否打算僅在28日發送電子郵件或存儲並在28日發送電子郵件呢? 如果您使用的是第一個選項,則應對其進行更改,以便其說明如下。

<?php   
$today = getdate()
if(isset($_POST['email']) && $today['mday'] == 28)
{

$headers = "From: Memory Jet <your_company@example.com>\r\n";


$to_visitor = $_POST["email"];
$common_data = $_POST["message"];
mail($to_visitor, "Your Memory", $common_data, $headers);

} ?>

至於存儲,注釋是正確的,您應該重新構建代碼。 crontab將運行代碼,而不會從表單獲取gettimg數據-基於Web和CLI請求的處理方式不同。 我將明確地添加另一個文件來處理表單請求,並將其移至表單或數據庫。 由crontab運行的程序將從該文件或數據庫中讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM