首頁 > FLEX, PHP, 程式設計, 網頁設計 > FLEX on PHP , RemoteObject 實作範例 [使用者登入]

FLEX on PHP , RemoteObject 實作範例 [使用者登入]

2009年3月12日  瀏覽次數 : 11,270

前幾篇我們分享了 FLEX on PHP 的 remoting 的用法,我們可以正確無誤的從 SERVER 端取得處理過的字串,也可以正常的取得資料庫的資料,今天 逮灣郎 在 FLEX on PHP , use AMFPHP 取得資料庫資料 發問,提到雖然資料拿的到,資料庫搜得到,但是要怎麼整合呢,沒有個實例總是讓人看得霧颯颯,既然提問了,我也是 逮灣郎 ,除了救棒球還要救資訊,那就放出一個使用者[新增][查詢][刪除]的綜合使用範例吧,中間還穿插一個傳統 AJAX 愛用的帳號驗證寫法供大家參考。

image

這次的範例一次就把使用者登入,查詢所有使用者資料,以及新增使用者一口氣做完了,但是不用害怕,這樣的功能只用了兩個檔案就完成了,因為 AMFPHP 使用的是 PHP 的 CLASS 寫法,所以所有的方法都可以放在一起,這樣不就清爽多了嘛,雖然以前我在寫 ASP 的時候就常常把可以放在一起的頁面寫在一起,但是總是寫得眼花撩亂,但是現在用 AMFPHP 倒是可以把 MVC 分的很清楚,在開發的速度也會比較快一點。

不過這次為了解決一個問題,反而愈到另一個問題,就是當我寫好以後要放到虛擬主機的時候,上傳到 Hostmonster ,卻發現 AMFPHP 無法正常執行,但是由於太晚了,我也懶得在測試為什麼了,還好上傳到 G型主機 還可以執行,鬆了一口氣,有空再來研究是為什麼吧。

image

好了,廢話不多說,沒有看一下結果怎麼會知道到底是甚麼呢,不過也請大家手下留情,不要隨便攻擊我的後台啦 @@ ,正當測試一下程式結果就好。

這次一共用了五個方法,分別是[新增客戶][查詢全部客戶][驗證帳號是否註冊過][刪除客戶][驗證登入的帳號密碼],用兩個小時寫好的如果有甚麼問題的話在麻煩通知一下囉,謝謝。我想這樣的範例應該可以很清楚的知道 AMFPHP 與 FLEX 之間的溝通該怎麼做,希望大家都可以了解 ^^

PS. 剛好不知道今天 BLOG 該 PO 甚麼東西 @@"

services\app\users.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
//定義資料庫的資料
define(dburl,"localhost");
define(dbusername,"請用你自己的資料庫帳號");
define(dbpassword,"請用你自己的資料庫密碼");
define(dbname,"資料庫名稱");
 
class users {
	//取得所有資料庫內的使用者帳號密碼
	public function getUsers(){
		$db = new mysqli(dburl,dbusername,dbpassword,dbname);
		$query = "select * from users";
		$result = $db->query($query);
		$db->close();
		return $result;
	}
	//檢查帳號密碼是否正確
	public function checkUser($dataObject){
		$account = $dataObject["account"];
		$password = $dataObject["password"];
		$db = new mysqli(dburl,dbusername,dbpassword,dbname);
		$query = "select * from users where account = '$account' and password = '$password'";
		$result = $db->query($query);
		$db->close();
		if($result->num_rows > 0){
			//如果資料庫有回傳資料表示這個帳戶與密碼通過資料庫驗證
			return true;
		}else{
			//沒有資料當然代表這是不合法的帳號與密碼
			return false;
		}
	}
	//新增使用者帳號與密碼
	public function insertUser($dataObject){
		$account = $dataObject["account"];
		$password = $dataObject["password"];
		$db = new mysqli(dburl,dbusername,dbpassword,dbname);
		$query = "insert into users (account,password) values ('$account','$password')";
		$db->query($query);
		$db->close();
		return true;
	}
	//利用AJAX方式檢查使用者帳號是否重複
	public function checkUserAjax($dataObject){
		$account = $dataObject["account"];
		$db = new mysqli(dburl,dbusername,dbpassword,dbname);
		$query = "select * from users where account = '$account'";
		$result = $db->query($query);
		$db->close();
		if($result->num_rows > 0){
			//如果資料庫有回傳資料就把按鈕關閉
			return false;
		}else{
			//都沒找到資料才打開
			return true;
		}
	}
	//刪除使用者帳號與密碼
	public function delUser($dataObject){
		$account = $dataObject["account"];
		$db = new mysqli(dburl,dbusername,dbpassword,dbname);
		$query = "delete from users where account='$account'";
		$db->query($query);
		$db->close();
		return true;
	}
}
 
