2015-04-30 27 views
1

我仍然是AS3的新手编程我试图让登录屏幕在我的AIR应用程序上工作,但出现错误#2101传递给URLVariables.decode()的字符串必须是包含名称/值对的URL编码的查询字符串。用于登录屏幕的Flash AS3错误#2101

这里是为processLogin

  public function processLogin():void { 

       if(username.text != "" && password.text != "") 
       { 
        var checkName = username.text 
        var checkPass = password.text 
        var resulttext = result_text.text 

        var request:URLRequest = new URLRequest("http://localhost/caservers/aksessistemlogin.php") 
        var loader:URLLoader = new URLLoader()  

        var variables:URLVariables = new URLVariables() 
         variables.username = checkName    
         variables.password = checkPass 
         variables.systemResult = resulttext 
        loader.dataFormat = URLLoaderDataFormat.VARIABLES 
        request.data = variables 

        request.method = URLRequestMethod.POST 
        loader.addEventListener(Event.COMPLETE, logincheck) 
        loader.load(request) 

       } 
       function logincheck (event:Event):void { 

        if (username.text == checkName && password.text == checkPass){ 
        gotoAndPlay(2); 
        }else{ 
        result_text.text = resulttext ; 
        } 
       } 
      } 

的代码,这一个是PHP

代码
 <?php 
      include_once "connect.php"; 
      $username = $_POST['username']; 
      $password = $_POST['password']; 
      if ($_POST['systemCall'] == "checkLogin") { 
       $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; 
       $query = mysqli_query($sql); 
       $login_counter = mysqli_num_rows($query); 
       if ($login_counter > 0) { 
       while ($data = mysqli_fetch_array($query)) { 

       } 
       } else { 
        $systemResult = "The login details don't match our records"; 
       } 
      } 
     ?> 

什么,我打算做的是检查用户名和密码与匹配一个在数据库中,我跟着一些教程,但它最终推进到下一帧,即使没有在文本输入中输入任何东西(只需点击提交)。

任何帮助将非常感激!在此先感谢..

+0

你真的需要学习如何在AS3 – BadFeelingAboutThis

+0

中使用分号,正如我之前所说的,我是一个新手,它让我感到困惑,因为一些教程把分号放在其他位置,而其他的不是。 –

+0

没关系,只是拿出这一行:'loader.dataFormat = URLLoaderDataFormat.VARIABLES' – BadFeelingAboutThis

回答

0

当你有这条线在AS3:

loader.dataFormat = URLLoaderDataFormat.VARIABLES; 

你告诉闪光器,将从加载器URL编码变量响应。但是,您的回应不能是这样,因为您在尝试将URL页面的输出解码为URL变量时会出错。

当您将一个URLVariables对象分配给data属性时,Flash将自动知道您正在发送URL编码数据。

+0

感谢您的解释!我觉得哑巴哈哈,我会学习更多这个AS3,非常感谢! :) –

+0

不要觉得笨拙,属性名称非常模糊,因为名称不清楚它是指传出还是传入数据!这只是你在学习中学到的东西之一。 – BadFeelingAboutThis

+0

我会注意到一个!如果我犯了同样的错误哈哈哈 –