【问题标题】:Best way to program a call to php编程调用 php 的最佳方法
【发布时间】:2011-02-07 18:50:01
【问题描述】:

我最近在这里accessing $_SESSION when using file_get_contents in PHP 发布了关于我遇到的一个问题,普遍的共识是我没有做对......虽然我通常认为“只要它有效......”我想我会得到一些关于如何做得更好的反馈...

我要从多个不同区域以完全相同的格式发送完全相同的电子邮件。

  1. 输入作业时(自动作为 POST 的一部分)
  2. 在审核作业以重新分配给其他安装人员时手动进行

原始脚本是一个 php 页面,使用 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;

?>

【问题讨论】:

    标签: php file-get-contents


    【解决方案1】:

    创建一个函数并包含它
    执行分离功能。来自邮件发送(不需要)的身份验证(需要会话)
    然后在这两个任务中加入邮件发送功能。

    【讨论】:

    • 谢谢 Col,但我希望能得到更多指导……我已经在另一篇文章中得到了反馈……我更想了解在什么功能中添加什么和忽略什么......我是一个非常基础的中级程序员......这对我来说是一种爱好,而不是一份工作,所以我没有太多的基础培训
    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多