2016-06-10 1 views
0

Я работаю над проектом, который включает в себя создание службы PHP, заставить ее работать локально с Vertrigo, а затем загрузить ее в IBM Bluemix.Попытка заставить PHP-код работать в bluemix

Код, кажется, работает нормально в локальном режиме, но при попытке выяснить код в Bluemix он начинает работать с ошибкой.

Проект состоит из 3 файлов: index.html, client.php и server.php. По-видимому, проблема возникает между client.php и server.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 возвращает строку, состоящую из «Hola $ nombre $ apellido», но она, похоже, пропущена, потому что строка не отображается на экране.

Я хотел бы также добавить, что все 3 файла index.html, client.php, server.php и библиотека используется которая nusoap.php все были загружены в папку проекта по умолчанию внутри IBM Bluemix DevOps Services, и они не находятся в разных папках или что-то в этом роде. Кроме того, я не вижу сообщений об ошибках в журналах, которые могут пролить свет.

Я ценю любую помощь, которая дает информацию о том, почему эта функция в файле server.php пропускается. Спасибо !

ответ

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-структура страницы).

+0

К сожалению, для использования одинарных кавычек, как я писал, вам придется объединить переменные. Если вы не хотите конкатенировать, вам придется использовать двойные кавычки, но для этого вам придется избегать те из ваших HTML-тегов. –