Я работал над проектом, который включает в себя создание службы PHP, ее локальную работу с Vertrigo и загрузку ее в IBM 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
файл пропускается. Спасибо !
Ну, в вашей 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 страницы).
Других решений пока нет …