strange issue with FLASH/PHP

南楼画角 提交于 2019-12-12 06:51:58

问题


i am having strange issue with Flash and PHP. actually i have one Forgot password form in flash in which user enters his email id and when presses submit button flash passes data to PHP and retrieves(here i am stuck) data from PHP.

The issue is Flash getting UNDEFINED from PHP.

my flash code.

var email_id:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
var urlRequest:URLRequest = new URLRequest("forgot_password.php");
var urlVariable:URLVariables = new URLVariables();

var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);


btn_submit.addEventListener(MouseEvent.CLICK, btn_submit_click);
function btn_submit_click(e:Event)
{
    if(txt_email.text == "")
    {
        txt_error.text = "Email can not be blank.";
    }
    else if(!email_id.test(txt_email.text))
    {
        txt_error.text = "Enter proper email address.";
    }
    else
    {
        urlVariable.mailId = txt_email.text;
        urlRequest.data = urlVariable;

        urlLoader.load(urlRequest);
    }
}

function urlLoader_complete(e:Event)
{
        trace(e.target.data.return_var); // **it receive Undefined** i am checking in flashlog.txt :(
    //txt_error.text = e.target.data.return_var;
}

my PHP code

<?php
require_once('connection.php');

$query = "select * from user_account where email='".$_REQUEST['mailId']."'";
$result = mysql_query($query);

if(mysql_num_rows($result) > 0)
{
    echo "return_var=success";
}
else
{
    echo "return_var=failed";
}
 ?>

there is a space before return_var but i don't know why.. i have checked my PHP file 100 times it is perfect than what is the issue??????????????????????????????????????????

EDIT:

If i am tracing

    trace(e.target.data);

it traces 
   %20return%5Fvar=success

Note %20 before return%5var // what is that?????????????


回答1:


Obviously problem isn't in PHP, anyway you should write it something like this to prevent SQL injection...

<?php
require_once 'connection.php';

$email = $_GET['mailId'];
$email = mysql_real_escape_string($email);

$query = "SELECT email FROM user_account WHERE email = '$email' LIMIT 1";
$result = mysql_query($query);

echo (mysql_num_rows($result) > 0)? 'return_var=success': 'return_var=failed';
?>



回答2:


Remove this line:

urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

and change your urlLoader_complete() function to:

function urlLoader_complete(e:Event)
{
    var loader:URLLoader = URLLoader(e.target);  
    var vars:URLVariables = new URLVariables(loader.data);  
    trace(vars.return_var);
}

does that help?




回答3:


First of all thank you all for your contributions.

Now the issue was not related with Flash or PHP but it was related with our server. if i am creating PHP file and directly saving on our server than that PHP file gives response with adding one space before variable name. and if i am creating PHP file and saving it in my local drive and than pasting it on my server it works perfectly!!!!!!!!!!!!!!!!!

see the response difference between two files..............

return_var=success

 return_var=success // adding space before response.

may be its issue related with memory but now its working fine so cheers!!!!!!!!!

Again many Thanx.



来源:https://stackoverflow.com/questions/7333686/strange-issue-with-flash-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!