【发布时间】:2011-06-14 07:42:25
【问题描述】:
我知道回答此类问题不是本网站的主要思想,但几天后我将有机会申请 PHP 程序员的初级(或者更准确地说是试用期)职位,并且这就是为什么我决定在这里发帖,希望结果会很好。 与这里的其他公司相比,这家公司有点大,所以众所周知,想要获得这个职位的人需要参加什么考试 - 要么是 - 编写分页脚本或某种 SOAP 服务。我对分页没有任何问题,但是从现在起我从来没有过多关注 SOAP,现在我需要学习与 PHP 一起使用时 SOAP 服务的基础知识。给出我申请的职位,没有人期望展示一些出色的东西,但我仍然需要基本的对 SOAP 客户端和服务器服务的理解,也许我现在甚至不会为 WSDL 烦恼,因为我认为我没有足够的时间去做所有事情。 所以我有一个示例代码,很可能是我需要编写和解释的如果我要编写 SOAP 服务:
客户端-
<?php
if (isset($_REQUEST["cname"]) && isset($_REQUEST["cpass"]))
{
$cname = $_REQUEST["cname"];
$md5pass = md5( $_REQUEST["cpass"]);
$client = new SoapClient(null, array(
'location' => "http://localhost/test/BuildInSoapWithWSDL/server.php",
'uri' => "urn://localhost/test/BuildInSoapWithWSDL/",
'trace' => 1 ));
try
{
if ( $client->saveUserNameAndPass($cname, $md5pass))
{echo "Data updated!";}
else
{echo "Error updating data!";}
print "<pre>\n";
print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
print "</pre>";
}
catch (Exception $e)
{
echo 'Exception: ', $e->getMessage(), "\n";
}
}
else
{
echo "Error!";
}
?>
服务器端 -
<?php
$server = new SoapServer(null, array('uri' => 'urn://localhost/test/BuildInSoapWithoutWSDL/'));
$server->addFunction("saveUserNameAndPass");
$server->handle();
function database_connect($host, $account, $password, $dbname)
{
$connect = mysql_connect($host, $account, $password);
$connect = mysql_select_db($dbname, $connect);
return $connect;
}
function saveUserNameAndPass($userName,$passWord)
{
try
{
if (database_connect("localhost", "saveuser", "123456", "savetask") == 1)
{
$userName = mysql_real_escape_string($userName);
$sql = "INSERT INTO accounts (name,passmd5) VALUES ('".$userName."','".$passWord."')";
$result = mysql_query($sql);
mysql_close();
if ($result)
{ return true;}
else
{ return false;}
}
else
{
return false;
}
}
catch (Exception $e)
{
return false;
}
}
?>
即使我有代码我仍然不知道做什么东西都是从初学者的角度来解释的。
谢谢
【问题讨论】: