openerp和php xmlrpc不能在共享主机上工作,但在localhost上工作

时间:2014-07-23 06:44:38

标签: php openerp xml-rpc

当我试图在我的服务器上传我的php代码时,我有ipage主机服务器,它没有与openerp建立连接但是当我在localhost上尝试它时工作正常 并产生铅。我希望它在我的网站上的实时共享服务器(Ipage)上工作。 这是我的Openerp-server配置文件 我的openerp服务器托管在本地服务器上,我通过静态IP地址连接它

 [options]
 ; This is the password that allows database operations: 
 ; admin_passwd = XXXXXX
 db_host = False
 db_port = False
 db_user = openerp 
 xmlrpc =  True
 xmlrpc_port = 8069
 xml_netrpc = 8071
 db_password = False
 logfile = /var/log/openerp/openerp-server.log

这是我的crmlead.php文件

<?php

include("xmlrpc.inc");      

class Contact
{
private $subject = '', $to = '';

function __construct($to, $sub)
{
    $this->to = $to;
    $this->subject = $sub;
}


function xmlCallTo($usr, $password, $database, $server, $post)
{
    $user = $usr;
    $pass = $password;
    $db = $database;
    $server_url = $server; //'http://localhost:8069/xmlrpc/'

    $client = new xmlrpc_client($server_url.'common');

    $msg = new xmlrpcmsg('login');
    $msg->addParam(new xmlrpcval($db, "string"));
    $msg->addParam(new xmlrpcval($user, "string"));
    $msg->addParam(new xmlrpcval($pass, "string"));


    $res =  &$client->send($msg);

    if(!$res->faultCode()){

        $val = $res->value();   
        $id = $val->scalarval();

        if (empty($id)){

            echo "Connection error = ";
            exit;
        }
        else
        {
            $client2 = new xmlrpc_client($server_url.'object');
            $key = array(new xmlrpcval(array(new xmlrpcval("code", "string"), new xmlrpcval("=", "string"), new xmlrpcval($post['country'], "string")),"array"),);
            $msg = new xmlrpcmsg('execute');
            $msg->addParam(new xmlrpcval($db, "string"));
            $msg->addParam(new xmlrpcval($id, "int"));
            $msg->addParam(new xmlrpcval($pass, "string"));
            $msg->addParam(new xmlrpcval("res.country","string"));
            $msg->addParam(new xmlrpcval("search", "string"));
            $msg->addParam(new xmlrpcval($key, "array"));
            $msg->addParam(new xmlrpcval(0, "int"));
            $msg->addParam(new xmlrpcval(1, "int"));

            $res = &$client2->send($msg);

            $val = $res->value()->scalarval();

            $countryId = $val[0]->scalarval();

            $val = array ("name" => new xmlrpcval($post['company'],"string"),
                          "email_from" => new xmlrpcval($post['email'], "string"),
                          "phone" => new xmlrpcval($post['phone'], "string"),
                          "partner_name" => new xmlrpcval($post['name'], "string"),
                          "function" => new xmlrpcval($post["jobtitle"], "string"),
                          "zip" => new xmlrpcval($post['zip'], "string"),
                          "stage_id" => new xmlrpcval(2, "int"),
                          "city" => new xmlrpcval($post['city'], "string"),
                          "country_id" => new xmlrpcval($countryId, "int"),
                          "state" => new xmlrpcval("draft", "string"),
                          "user_id" => new xmlrpcval(false, "boolean"),
                          "description" => new xmlrpcval("No.of Employees: ".$post['employees']."\nState: ".$post['state']."\nIndustry: ".$post['industry']."\nAbout: ".$post['about'], "string")
                        );

            $msg = new xmlrpcmsg('execute');
            $msg->addParam(new xmlrpcval($db, "string"));
            $msg->addParam(new xmlrpcval($id, "int"));
            $msg->addParam(new xmlrpcval($pass, "string"));
            $msg->addParam(new xmlrpcval("crm.lead", "string"));
            $msg->addParam(new xmlrpcval("create", "string"));
            $msg->addParam(new xmlrpcval($val, "struct"));


            $res2 = &$client2->send($msg);

            if(!$res2->faultCode())
            {
                $readVal = $res2->value()->scalarval();

                if (!empty($readVal))
                {
                    $val = array ( "description" => new xmlrpcval("About: ".$post['about']),
                            "model_id" => new xmlrpcval(276, "int"),
                            "res_id" => new xmlrpcval($readVal,"int"),
                            "email_from" => new xmlrpcval($post['email'], "string"),
                            "email_to" => new xmlrpcval("sales@openerp.com", "string")
                            );


                    $msg = new xmlrpcmsg('execute');
                    $msg->addParam(new xmlrpcval($db, "string"));
                    $msg->addParam(new xmlrpcval($id, "int"));
                    $msg->addParam(new xmlrpcval($pass, "string"));
                    $msg->addParam(new xmlrpcval("crm.case.history", "string"));
                    $msg->addParam(new xmlrpcval("create", "string"));
                    $msg->addParam(new xmlrpcval($val, "struct"));

                    $res2 = &$client2->send($msg);

                    //echo "<br />Successfully created lead";
                    echo "<br /><h3>Thank You for your interest in openerp, we'll respond to your request shortly.</h3><br />";
                    if(strstr($post["about"],"Book")) {
                        echo '<script>window.location="http://www.openerp.com/index.php?option=com_content&amp;id=54"</script>';
                    }
                }
                else
                {
                    echo "<br />Lead is not created";
                }
            }
            else
            {
                echo "<br />Problem in message sending for create lead";
            }
        }           
    }
    else
    {
        echo "<br />Connection not established";
    }
}
 }

