使用PHPRPC實現Ajax安全登入第1/2頁

來源:互聯網
上載者:User

PHPRPC 與其它 ajax 架構不同,PHPRPC 遵循的是“只做一件事,並把它做好”的原則。它只負責資料轉送,並且將傳輸做到最好!它將你以前用傳統的 ajax 方式做不到或者很難做到的事情變得輕而易舉!
相信好多人選擇 PHPRPC 的一個主要原因就是它能夠讓你開發 ajax 應用變得更加容易!儘管 PHPRPC 的強大之處不僅限於此,但我不得不承認,這確實是 PHPRPC 的一大亮點!
所以,我們的第一站,就來看看如何用 PHPRPC 3.0 來編寫 ajax 應用吧。

下 面我們舉一個最簡單的例子(甚至可以算是無聊的例子 )來說明如何使用 PHPRPC 3.0 編寫 ajax 應用。這個例子很好的說明了上面所提到的 MVC 模式如何具體的工作。這裡我們先以 PHP 為伺服器端的情況為例來說明。我們的第一個例子很簡單,用戶端輸入一段字串,然後伺服器端計算出它的 SHA1 值。 複製代碼 代碼如下:<?php
require_once("../php/phprpc_server.php");
$server = new PHPRPC_Server();
$server->add("sha1");
$server->start();
?>

只有這麼簡單的 4 行代碼,就把 PHP 內建的 sha1 函數發布了。現在,用戶端可以直接使用這個函數了。 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>計算 SHA1</title>
<script type="text/javascript" src="../js/compressed/phprpc_client.js"></script>
<script type="text/javascript">
var rpc = new PHPRPC_Client('sha1.php', ['sha1']);
function $(id) {
return document.getElementById(id);
}
function showResult(result) {
$('sha1').value = result;
}
function sha1() {
var input = $('sha1').value;
$('sha1').value = "Loading...";
rpc.sha1(input, showResult);
}
</script>
</head>
<body>
<input type="text" id="sha1" />
<input type="button" value="計算 SHA1" onclick="sha1()" />
</body>
</html>

這個例子非常簡單,並且跟 PHPRPC 有關的只有兩條語句,一條是: 複製代碼 代碼如下:var rpc = new PHPRPC_Client('sha1.php', ['sha1']);

這條語句用來建立一個 PHPRPC_Client 對象,第一個參數是伺服器位址,這裡可以用相對路徑,也可以用絕對路徑。
而且這個路徑可以跨域!因此你可以做跨域的應用!
第二個參數是你需要使用的伺服器端的函數名列表,所以,雖然我們這裡只有一個函數,也要寫成數組的形式。這樣我們就有了一個可以調用伺服器端方法的用戶端對象了。
那該如何調用呢?我們來看第二條關於 PHPRPC 的語句: 複製代碼 代碼如下:rpc.sha1(input, showResult);

這條語句相當簡單,你會發現我們直接使用了伺服器端發布的函數名作為 rpc 對象的一個方法來調用。它的第一個參數就是 sha1 函數的參數值。第二個參數是個函數,這個是回呼函數,也就是說,當伺服器端方法執行完之後就會自動調用這個函數來完成結果的處理。它是在前面定義的,你會 發現它有一個參數 result,這個參數就是我們的遠程過程 sha1 的傳回值,它是通過回呼函數的這個參數傳入的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.