2017-04-01 11 views
-2

以下は完全に機能するコードです。私はブラウザを介してそれを呼び出すときに動作します。しかし、私はそれを実行する私のCronの仕事を得ることができません。私はどんな解決策を試してみても、このスクリプトが24時間365日に1度、1時間に1回発射されるようなアイデアを公開しています。メールスクリプトは1時間ごとに実行する必要がありますが、動作していないcronはありません

情報:

私は次のことを試してみました:

これらのいずれかを行うとき、私はまだデータベースに販売を追加したり、単一のメールを送信したりしてはいけません。

  • /opt/php54/bin/php /home1/user/public_html/Sales/scripts/sales-notif_em.php - 開くことができませんでした入力ファイル:/home1/user/public_html/scripts/sales-notif_em.php
  • php /home1/user/public_html/Sales/scripts/sales-notif_em.php - この上映が、何もない空メール:コンテンツタイプ:text/htmlの
  • php -q /home1/lotscav1/public_html/Sales/scripts/sales_notif_em.php - 私はもちろん
  • /usr/bin/curl home1/user/public_html/scripts/sales-notif_em.phpのシステムからメールを取得しない - カール:(3)
  • 任意のコマンドhttp://website.c0m/Sales/scripts/sales_notif_em.phpと後半を持っている(PHPのようなまたは/ usr/binに/カール)不正な形式 - Cronを追加しようとするとJSONエラーが発生する仕事

私は次のようなものにチェックしている:

  • ファイルのパーミッションを655
  • タイムスタンプは、ここでは、お客様のテーブルの下に古い時間

未満であるされている私のコードです:

<?php 
//find out current time and 1 hour ago 
date_default_timezone_set('America/New_York'); 
$current_time = strtotime("now"); 
$hour_ago = strtotime('-1 hour'); 

////////////////////////////////////////////////////////////////// 
/////////////////l// Connect to Sales Database /////////////////// 
////////////////////////////////////////////////////////////////// 

$mysqli_s = new mysqli("localhost", "user", "password", 
"server_sales_data"); 
if ($mysqli_s->connect_errno) { 
echo "Failed to connect to MySQL: (" . $mysqli_s->connect_errno . ") 
" . $mysqli_s->connect_error; 
} 

////////////////////////////////////////////////////////////////// 
///////////////////// Connect to EM Database //////////////////// 
////////////////////////////////////////////////////////////////// 

$mysqli_em = new mysqli("localhost", "user", "password", 
"server_dlgEM"); 
if ($mysqli_em->connect_errno) { 
echo "Failed to connect to MySQL_EM: (" . $mysqli_em->connect_errno . 
") " . $mysqli_em->connect_error; 
} 

//Grab store name 
$dlg_store = "EM"; 