?>

UserLogin.mxml 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="14" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			import mx.rpc.events.ResultEvent;
			import mx.controls.Alert;
			[Bindable]
			private var checkCode:String;
			[Bindable]
			private var regCheckCode:String;
			//初始化->把可以登入的使用者資料拿回來
			//並且產生兩組驗證碼->簡易防止機器人行為
			private function init():void{
				this.usersRemoting.getUsers();
				this.checkCode = this.createCode();
				this.regCheckCode = this.createCode();
			}
			//產生驗證碼
			private function createCode():String{
				var code:String = "";
				for(var i:int=0;i<4;i++){
					code += (int)(Math.random()*10);
				}
				return code;
			}
			//刪除帳號
			private function delHandler():void{
				if(this.userDG.selectedIndex == -1){
					Alert.show("尚未選取使用者","警告");
				}else{
					var obj:Object = new Object();
					obj.account = this.userDG.selectedItem.account;
					this.usersRemoting.delUser(obj);
				}
			}
			//新增使用者
			private function regUserHandler():void{
				if(this.regAccount.text =="" || this.regPassword.text =="" || this.regCode.text==""){
					Alert.show("你有欄位尚未填寫","錯誤");
				}else{
					if(this.regCode.text != this.regCheckCode){
						Alert.show("驗證碼錯誤","錯誤");
					}else{
						var obj:Object = new Object();
						obj.account = this.regAccount.text;
						obj.password = this.regPassword.text;
						this.usersRemoting.insertUser(obj);
					}
				}
			}
			//新增使用者成功
			private function insertUserResult():void{
				this.usersRemoting.getUsers();
				this.regAccount.text = "";
				this.regPassword.text = "";
				this.regCode.text = "";
				this.regCheckCode = this.createCode();
				Alert.show("新增資料成功","訊息");
			}
			//利用 AJAX 的方式檢查帳號是否存在
			//->叫做 AJAX 有點白癡,因為整個 FLEX 都是 AJAX 阿....
			private function regAccountAjax():void{
				var obj:Object = new Object();
				obj.account = this.regAccount.text;
				this.usersRemoting.checkUserAjax(obj);
			}
			//如果帳號沒人用過才把新增的按鈕打開
			private function checkUserAjaxResult(event:ResultEvent):void{
				this.regUserBtn.enabled = event.result;
			}
			//檢驗帳號登入成功與否
			private function checkUserHandler():void{
				if(this.loginAccount.text =="" || this.loginPassword.text =="" || this.loginCode.text==""){
					Alert.show("你有欄位尚未填寫","錯誤");
				}else{
					if(this.loginCode.text != this.checkCode){
						Alert.show("驗證碼錯誤","錯誤");
					}else{
						var obj:Object = new Object();
						obj.account = this.loginAccount.text;
						obj.password = this.loginPassword.text;
						this.usersRemoting.checkUser(obj);
					}
				}
			}
			//顯示後端驗證的結果
			private function checkUserResult(event:ResultEvent):void{
				if(event.result){
					//重新建立驗整碼
					this.loginCode.text = "";
					this.checkCode = this.createCode();
					Alert.show("您輸入資料為\n\n帳號:"+this.loginAccount.text+"\n密碼:"+this.loginPassword.text,"使用者密碼驗證成功");
				}else{
					Alert.show("您輸入的帳號或密碼錯誤,請重新再試","錯誤!");
				}
			}
		]]>
	</mx:Script>
	<mx:HBox width="620">
		<mx:VBox width="50%">
			<mx:Panel width="300" height="250" layout="vertical" title="使用者登入">
				<mx:Form width="100%" height="100%">
					<mx:FormItem label="帳號">
						<mx:TextInput id="loginAccount" maxChars="8" restrict="a-zA-Z0-9"/>
					</mx:FormItem>
					<mx:FormItem label="密碼">
						<mx:TextInput id="loginPassword" maxChars="8" restrict="a-zA-Z0-9"/>
					</mx:FormItem>
					<mx:FormItem label="驗證碼">
						<mx:Label text="{this.checkCode}"/>
						<mx:TextInput id="loginCode" maxChars="4" restrict="0-9"/>
					</mx:FormItem>
					<mx:FormItem>
						<mx:Button label="送出" click="checkUserHandler()"/>
					</mx:FormItem>
				</mx:Form>
			</mx:Panel>
			<mx:Panel width="300" height="250" layout="vertical" title="新增使用者">
				<mx:Form width="100%" height="100%">
					<mx:FormItem label="帳號">
						<mx:TextInput id="regAccount" change="regAccountAjax()" maxChars="8" restrict="a-zA-Z0-9"/>
					</mx:FormItem>
					<mx:FormItem label="密碼">
						<mx:TextInput id="regPassword" maxChars="8" restrict="a-zA-Z0-9"/>
					</mx:FormItem>
					<mx:FormItem label="驗證碼">
						<mx:Label text="{this.regCheckCode}"/>
						<mx:TextInput id="regCode" maxChars="4" restrict="0-9"/>
					</mx:FormItem>
					<mx:FormItem>
						<mx:Button id="regUserBtn" label="新增" click="regUserHandler()" enabled="false"/>
					</mx:FormItem>
				</mx:Form>
			</mx:Panel>
		</mx:VBox>
		<mx:Panel width="300" height="100%" layout="vertical" title="目前資料庫內可登入的帳號與密碼">
			<mx:Button label="刪除" click="this.delHandler()"/>
			<mx:DataGrid id="userDG" width="100%" height="100%" dataProvider="{this.usersRemoting.getUsers.lastResult}">
				<mx:columns>
					<mx:DataGridColumn headerText="帳號" dataField="account"/>
					<mx:DataGridColumn headerText="密碼" dataField="password"/>
				</mx:columns>
			</mx:DataGrid>
		</mx:Panel>
	</mx:HBox>
	<mx:RemoteObject id="usersRemoting" destination="amfphp" source="app.users">
		<mx:method name="getUsers"/>
		<mx:method name="delUser" result="this.usersRemoting.getUsers();Alert.show('刪除成功','訊息');"/>
		<mx:method name="insertUser" result="insertUserResult()"/>
		<mx:method name="checkUserAjax" result="checkUserAjaxResult(event)"/>
		<mx:method name="checkUser" result="checkUserResult(event)"/>
	</mx:RemoteObject>
