Форум 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=158778)

stasuss 23.06.2011 17:22

непонятка с ответами пхп
 
я новичек в флеш. вот сейчас решил позаморачиваться с общением мувика с сервером. в итоге первый тест прошел как надо а потом начались непонятки. задача была такая что при нажатии кнопок 1-4 происходил как бы логин и если переданное имя не зарегистрировано то оно бы добавлялось.. после первого прогона и очистки таблицы ответы стали стабильно приходить о том что имя существует, но записи добавлялись...
вот кусок пхп скрипта:
PHP код:

mysql_select_db($db_name);
$res mysql_num_rows(mysql_query("SELECT id FROM users where name='".$_POST["name"]."'"));
if (
$res 0) {
    echo 
"exist=true";
    exit;
}

echo 
"new=true";
mysql_query ("INSERT INTO users (name, pass) values('".htmlspecialchars($_POST["name"])."','".htmlspecialchars($_POST["pass"])."')") or die("Invalid query: " mysql_error()); 

а вот кусок флешки где происходит обработка ответа:
Код AS3:

                private function onDataLoad(evt:Event):void{
                        trace(evt.target.data);
                        trace(evt.target.data.exist);
                }

а вот инициализация:

Код AS3:

                        myLoader.dataFormat = URLLoaderDataFormat.VARIABLES
                        myLoader.addEventListener(Event.COMPLETE, onDataLoad)
 
                        myData.method = URLRequestMethod.POST;

а вот объявления:
Код AS3:

                private        var myLoader:URLLoader = new URLLoader();
                private var myData:URLRequest = new URLRequest("http://www.game.ru/test.php");

в ответ мне приходит "exist=true" и больше ничего. но записи в таблицу добавляются. ткните пожалуста носом где ошибка. а то я себе уже все волосы на голове выдрал от такого странного поведения.

GBee 23.06.2011 17:52

Я в пхп не ахти, но разве htmlspecialchars($_POST["name"])==$_POST["name"]?

goodguy 23.06.2011 18:06

Флешка тут ни при чем. Корявый сам пхп код.

п.с. stasuss, просьба, если постите пхп, используйте теги as2 или as3. PHP блоки трудно читаются на фоне скина форума

Crazy 23.06.2011 18:11

"Здравствуй, SQL Injection!" (c)

stasuss 23.06.2011 18:20

Цитата:

Сообщение от goodguy (Сообщение 1005986)
Флешка тут ни при чем. Корявый сам пхп код.

п.с. stasuss, просьба, если постите пхп, используйте теги as2 или as3. PHP блоки трудно читаются на фоне скина форума

да я вот не пойму в чем там в скрипте может быть корявость... ведь он прямолинейный как лом... единственное условие в нем это то что я привел сдесь... есть еще одно но оно проверяет удалось ли подключиться к базе или нет...

2Sun 23.06.2011 19:48

сделайте конструкцию
if ()
{
}
else
{
}
У Вас пхп проходит дальше, а флеш получив ответ что все ок больше уже ничего не слышит, а запись в базу идет своим чередом.

Astraport 23.06.2011 20:00

Цитата:

"Здравствуй, SQL Injection!" (c)
Подскажи, плиз, как обезопаситься в данном случае?

goodguy 23.06.2011 20:07

ну, как-то так ;)
я юзал способы по первой ссылке
конечно, не 100% защита, но кое-что

suVrik 24.06.2011 01:02

При SELECT'е так же экранируй данные от пользователя.

stasuss 24.06.2011 10:46

Цитата:

Сообщение от 2Sun (Сообщение 1006016)
сделайте конструкцию
if ()
{
}
else
{
}
У Вас пхп проходит дальше, а флеш получив ответ что все ок больше уже ничего не слышит, а запись в базу идет своим чередом.

а в моем случае exit разве не завершает скрипт?? попробовал с else и ничего не поменялось(((

кстати попробовал вчера еще в браузере посмотреть что происходит... опять первые разы дали то что нужно а потом пошли ответы всегда о том что существует уже.. подозрение что дело может быть где то в настройках.. никто не сталкивался? может кеширование какое то где то? у меня установлен denwer c апачем 2.2.4 и пхп 5.2.12.


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

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