2016-06-10 31 views
0

我一直在研究一個涉及創建PHP服務的項目,使其在Vertrigo本地工作,然後將其上傳到IBM Bluemix。試圖讓PHP代碼在bluemix中工作

該代碼似乎在本地工作得很好,但試圖找出Bluemix中的代碼時,它開始失敗。

該項目由3個文件組成:index.html,client.phpserver.php。顯然,問題出現在client.phpserver.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.htmlclient.phpserver.php和使用的庫是nusoap.php已全部上傳到IBM Bluemix的DevOps服務裏面默認的項目文件夾,他們不是在不同的文件夾或類似的東西。此外,我在日誌中看不到任何錯誤消息,可能會說明一些情況。

我感謝任何關於爲什麼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標籤中跳出。 –