</mx:Application>

Random Posts

Loading…

:: 把這篇好文推到書籤網站與更多人分享吧 ::
  • funp
  • Hemidemi
  • YahooKimo
  • Google
  • udn
  • Haohao
  • Live

相關文章 :

Ausir FLEX, PHP, 程式設計, 網頁設計 , , , , , , , ,

  1. 逮灣郎
    2009年3月12日11:20 | #1

    感謝您熱心提供^^
    我晚上下課時,會抓下來好好研究一番,感謝在先.

  2. 2009年3月12日11:21 | #2

    M~

    因為寫之前喝了杯咖啡
    寫完後整個就失眠了~

    恍神中~~ 呵呵

  3. 2009年3月12日12:41 | #3

    哇。。我才正想要學FLEX而已ㄋ。OTZ~
    真的很羨慕說。XD
    看到這篇文章真的很受用呢!感謝Ausir的教學。
    另外CORA的平面設計也很厲害呢!
    我雖然會網頁和平面。。。不過平面沒辦法像CORA那樣。@_@
    希望可以儘快將FLEX學會。^^

  4. 2009年3月12日13:18 | #4

    M~

    希望可以幫助更多人學習 RIA 喔~^^

    基礎學習的話可以先從 HttpService 取得 XML 來寫會比較容易~
    不過我暫時還沒有資料
    有空再來 PO 一些 HttpService 的資料

  5. 逮灣郎
    2009年3月12日21:38 | #5

    不好意思又來打擾囉.想跟您請教一下,關於http://localhost/phpmyadmin的登入資料庫密碼是否是必要設定的? account和password是users資料表的欄位嗎? PHP這方面沒研究過..所以很多不懂 打擾囉^^

  6. 2009年3月12日21:43 | #6

    密碼如果你沒設定可以塞入空值
    就是兩個引號中間不要打字

    這篇文章我忘記補充資料庫定義的部分
    我只有兩個欄位
    account 帳號 varchar 10 位 [主鍵]
    password 密碼 varchar 10 位

    應該就是這樣了~~

    ^_^

  7. 逮灣郎
    2009年3月12日21:50 | #7

    感謝,我以為只要把定義dbpassword刪掉就可,終於可以抓到資料庫了..^^

  8. 2009年3月12日21:51 | #8

    祝你成功,AMFPHP成功之後可以再繼續玩 ZENDAMF

    我在正在把資料發佈中~ 晚點應該就可以看到了

    呵呵~

  9. 逮灣郎
    2009年3月12日21:53 | #9

    我朋友有給我ㄧ套WampServer2,好像也不錯.非常感謝您的幫忙

  10. 逮灣郎
    2009年3月12日21:55 | #10

    感謝您熱心幫助,我朋友也介紹一套WampServer2好像不錯用.

  11. CORA
    2009年3月12日22:00 | #11

    Fannie :
    謝謝你的讚美
    設計是需要無限的熱情
    承受客戶無情的摧殘
    一起加油吧
    我想我們是打不死的蟑螂

  12. 逮灣郎
    2009年3月12日22:46 | #12

    呵,感謝您的熱心相助.有不會的再向您請教^^

  13. 2009年3月13日01:34 | #13

    CORA:
    對呀!很認同。
    設計最容易碰到的問題就是。。。設計出來的東西本身就很ok了。經過客戶校對之後。。。他卻比較喜歡”俗”的東西。。有時真的會很ooxx。(但是,客戶的需求,有時候還是得體諒的,因為他不喜歡,妳也不能強逼他,總不能跟錢過意不去。XD)

    不過,有時候興趣和工作真的得分開。
    就像,身心跟精神,有時候還是得分開,才不會打結。

    我一直很希望能夠做像妳那樣感覺的設計呢!
    很有國際水準唷!
    希望妳能夠繼續保持下去,並且,愈做愈好唷!

    下次我會在我的部落格上面,PO一個廣告插畫公司的作品。
    常常在想,做設計的人,腦子真的都滿強的呢!(我就不行了。腦子單純的很。XD)

    Ausir :
    HttpService ~@_@~ 這個是什麼?
    像你們在用的XAMPPS,我也會用唷!^^
    當初想說學PHP,灌了LINUX(Ubuntu),不過現在沒主機可以灌linux系統了。。所以。。就把xampps灌在xp底下,以前的話,應該不行。。沒想到資訊進步這麼神速。。連xp都可以直接測試mysql、phpadmin了。(因為早期有用過RedHat。。但無法上網,最後就是放棄啦!)
    所以,寫程式。。。對我來說最困難的,就是得放棄html的語法,常常會打結。(因為早期寫網頁的時候,就是HTML開始的,一開始悟道,後期想要接觸程式部份,就很容易打結。XD)

  14. 2009年3月13日08:48 | #14

    Httpservice 是 FLEX 另一種向後端索取資料的方式
    方法比 remoteobject 簡單
    但是效能比較差
    但是卻比 remoteobject 有彈性

    簡單來說就是向 AJAX 是向後端索取 XML 檔案
    所以後端用甚麼語言相較之下彈性許多

  15. 2009年3月15日04:03 | #15

    @Fannie
    你說我有國際水準
    我覺得很汗顏ㄟ
    不過還是謝謝你的讚美
    我會再繼續努力的

  16. 逮灣郎
    2009年3月18日23:34 | #16

    Ausir您好:
    想跟您請教,如果說,我想網路demo使用者登入的範例,以自己電腦當伺服器,有固定IP,要如何操作呢? PS:並非上傳到網路上的空間

  17. 2009年3月18日23:53 | #17

    逮灣郎 :

    Ausir您好:
    想跟您請教,如果說,我想網路demo使用者登入的範例,以自己電腦當伺服器,有固定IP,要如何操作呢? PS:並非上傳到網路上的空間

    你好~

    如果你想要用自己家裡的 ADSL 來架設 SERVER 供人家連線

    請問你是否使用 IP分享器撥接 ( 1.是 2.否 )

    1.是
    那你必須要先連線到你的 IP 分享器設定開啟 PORT 對應(或是稱為 虛擬主機)
    你必須先把你的電腦設定一個固定的內部 IP
    然後開啟對應 PORT TCP 80 -> 你電腦的 IP 的 TCP 80
    之後你就可以用你外部的 IP 來瀏覽你的 WEB SERVER 了

    2.否
    表示你每次上線都要用電腦撥接 PPPOE 來上網
    這樣子你要架設 SEVER 會比較不方便 因為 PPPOE 有時候會自動幫你斷線
    不過也是無所謂
    這時候你的 XP 或是 VISTA 應該會開啟防火牆
    你必須將防火牆停用 或是 增加例外 ( TCP 80 PORT )
    如此一來就可以從外部的 IP 連線到你的電腦瀏覽網頁

    :::

    不知道你問的是這個嗎??

  18. 逮灣郎
    2009年3月19日00:02 | #18

    對!! 謝謝您的說明,終於了解,原來用IP分享器還要加以設定.
    多謝幫忙,謝謝囉!

  19. 2009年3月19日00:05 | #19

    @逮灣郎
    不客氣

    今天要收工了 ^_^

  20. maple
    2009年4月10日15:21 | #20
  21. 2009年4月10日18:44 | #21

    用 FLEX 要做到這個功能的話
    先用 HTTPService 或是 RemoteObject 先驗證是否成功
    如果成功
    在用 navigateToURL 的功能 然後再相同視窗開啟連結即可

    這是我的做法….

    當然其他頁面你要記得使用 SESSION 判斷是否登入過

    還有很多作法啦 ^_^

  22. lan
    2009年5月23日17:25 | #22

    好厲害 正是我想學的

    請問如何讓輸入密碼時 顯示不出輸入的值
    一般都是顯示*******
    請問要怎麼改
    謝謝

  23. 2009年5月24日00:34 | #23

    @lan

    Dear lan

    如果你要讓 textinput 只出現 *
    你只要在 textinput 的屬性增加一個 displayAsPassword
    並且設定為 true 即可
    例如

    1
    
    <mx:TextInput id="pwd" displayAsPassword="true"/>
  24. pig
    2009年5月31日04:25 | #24

    版主您好,感謝您精采的範例,小弟接觸FLEX與AMFPHP不久測試過版主的範例後一執行就出現以下錯誤問題,想請問是因為我AMFPHP資料庫設定有錯誤嗎?還是PHP檔案放的位置有誤呢,小弟放的位置為C:\xampp\htdocs\amfphp\services\app\users.php,不好意思 打擾版主囉

    ?View Code ACTIONSCRIPT
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    [RPC Fault faultString="Channel disconnected" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected before an acknowledgement was received"]
    	at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:220]
    	at mx.rpc::Responder/fault()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:53]
    	at mx.rpc::AsyncRequest/fault()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
    	at NetConnectionMessageResponder/channelDisconnectHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:646]
    	at flash.events::EventDispatcher/dispatchEventFunction()
    	at flash.events::EventDispatcher/dispatchEvent()
    	at mx.messaging::Channel/disconnectSuccess()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\Channel.as:1091]
    	at mx.messaging.channels::NetConnectionChannel/internalDisconnect()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:163]
    	at mx.messaging.channels::AMFChannel/internalDisconnect()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:312]
    	at mx.messaging.channels::AMFChannel/statusHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:382]
  25. 2009年5月31日14:42 | #25

    @pig

    建議你可以先參考這篇
    http://blog.corausir.org/programing/flex/ausir-573

    因為看錯誤訊息應該是你 Channel 的設定有錯誤~
    你要檢查看看是否有依照你的環境設定喔~~

  26. pig
    2009年5月31日19:29 | #26

    @Ausir

    恩~感謝版主回答 小弟有先從您http://blog.corausir.org/programing/flex/ausir-573此例題去架設環境~也可正常執行,但目前這例題還是有一些錯誤!小弟在去測試看看 感謝版主

  27. 2009年6月1日09:58 | #27

    @pig

    微薄之力
    沒能幫上甚麼忙 ^^

  28. 稀飯
    2009年8月27日15:59 | #28

    您好
    很感謝您的範例
    讓我了解許多
    我在使用你這個範例並修改某部分
    但發現以下錯誤訊息
    (Object)#0
    message = “faultCode:INVALID_AMF_MESSAGE faultString:
    ‘Invalid AMF message’ faultDetail:’
    Fatal error: Class ‘mysqli’ not found in C:\AppServ\www\amfphp\services\test\name.php on line 11
    ‘”
    name = “Error”
    rootCause = (null)

    請問一下這是發生了甚麼錯誤?
    麻煩您告訴我
    謝謝您

  29. 2009年8月27日16:12 | #29

    @稀飯

    你的錯誤訊息就是
    你的 PHP 是 4 版
    但是我用到了類別 mysqli
    這個資料庫讀取類別是 PHP 5 才有的樣子
    還是 PHP 4.5 ?? 是這樣嘛~~

    呵呵~ 總之是你 PHP 版本太低了 ^^

  30. 稀飯
    2009年8月28日11:33 | #30

    您好
    我再請問一個問題
    Dreamweaver是不是只提供到PHP4?
    好像Dreamweaver CS4有提供到PHP5
    可以跟我說有哪些軟體可以support PHP5
    謝謝您

  31. 2009年8月28日11:35 | #31

    那不是 dreamweaver 的問題吧
    是 WEB SERVER 的問題
    你是用哪一套 PHP WEB SERVER
    你抓 XAMPP 就是 PHP5
    你可以參考我前面的文章 ^^

  32. 稀飯
    2009年8月28日12:34 | #32

    我是用Apache 2.2
    不能使用dreamweaver 去撰寫php
    您還是建議我使用XAMPP嗎?

  33. 2009年8月28日13:20 | #33

    @稀飯

    使用 XAMPP 會比較方便 ^^

  34. 稀飯
    2009年9月19日11:25 | #34

    我想在請問一下
    請問修改資料要怎麼下手?
    我現在有DataGrid顯示了
    我想直接在上面做修改
    可是一直無法更新到資料庫裡
    請指點一下
    謝謝

  35. 2009年9月21日11:21 | #35

    @稀飯

    使用 itemrender 使用 textinput 替代文字內容
    如此一來就可以修改了

  36. 稀飯
    2009年10月6日19:40 | #36

    @Ausir

    恩恩 謝謝您

  37. 稀飯
    2009年10月6日19:44 | #37

    不好意思
    再請問一下
    我已經把我的flex做好了
    我有固定IP
    我想放在網路上瀏覽
    可以讓我在其他電腦上網瀏覽使用
    我把swf和html放在www資料夾下
    可是瀏覽時不能Run
    簡單會員登入不行
    192.192.155.77/PCM.swf(html)
    麻煩老師指點一下
    謝謝您

  38. 2009年10月8日17:56 | #38

    @稀飯

    抱歉喔~ 這兩天東主有喜~
    所以比較晚回 ^_^

    錯誤訊息 http://192.192.155.77/PCM.swf 無法從 http://localhost/amfphp/gateway.php 載入資料

    有安全性違規喔~
    你要更改 xml 把 localhost 改成 192.192.155.77

  39. 稀飯
    2009年10月12日10:51 | #39

    請問是改services-config.xml嗎?
    如果是改這個話
    我改了
    可是他還是不行= =
    我現在是把bin-debug整個資料丟到www裡
    http://192.192.155.77/bin-debug/PCMS.html

  40. 稀飯
    2009年10月12日10:53 | #40

    @稀飯
    不好意思 麻煩你了
    恭喜恭喜 哈哈

  41. 稀飯
    2009年10月12日13:22 | #41

    @稀飯
    不好意思
    我解決了 謝謝你

  42. 2009年10月12日20:15 | #42

    @稀飯

    處理 OK 就好 ^_^~~

  43. Forgot
    2009年10月13日15:24 | #43

    嗨 有沒有推薦PHP的書阿 用eclipse的
    因為我之前沒用過PHP想說打點底

  44. 2009年10月13日17:39 | #44

    @Forgot

    書喔~
    其實 PHP 並沒有很難
    至於說要找 eclipse 的書 應該是沒有 XD

  45. Forgot
    2009年10月13日19:24 | #45

    我有問題 這邊使用new mysqli
    跟你之前做的$conn = mysql_connect
    是另一種語法嗎

  46. Forgot
    2009年10月13日19:57 | #46

    我知道了 是不是版本的不同?

  47. 2009年10月13日23:14 | #47

    @Forgot

    mysql 與 mysqli 只是類別不同
    mysqli 還支援多連線的寫法喔

    算是進階一點的吧

    如果在新的語法會用 PDO 的方式建立連線

  48. Forgot
    2009年10月14日16:03 | #48

    可以解釋ㄧ下$dataObject在程式中的意思嗎
    是傳值的意思嗎 把帳號跟密碼儲存然後傳值

  49. 2009年10月14日19:23 | #49

    @Forgot

    對阿~
    打包以後再一起傳到 AMFPHP

  50. Forgot
    2009年10月14日23:43 | #50

    所以算是物件導向嗎?
    因為我不太懂
    $account = $dataObject["account"];
    $password = $dataObject["password"];
    表示可以存以個以上的值嗎?

評論分頁
  1. 本篇文章目前尚無任何 trackbacks 和 pingbacks。