Posted in Adobe, Flex
07/10 2006

Flex :: AMFPHP Login

The subject pops up a lot about reusable Flex components. Here’s one to handle multi-user logins via AMFPHP / MySQL:

< ?xml version="1.0" encoding="utf-8"?>
<mx :Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" width="355" height="213">
	</mx><mx :Script>
		< ![CDATA[
			import flash.net.Responder;
 
			public var gateway:RemotingConnection;
 
			public function checkLogin( service:String, params:Array ):void
			{
				gateway = new RemotingConnection( "http://yourwebserver.com/flashservices/gateway.php" );
				gateway.call( service,new Responder(onResult,onFault),params );
			}
 
			public function onResult( result:Array ):void
			{
				if (result[0]!="VALID")
				{
					lResponse.text = result[ 1 ];
				} 
				else 
				{
					lResponse.text = result[ 1 ];
					parentDocument.currentState='Main';
				}
			}
 
			public function onFault( fault:String ):void
			{
				lResponse.text = "Service Error: "+fault;
			}
 
			private function checkInput():void
			{
				if (tUser.text == "" || tPass.text == "")
				{
					lResponse.text = "Please complete all fields";
				} 
				else 
				{
					lResponse.text = "Logging in...";
					checkLogin( "login.Verify.validate",[tUser.text,tPass.text] );
				}
			}
		]]>
	</mx>
	<mx : Panel height="200" layout="absolute" title="Admin Login" left="0" right="5" bottom="13">
		<mx :Label x="33" y="45" text="Username:"/>
		<mx :Label x="33" y="85" text="Password:"/>
		<mx :Button x="178" y="118" label="Login" id="bLogin" tabIndex="3" click="checkInput()"/>
		<mx :TextInput x="113" y="83" id="tPass" tabIndex="2" displayAsPassword="true"/>
		<mx :TextInput x="113" y="43" id="tUser" tabIndex="1"/>
		<mx :Label x="113" y="10" id="lResponse"/>
	</mx>

And here’s the AMFPHP service that the component connects to:

< ?php
class Verify 
{	
	function Verify()
	{
		$this->methodTable = array(
			"validate" => array(
				"access" => "remote",
				"description" => "Return the login results"
			)
		);
	}
 
	function validate( $nfo )
	{
		$dbc = mysql_connect( "localhost","username","password" );
		mysql_select_db( "yourdatabase" );
 
		$user = $nfo[ 0 ];
		$pass = $nfo[ 1 ];
 
		$query = "SELECT DISTINCT * FROM admin WHERE aname = '$user' AND acode = '$pass'";
		$rs = mysql_query( $query );
 
		$var = mysql_fetch_assoc( $rs );
		$u = $var[ "aname" ];
		$p = $var[ "acode" ];
 
		if ($pass != $p)
		{
			$response[0] = "INVALID";
			$response[1] = "Invalid username and/or password";
		} 
		else
		{
			$response[0] = "VALID";
			$response[1] = "Welcome $u";
		}
		return $response;
	}
 
}
?>

Download a ZIP with all the necessary files here.

This Post tags: , , ,

 

USER COMMENTS

Track comments via RSS 2.0 feed. Feel free to post the comment, or trackback from your web site.

Currently there are no comments related to article "Flex :: AMFPHP Login".

Get Adobe Flash playerPlugin by wpburn.com wordpress themes