Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Проблема перенаправления (http://www.flasher.ru/forum/showthread.php?t=113422)

Rem0 27.06.2008 19:20

Проблема перенаправления
 
Здравствуйте.
У меня возникла проблема:

Имеется флэшка с двумя полями (acm_login, acm_pass), кнопкой, по средствам которой передаются значения этих полей php скрипту (redirect.php) и динамическое поле (txt_out) для вывода результата обработки этого скрипта.

Вот AS во флэшке:
Код:

function send(acm_login,acm_pass)
{
    out.acm_login = acm_login;
    out.acm_pass = acm_pass;
    out.sendAndLoad("redirect.php", inp, "POST");
};
stop ();
var inp = new LoadVars();
var out = new LoadVars();
inp.onData = function (data)
{
    trace (data);
    txt_out = data;
};

Php скрипт должен выбрать из БД строку с введенными параметрами (логин, пароль) и сделать перенаправление на другую страницу, написав в поле вывода (txt_out) что запрос прошел успешно , если строки с такими параметрами нет, или же логин или пароль не соответствует требованиям, в поле вывода должна быть выведена поясняющая информация почему запрес не прошел.

Вот что я набрасал:

Код:

$l2login=$_POST['acm_login'];
$l2password=$_POST['acm_pass'];

if(trim($l2login)=='undefined' || trim($l2login)=='') {    $out = "Вы не ввели логин !";    }
else {
                if(strlen($l2login) < 4 || strlen($l2login) > 15) {    $out = "Длина логина должна быть не менее 5-и  и не более 15-и символов !";    }
                        else {
                                if(trim($l2password)=='undefined' || trim($l2password)=='') {    $out = "Вы не ввели пароль !";    }
                                        else {
                                                if(strlen($l2password) < 5) {    $out = "Длина пароля должна быть не менее 5-и символов !";    }
                                                        else {
                                                                        $gamepass=base64_encode(pack('H*', sha1($l2password)));                                                       
                                                                        mysql_connect($dbhost, $dbuser, $dbpass) or $out = "Ошибка соединения";
                                                                        mysql_select_db($dbname) or $out = "БД не найдена";
                                                                        $q=mysql_query("SELECT * FROM `accounts` WHERE login='".$l2login."' AND password='".$gamepass."'");
                                                                        if(mysql_num_rows($q) == 1) {
                                                                                                                               
                                                                                                                                $out= "Перенаправление...";
\\\\Здесь же должна быть функция перенаправления на другую страницу\\\\\\                                                                                                                        }
                                                                                else {
                                                                                        $out = "Пароль/логин не верны. Либо такого аккаунта нет.";
                                                                                        }
                                                                }       
                                                }
                                }
        }               
       
       
echo iconv("windows-1251", "utf-8", $out);

К сожалению, все мне известные функции такие как редирект через хейдер, мета тэг и джаваскрипт не позволяют это сделать т.к. информация выводится в динамик текст. :(

Если кто знает как реализовать это перенаправление, буду очень признателен. Спасибо за внимание.

wvxvw 27.06.2008 20:13

В SELECT есть такой ключ LIMIT, если установить, LIMIT 1 - вернется только 1 результат (если есть).
валидация пароля / логина... ну просто жестокая... хотя бы проверяй на недопустимые символы... а то зарегают какого нибудь GRANT superuser SUPER ;)
А по поводу редиректа - можно, например, флешке вернуть урл с ответом, куда надо перейти если ответ положительный.

Rem0 27.06.2008 21:02

Ну на счет селекта и валидации... это был набросок, важно было показать сам принцип :quiet:

А вот за подсказку возвращения урл'а флэшке спасибо большое, до самого что то не дошло:confused:


Часовой пояс GMT +4, время: 08:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.