if(isset($_POST['country']) && $_POST['country'] != '') {
    $arrData = array();
    $arrData = array_merge($arrData, (array)$_POST);

    $cnt = new Contact('sales5@openerp.com', 'Country: '.$arrData['country']. ' About: ' .$arrData['about']);

    /* This function use for sending mail on perticular mail account */
    /*$cnt->mailTo($arrData); */

    /* This function use ceating lead in crm of opener erp database */
    //Change to fit your configuration
    $cnt->xmlCallTo('admin', 'a', 'db_1', 'http://localhost:8069/xmlrpc/', $arrData);
}
else {
    echo 'please fill the form at <a href="form.php">form.php</a>';
}

exit;

&GT;

这是我的countrylist.php

<?php
include("xmlrpc.inc");

//Change to fit your configuration
$user = "admin";
$password = "a";
$db = "db_1";
$serverUri = "http://localhost:8069/xmlrpc/";


$client = new xmlrpc_client($serverUri.'common');

$msg = new xmlrpcmsg('login');
$msg->addParam(new xmlrpcval($db, "string"));
$msg->addParam(new xmlrpcval($user, "string"));
$msg->addParam(new xmlrpcval($password, "string"));


$res =  &$client->send($msg);

if(!$res->faultCode()){

    $id = $res->value()->scalarval();   

    $client = new xmlrpc_client($serverUri.'object');

    $key = array(new xmlrpcval(array(new xmlrpcval("id", "string"),
                new xmlrpcval(">", "string"),
                new xmlrpcval(0, "int")),"array"),);



    $msg = new xmlrpcmsg('execute');
    $msg->addParam(new xmlrpcval($db, "string"));
    $msg->addParam(new xmlrpcval($id, "int"));
    $msg->addParam(new xmlrpcval($password, "string"));
    $msg->addParam(new xmlrpcval("res.country","string"));
    $msg->addParam(new xmlrpcval("search", "string"));      
    $msg->addParam(new xmlrpcval($key, "array"));
    $msg->addParam(new xmlrpcval(0, "int"));
    $msg->addParam(new xmlrpcval(0, "int"));
    $msg->addParam(new xmlrpcval("id ASC", "string"));

    $res = &$client->send($msg);

    if(!$res->faultCode())
    {
        $val = $res->value()->scalarval();

        $ides = array();

        for ($i=0 ; $i<count($val); $i++)
        {
            array_push($ides, new xmlrpcval($val[$i]->scalarval(), "int"));
        }

        $client = new xmlrpc_client($serverUri.'object');

        $fields = array(new xmlrpcval("code", "string"), new xmlrpcval("name", "string"));

        $msg = new xmlrpcmsg('execute');
        $msg->addParam(new xmlrpcval($db, "string"));
        $msg->addParam(new xmlrpcval($id, "int"));
        $msg->addParam(new xmlrpcval($password, "string"));
        $msg->addParam(new xmlrpcval("res.country","string"));
        $msg->addParam(new xmlrpcval("read", "string"));
        $msg->addParam(new xmlrpcval($ides, "array"));
        $msg->addParam(new xmlrpcval($fields, "array"));

        $res = &$client->send($msg);

        if (!$res->faultCode())
        {
            $val = $res->value()->scalarval();

            $select ='<select class="inputbox required"  name="country" id="country" >                                  
                        <option value="" selected="selected"> -- Select an Option --     </option>';

            for ($i=0; $i<count($val);$i++)
            {
                $field = $val[$i]->scalarval();
                $select .= '<option value="'.$field['code']->scalarval().'">'.$field['name']->scalarval().'</option>';
              }

            $select .= '</select>';

            echo $select;
        }
        else
        {
            echo "Country not getting";
        }
    }
    else
    {
        echo "Country list id empty";
    }       
}
else
{
    echo "connection not establish";
}


