2017-06-27 7 views
1

私はいくつかの変数の結果を電子メールアドレスに送信するPHPページがありますが、これは完璧に動作しますが、今すぐメールを送信する前に変数を待ってから電子メールを実行してください。 varibalesのグループは、Dグループと2つの変数Zグループと呼ぶことができますPHPのメール機能で条件を実行する変数を待つ

最初の変数が待たれている間、この変数を同じPHPページで手掛けてください。

B変数が届かない場合にのみ、2時間待つ必要があります。ユーザーがサブグループDグループを2時間前に書き直し、時間を0に戻してZグループに戻ってください。

<?php 

$datetime1 = new DateTime('2017-06-27 08:00:00'); 
$datetime2 = new DateTime(); 
$interval = $datetime1->diff($datetime2); 
//echo $interval->format('%h'); 
if ($interval->format('%h') > 2) { 
echo "yes more than 2 hours"; 
} else { 
echo "not more than 2 hours"; 
// 12 hours are up 
// give your error message 
} 
?> 

は、他の変数existeがそうこれは私が思い付いたの場合の条件は比較ならば、別のものを作成するdiferent 2時間を取得するための時間間隔に考えていました。

<?php 
$groupD = $_GET["info"]; 
$datetime1 = new DateTime('2017-06-27 08:00:00'); 
sleep(1800); // sleep for 30 mins awaiting 
$groupz = $_GET["infoxx"]; 
$datetime2 = new DateTime(); 
$interval = $datetime1->diff($datetime2); 
//echo $interval->format('%h'); 


if ($interval->format('%h') > 2) { 
if (!is_null($groupD) & !is_null($groupz)){ 
    echo "execute mail"; 
} 
else { 
    echo "wont execute"; 
} 

} else { 
echo "not more than 2 hours"; 
// 12 hours are up 
// give your error message 
} 

?>

2時間maximunのであるから、この問題イムフェーシングは、グループZは、同じPHPページに到着するまで、グループDのwaitngを維持する方法ですが、私は眠りに30のMNSを設定する方法を、これまで、変数を待つ必要がありますそのテスト。

、ここでは、私のメールスクリプト///(私が受け取る変数が配列でAJAXを経由して、いくつかのjsスクリプトから来ている)である

>?php 
$mail = $_GET["info"]; 
    //sleep(60); 
    foreach ($mail as $gtm) { 
    $message .= $gtm; 
    } 
    $header ="From: [email protected]" . "\r\n"; 
    $para = '[email protected]'; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

    $titulo = 'Mailing list Newsletter'; 

    $message = '<html><body>'; 
    $message .= '<br/> <p>El siguiente usuario abandono el la compra de un paquete en booking hello </p><br/>'; 
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="2">'; 
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $mail[0] ."</td></tr>"; 
    $message .= "<tr><td><strong>Precio Total del paquete:</strong> </td><td>" . $mail[1] ."</td></tr>"; 
    $message .= "<tr><td><strong>Nombre:</strong> </td><td>" . $mail[2] ."</td></tr>"; 
    $message .= "<tr><td><strong>Apellido:</strong> </td><td>" . $mail[3] ."</td></tr>"; 

    $message .= "</table>"; 
    $message .= "</body></html>"; 



     if(mail($para, $titulo, $message, $header)){ 
       die(); 
     }else{ 
     //echo "false"; 
     } 

     /* }else{ 
     echo "false"; 
     } 


    */ 

     } 
    ?> 
+0

です値がURLにある場合、それらを変更すると、最初からコードを実行する必要があります。 – knrf

答えて

1

前方アプローチが到達するために必要なファイルになりますかなりストレート特定のページ最初は、いくつかのtmpファイルに書き込む必要があります - arrived.txt

ファイルarrived.txtが空であるかどう確認するために(2時間まで、すなわち5秒ごと)ポーリングを待つ必要があるあるファイルを---その内容にかかわらず

  • それが空でない場合は、次のファイルを空にしてDO ACTION X

  • それが空の場合:DO ACTION Y

EDIT

がここに書き込む方法ですファイル:

ここでは

は、ファイルが空であるかどうかをチェックする方法は次のとおりです。ここで

if(filesize($filename) > 0) { 
    //file not empty... 
    //DO ACTION X 
} else { 
    //file is empty... 
    //DO ACTION Y 
} 

は、ページがすでにこれらのように、PHPの実行時にGET値がロードされる方法に投票 5秒ごとに

for ($i=0; $i <= 120; $i++) { 
    if(filesize($filename) > 0) { 
     //file not empty... 
     //DO ACTION X 
    } else { 
     //file is empty... 
     //DO ACTION Y 
    } 
    sleep(5); //wait 5 seconds 
} 
+0

これはtxtファイルでこれを行う方法に慣れていません。 –

+0

@walteralexander、あなたに行くためのコードを追加しました。 – Rushikumar

+0

私のPHPスクリプトを見て、私のコードを貼り付ける場所を教えてくれるように、質問を編集するつもりです –

関連する問題