试图使PHP代码在bluemix中工作

时间:2016-06-10 16:47:14

标签: php mysql ibm-cloud devops

我一直致力于一个涉及创建PHP服务的项目,使其在Vertrigo本地工作,然后将其上传到IBM Bluemix。

代码似乎在本地工作得很好,但是当试图找出Bluemix中的代码时,它开始失败。

该项目由3个文件组成:index.htmlclient.phpserver.php。显然,问题出现在client.phpserver.php之间。当我尝试从server.php调用client.php中定义的函数时,它将跳过调用该函数的行,并继续执行其余的函数。

这是client.php代码的一部分:

<?php
    if(isset($_POST['saludo']) && !empty($_POST['nombre']) && !empty($_POST['apellido'])) {
        require_once ('nusoap.php');

        $soapclient = new soapclient( 'server.php');
        $resultado = $soapclient->call('funcionsaludo',array( 'nombre'=>$_POST['nombre'],'apellido'=>$_POST['apellido']));

        $html = <<<html
            <html>
            <head></head>
            <title>Saludando...</title>
            <body bgcolor = "#9d1fc4" text = "black"><center><img src = "/images/3.jpg"></center><br><br>
            <center><b>$resultado<br><br><a href='index.html' style='color: #ffffff'>INICIO</a></b></center>
            </body>
            </html>
        html;

        echo $html;
    }

正在跳过的部分是对文件server.php的调用,即:

$soapclient = new soapclient( 'server.php');
$resultado = $soapclient->call('funcionsaludo',array( 'nombre'=>$_POST['nombre'],'apellido'=>$_POST['apellido']));

最后,我展示了server.php文件的一部分:

<?php
    require_once('nusoap.php');

    $server = new soap_server;
    $server->register('funcionsaludo');
    $server->register('getData'); 
    $server->register('insertData');

    function funcionsaludo ($nombre,$apellido) {
        return "<html><head></head><body>Hola $nombre $apellido<br><br></body></html>";
    }

结果,函数funcionsaludo返回一个由&#34; Hola $ nombre $ apellido&#34;组成的字符串,但它似乎被跳过,因为字符串没有在屏幕上显示。

我还要补充说,所有3个文件index.htmlclient.phpserver.php和使用的nusoap.php库都已上传到IBM Bluemix DevOps Services中的默认项目文件夹,它们不在不同的文件夹或类似的文件夹中。此外,我没有在日志中看到任何可以解释的错误消息。

我感谢任何有关为什么跳过server.php文件中的函数的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,在你的HTML变量中你有一些标签,但是对于PHP来说它是文本,你应该加倍/单引号,如下所示:

    $html = '<html>
            <head></head>
            <title>Saludando...</title>
            <body bgcolor = "#9d1fc4" text = "black"><center><img src = "/images/3.jpg"></center><br><br>
            <center><b>$resultado<br><br><a href="index.html" style="color: #ffffff">INICIO</a></b></center>
            </body>
            </html>';

        echo $html;

否则它将被解释为PHP方法和函数,而那些不存在。我建议您更改此项并重试,如果它不起作用,请在浏览器上打开开发人员工具,看看是否有任何内容呈现(例如页面HTML结构)。