$em_request = "SELECT * FROM customers WHERE date BETWEEN '$hour_ago' 
AND '$current_time'"; 
$em_result = mysqli_query($mysqli_em, $em_request) or die("Error No 
Sales EM"); 
while ($em_row = mysqli_fetch_array($em_result)) { 
$em_prod_num = $em_row["prod_num"]; 
$em_receipt = $em_row["receipt"]; 


////////////////////////////////////////////////////////////////// 
///////////////////// Grab info for EM Sales //////////////////// 
////////////////////////////////////////////////////////////////// 

$request_s = "SELECT * FROM all_products WHERE 
dlgprod_num='$em_prod_num' AND dlg_store='$dlg_store'"; 
$result_s = mysqli_query($mysqli_s, $request_s) or die("Error dlg 
prod num EM"); 
while ($row_s = mysqli_fetch_array($result_s)) { 
     $sku_s = $row_s["sku"]; 
     $dlgprod_num_s = $row_s["dlgprod_num"]; 
     $book_title_s = addslashes($row_s["book_title"]); 
     $dlgprod_price_s = $row_s["dlgprod_price"]; 
     $author_name_s = addslashes($row_s["author_name"]); 
     $author_email_s = $row_s["author_email"]; 
     $publisher_s = $row_s["publisher"]; 
     $dlg_store_s = $row_s["dlg_store"]; 

      $add_sql_s = "INSERT INTO all_author_sales SET 
      `sku`='$sku_s', 
      `dlgprod_num`='$dlgprod_num_s', 
      `dlgprod_nam`='$book_title_s', 
      `dlgprod_price`='$dlgprod_price_s', 
      `author_name`='$author_name_s', 
      `author_email`='$author_email_s', 
      `publisher`='$publisher_s', 
      `dlg_store`='$dlg_store_s', 
      `dlgcustomer_receipt`='$em_receipt' "; 

//create signature 
$sig = "The Admin Team at www.website.com"; 
//to 
$admin_email = "[email protected]"; 
$to = array($author_email_s, $admin_email); 

//setup email headers 
$headers='From: ' . $admin_email . "\r\n" . 
'Reply-To: ' . $admin_email . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$headers .= $emailbody."\n\n"; 

//email subject and body 
$subject = "Your book stats"; 
$message = " 
Hi $author_name_s,<br /> 
I just wanted to send you a message and let you know that the book or 
books below have just been purchased.<br /><br /> 

Store: $dlg_store_s<br /> 
Receipt: $em_receipt<br /> 
Sku Number: $sku_s<br /><br /> 

Book Title: $book_title_s<br /> 
Publisher: $publisher_s<br /> 
Product Number: $dlgprod_num_s<br /> 
Price: $dlgprod_price_s<br /><br /> 

Sincerely,<br /> 
$sig<br /><br /> 

To remove yourself from this notification, please send an email to 
$admin_email with Unsubscribe in the subject line. 
"; 

      if ($mysqli_s->multi_query($add_sql_s) === TRUE) { 
      mail (implode(',', $to), $subject, $message, $headers); 
      } else { 
       echo "Error: " . $add_sql_s . "<br>" . $mysqli_s- 
>error . "<br>" . $string; 
      } 


    } 



} 


?> 
+0

完全なスクリプトをステップごとに試して、エラーの原因を確認してください。新鮮なファイルから始めて、単に何かを記録してから、クエリを実行してログを記録してください...エラーが出るまで手順をいっぱいにしておけば、原因を正確に知ることができます。 – hdezela

+0

ありがとうございます!トラブルシューティング101 lol。私はいつも単純なものを過度に複雑にして忘れようとします。 –

+0

Markdownの書式設定、特にインラインコードの書式設定と順序付けられていないリスト(「箇条書き点」)を試してみてください。読みやすく、読みやすく、ボランティア編集作業が少なくて済みます。ありがとう。 (推測すると、これはあなたのダウンフォースのソースかもしれません)。 – halfer

答えて

0

私の賭けは間違っているhを実行したいphpファイルにコピーします。

可能であれば、端末を使用してみてください。ファイルが置かれているフォルダに移動し、そこからコマンドライン経由で実行してみてください。

また、別の名前を参照しています:sales-notif_em.php & sales-notif_me.php。

+0

私は再びファイルパスを調べています。 2つの異なるファイルについてごめんね。私は各データベースごとに3つのファイルを持っています。 sales-notif_me、sales-notif_em、sales-notif_lcです。それは私がテストしているものです。 –

+0

パスが正しくないのは、ファイルが見つからないためです。私はセールスパスを使ってサブドメインとして販売しています。私はフォルダ名を小文字に変更した後、サブドメインをやり直して簡単にしました。私はトラブルシューティングを行うためにいくつかの変更を行っていますので、私はあなたの投稿を続けます。 –

0

(OPの代わりに掲示)

ありがとうございました。私はテスト目的の著者として電子メールでカスタム製品を作った。顧客のテーブルでは、製品111111と111110を挿入しました。しかし、all_productsでは11111111と11111110の製品を提供しました。最終結果は間違いでした。

このイベントから何かを学ぶことができたら幸いです。知識は私の自我よりも重要です。ありがとうございました!

関連する問題