2010-04-14 63 views
0

我最近發佈在這裏accessing $_SESSION when using file_get_contents in PHP關於我遇到的問題和普遍的共識是,我沒有做對了......雖然我通常認爲「只要它工作...「我想我會得到一些關於如何做得更好的反饋......最好的方法來編程調用php

我是從多個不同的地區以完全相同的格式發送完全相同的電子郵件。

  1. 在審查作業時,重新分配給另一個安裝程序

原來的劇本是一個PHP頁面被稱爲輸入了作業(自動作爲POST的一部分)

  • 手動使用AJAX發送工作訂單請求 - 這隻需調用一個標準的PHP頁面,返回成功或錯誤消息,然後在調用頁面中顯示。

    現在我已經嘗試在自動作業輸入中使用相同的頁面,因此它通過表單接受作業,記錄並郵寄它。

    我的問題是(因爲你可以從原來的職位看)功能的file_get_contents()不利於這項事業在自動化腳本...

    我的問題是從一個AJAX調用我需要做一些事情,如包括數據庫連接初始化器,啓動會話以及在獨立頁面中做其他事情......如果它是一個包含文件,那麼它們中的一些或全部是不需要的,因此它使得文件僅適用於一個目的...

    如何使文件適合兩種用途?我想我正在尋找一個最好的文件佈局和結構,以應付這兩種方案的建議......

    當前文件看起來像:

    <?php 
    session_start(); 
    
    $order_id = $_GET['order_id']; 
    
    include('include/database.php'); 
    
    function getLineItems($order_id) { 
    
        $query = mysql_query("SELECT ...lineItems..."); 
    
        //Print rows with data 
        while($row = mysql_fetch_object($query)) { 
    
         $lineItems .= '...Build Line Item String...'; 
    
        } 
    
        return $lineItems; 
    } 
    
    function send_email($order_id) { 
    
        //Get data for current job to display 
        $query = mysql_query("SELECT ...Job Details..."); 
    
        $row = mysql_fetch_object($query); 
    
        $subject = 'Work Order Request'; 
    
        $email_message = '...Build Email... 
             ...Include Job Details... 
             '.getLineItems($order_id).' 
             ...Finish Email...'; 
    
        $headers = '...Create Email Headers...'; 
    
        if (mail($row->primary_email, $subject, $email_message, $headers)) { 
    
         $query = mysql_query("...log successful send..."); 
    
         if (mysql_error()!="") { 
          $message .= '...display mysqlerror()..'; 
         } 
    
         $message .= '...create success message...'; 
    
        } else { 
    
         $query = mysql_query("...log failed send..."); 
    
         if (mysql_error()!="") { 
          $message .= '...display mysqlerror()..'; 
         } 
         $message .= '...create failed message...'; 
        } 
    
        return $message; 
    
    } // END send_email() function 
    
    //Check supplier info 
    $query = mysql_query("...get suppliers info attached to order_id..."); 
    
    if (mysql_num_rows($query) > 0) { 
    
        while($row = mysql_fetch_object($query)) { 
         if ($row->primary_email=="") { 
    
          $message .= '...no email message...'; 
    
         } else if ($row->notification_email=="") { 
    
          $message .= '...no notifications message...'; 
    
         } else { 
    
          $message .= send_email($order_id); 
    
         } 
    
        } 
    
    } else { 
    
        $message .= '...no supplier matched message...'; 
    } 
    
    print $message; 
    
    ?> 
    
  • 回答

    0

    做出功能,包括它
    單獨功能。郵件發送的認證(需要會話)
    然後在兩個任務中包含郵件發送功能。

    +1

    感謝Col,但我希望有更多的指導意見......我已經在另一篇文章中得到了這些反饋......我更加期待理解要在什麼功能以及忽略什麼內容。 我是一個非常基礎的中級程序員......這對我來說是一種愛好,而不是一份工作,所以我沒有太多的基礎知識培訓 – sjw 2010-04-14 07:01:03