我一直在研究一個涉及創建PHP服務的項目,使其在Vertrigo本地工作,然後將其上傳到IBM Bluemix。試圖讓PHP代碼在bluemix中工作
該代碼似乎在本地工作得很好,但試圖找出Bluemix中的代碼時,它開始失敗。
該項目由3個文件組成:index.html
,client.php
和server.php
。顯然,問題出現在client.php
和server.php
之間。當我嘗試調用client.php
中的server.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服務裏面默認的項目文件夾,他們不是在不同的文件夾或類似的東西。此外,我在日誌中看不到任何錯誤消息,可能會說明一些情況。
我感謝任何關於爲什麼server.php
文件中的功能被跳過的幫助。謝謝 !
對不起,爲了您使用單引號作爲我發佈你必須連接變量。如果你不想連接,你必須使用雙引號,但爲此你必須從HTML標籤中跳出。 –