странная проблема с FLASH / PHP - PullRequest
       13

странная проблема с FLASH / PHP

0 голосов
/ 07 сентября 2011

У меня странная проблема с Flash и PHP.на самом деле у меня есть одна форма забытого пароля во флэш-памяти, в которой пользователь вводит свой идентификатор электронной почты, а когда нажимает кнопку «Отправить», флэш-память передает данные в PHP и получает (вот я застрял) данные из PHP.Проблема в том, что Flash получает НЕ УКАЗАН от PHP.

мой флэш-код.

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;
}

мой PHP-код

<?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";
}
 ?>

перед return_var есть пробел, но я не знаю почему .. Я проверил мой PHP-файл 100 раз, что он идеален, чем в чем проблема ??????????????????????????????????????????

enter image description here

РЕДАКТИРОВАТЬ:

If i am tracing

    trace(e.target.data);

it traces 
   %20return%5Fvar=success

Примечание% 20 до возврата% 5var // что это такое ?????????????

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

Очевидно, что проблема не в PHP, в любом случае вы должны написать что-то вроде этого, чтобы предотвратить внедрение SQL ...

<?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';
?>
0 голосов
/ 08 сентября 2011

Прежде всего, спасибо всем за ваш вклад.

Теперь проблема не была связана с Flash или PHP, но была связана с нашим сервером. если я создаю файл PHP и напрямую сохраняю на нашем сервере, то этот файл PHP дает ответ с добавлением одного пробела перед именем переменной. и если я создаю файл PHP и сохраняю его на своем локальном диске, а затем вставляю на свой сервер, он отлично работает !!!!!!!!!!!!!!!!!

см. Разницу между двумя файлами ..............

return_var=success

 return_var=success // adding space before response.

может быть проблема связана с памятью, но теперь она работает нормально, так что ура !!!!!!!!!

Снова много спасибо.

0 голосов
/ 07 сентября 2011

Удалите эту строку:

urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

и измените свою функцию urlLoader_complete() на:

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

это помогает?

...