?>

最后这是我的form.php

<html>
<head>
<title>Contact form</title>
</head>
<body>
<h4>Contact Form</h4>
<form method="post" action="crmlead.php">
    <label for="firstname">Firstname</label>
        <input type="text" name="name" value="" id="firstname" class="required text" title="Please, fill in your firstname" data-required="true"><br />
    <label for="company">Company</label>
        <input type="text" name="company" value="" id="company" class="required text" title="Please, fill in your company name" data-required="true"><br />
    <label for="jobtitle">Jobtitle</label>
        <input type="text" name="jobtitle" value="" id="jobtitle" class="required text" title="Please, fill in your job title" data-required="true"><br />
    <label for="email">Email</label>
        <input type="text" name="email" value="" id="email" class="required email text" title="Please, enter a valid email address" data-required="true"><br />
    <label for="phone">Phone</label>
        <input type="text" name="phone" value="" id="phone" class="required phone text" title="Please use international format (eg: +32...)" data-required="true">

    <label for="city">City</label>
        <input type="text" name="city" value="" id="city" class="required text" title="Please, fill in your city" data-required="true"><br />
    <label for="zip">Zipcode</label>
        <td><input type="text" name="zip" value="" id="zip" class="required text" title="Please, fill in your zipcode" data-required="true"><br />
    <label for="state">State</label><input type="text" name="state" value="" id="state" class="text" title="Please, fill in your state"> <br />
    <label> Country : <?php include('countrylist.php'); ?></label> <br />
    <label for="employees">No.of employees</label>

            <select class="required" name="employees" title="Please, select the No. of employees" data-required="true">
                <option value=""> -- select an option -- </option>
                <option value="1-5">1-5</option>
                <option value="5-10">5-10</option>
                <option value="10-20">10-20</option>

                <option value="20-100">20-100</option>
                <option value="100-500">100-500</option>
                <option value="500+">500+</option>
            </select><br />

          <label for="industry">Industry expertise</label>
            <select class="required select" name="industry" title="Please, select an industry" data-required="true">
                <option value=""> -- select an option -- </option>
                <option value="auction">Auction Houses</option>
                <option value="bank">Bank</option>
                <option value="distribution">Distribution</option>
                <option value="education">Education</option>

                <option value="entertainment">Entertainment</option>
                <option value="erp_integrator">ERP Integrator</option>
                <option value="food_industries">Food industries</option>
                <option value="hotels_restaurants">Hotels &amp; restaurants</option>
                <option value="insurance">Insurance</option>
                <option value="manufacturing">Manufacturing</option>
                <option value="non_profit">Non-Profit</option>
                <option value="public">Public</option>

                <option value="services">Services</option>
                <option value="telecommunication">Telecommunication</option>
                <option value="others">Others</option>
            </select><br />
    <p>
        <label> About : <textarea name="about"></textarea></textarea></label>
    </p>
    <p>
        <input type="submit" value="Send"/> <input type="reset" />
    </p>
</form>

</body>
</html>

0 个答案:

没有答案