Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Нужна помощь в связке FLASH+PHP+MYSQL (http://www.flasher.ru/forum/showthread.php?t=124803)

Weather 08.05.2009 22:44

Нужна помощь в связке FLASH+PHP+MYSQL
 
Доброе время господа!
Помогите пожалуйста найти ошибку, всю голову сломал уже. Есть флэш в которой есть 2 input поля: логин (value: log) и пароль (value: psw), и button кнопка: submit. На кнопке висит такой вот скрипт
Код AS1/AS2:

on (release) {
        loadVariables("http://www.mYsite.ru/login.php", "_root", "POST");
}

Так теперь к PHP. Вот код в login.php
Код AS1/AS2:

<?
session_start();
foreach ($_POST as $var => $value)
{
if ($var=="amp;log"){$log=$value;}
if ($var=="amp;psw"){$psw=$value;}
}
$log = htmlentities($log);
$psw = htmlentities($psw);
if(isset($submit) )
{
include ("../setup.php");
$log2=$log;
$result=mysql_query("select * from users where login='$log2'");
$row=mysql_fetch_array($result);
$base_login=$row[1];
$base_psw=$row[2];
if($log==$base_login && $psw==$base_psw && $log<>"")
{
$HTTP_SESSION_VARS['l']=$base_login;
Header("Location: index.php");
exit;
}
else
{
Header("Location: ../index.php");
exit;
}
}
?>

вроде бы все сделал по правилам, но не работает!

Что здесь не так, где накосячил? Может тогда кто-нибудь очень приближенный пример кинет? Очень наболевший вопрос во всем инете, но ничего похожего не нашел.
Спасибо.

Gradus0 08.05.2009 23:32

А в чём ошибка то?
в php коде чё-то столько лишнего....

Weather 08.05.2009 23:35

Ошибка в том что не работат все это! Тоесть мне надо во флэше в поля вписать пароль и имя, и если все это дело в базе числится (тоесть все ОК) то открыть новое окно!

wvxvw 08.05.2009 23:45

Код:

if (isset($submit))
это условие никогда не выполнится... а вообще, что ПХП, что АС какие-то ископаемые из кунсткамеры... где вы это "чудо" отыскали?

Weather 09.05.2009 00:00

Тогда может покажете как надо? Задача проста: вводим имя пароль, проверяем в базе, если ок то открываем новую страницу, если нет то просто сообщение типа НИФИГА

wvxvw 09.05.2009 01:19

Ну... я даже не знаю... это самая банальная задача которая решается на ПХП, туториалов на эту тему ну просто очень много
http://www.google.com/#hl=en&q=php+login+script

Weather 09.05.2009 01:42

просто странно почему мне не удается получить такое вот таким вот способом!
вообще было сделано изначально так: index.php в нем внутри встроен flash. Далее во флэше жму вход открывается новая страница (login.php), в которой поля ввода логина и пароля ну и кнопка отправки, типа могу код кинуть
PHP код:

<BODY bgColor=#000000 background="../image/bg3.gif" text=ea7500 >
<HTML><HEAD><TITLE>Index</TITLE>
<
META http-equiv=Content-Type content="text/html; charset=windows-1251">
<
LINK href="/image/style.css" type=text/css rel=stylesheet>
</
HEAD>

<
FORM name=form action=login_proc.php method=post>

  <
TBODY>
  <
TR><center><br><br><br><br>
    <
TD align=middle height=50><B><font color="#CCCCCC">Вход :</font></B></TD></TR>
  <
TR>
    <
TD vAlign=top align=middle>
      <
TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>
        <
TBODY>
        <
TR><br>
          <
TD align=middle>
            <
DIV>Для входа вы должны<br><
            href
="../reg.php">Пройти регистрацию!</A></DIV></TD></TR></TBODY></TABLE><BR>
      <
TABLE cellSpacing=0 cellPadding=5 border=0>
        <
TBODY>
        <
TR>
          <
TD align=right><B>Логин</B></TD>
          <
TD><INPUT maxLength=16 size=17 name=log style=" border: 1px solid rgb(0,0,0)"></TD></TR>
        <
TR>
          <
TD align=right><B>Пароль</B></TD>
          <
TD><INPUT type=password maxLength=16 size=17 name=psw style=" border: 1px solid rgb(0,0,0)"></TD></TR>
        <
TR>
          <
TD>&nbsp;</TD>
          <
TD><INPUT type=hidden value=1 name=send><INPUT type=submit value=Войти name=submit></TD></TR>
        <
TR>
          <
TD>&nbsp;</TD>
          <
TD><A href="../lostpass.php">Забыли пароль?</A></TD></TR></TBODY></TABLE><BR></TD></TR>
  <
TR>
<
TD align=middle height=25>
<
A href="/index.php">Вернуться на главную!</A>
</
TD></TR></TBODY></TABLE></FORM></BODY></HTML

все очень просто!
тобишь когда вводим имя и пароль то попадаем на новую страницу, тоже в index.php, только в другой папке.

и из login.php как я понял принимаются данные тута login_proc.php
вот код его
PHP код:

<?
session_start
();
foreach (
$_POST as $var => $value
{
if (
$var=="amp;log"){$log=$value;}
if (
$var=="amp;psw"){$psw=$value;}
}
$log htmlentities($log);
$psw htmlentities($psw);
if(isset(
$submit) )
{
include (
"../setup.php");
$log2=$log;
$result=mysql_query("select * from users where login='$log2'");
$row=mysql_fetch_array($result);
$base_login=$row[1];
$base_psw=$row[2];
if(
$log==$base_login && $psw==$base_psw && $log<>"")
{
$HTTP_SESSION_VARS['l']=$base_login;
Header("Location: index.php");
exit;
}
else
{
Header("Location: ../index.php");
exit;
}
}
?>

я решил что было бы круче сделать все ето только во ak'ti без всяких там лишних открываний страниц!
Так вот как всетаки осуществить идею то?
Может поможете (если дело во времени, так может тогда скажете какое вознаграждение? :) )

wvxvw 09.05.2009 18:55

Вы никогда не посылаете переменные с именами:
"amp;log" и "amp;psw" скорее всего вы этот код откуда-то плохо скопировали и "amp;" - это отвалившаяся часть от &amp;
но вообще более дурацкий способ проверить существование переменных в $_POST придумать сложно...
Код:

if (isset($_POST['psw'] && isset($_POST['log']))
{
# ваши действия
}

И, еще раз,
Код:

if (isset($submit))
никогда не выполнится, вы никогда не определяете эту переменную, поэтому в тело if'a вообще никогда не зайдет.
$HTTP_SESSION_VARS - сто лет назад deprecated
Header - аналогично, сейчас пишется со строчной буквы.
Зачем нужно это: $log2 = $log; - никому не понятно.
Код:

$result=mysql_query("select * from users where login='$log2'");
так делать нельзя ни в коем случае, это просто подарок для того, кто захочит сломать чего-нибудь в вашей базе данных. Для этого в глобальном плане существует mysql_real_escape(), но а вообще, короткие тексты лучше проверять регекспом на наличие нелегитимных символов.

Да и еще в придачу ко всему сверстать 2 строчки таблицами на кривом HTML1 (и то сомнительно как-то) и влепить туда AS1 флешку :)
Скажите, где вы такую гадость находите? Ну просто ведь поискать в гугле готовые решения - конечно, тоже много хлама, но все ж не на столько древнего...

Vas717 09.05.2009 20:57

А вы уверены что у вас флэш отправляет и получает HTTP запросы ?)

Код AS1/AS2:

var send_lv:LoadVars = new LoadVars(); 
var recive_lv:LoadVars = new LoadVars();
 
send_lv.login = 'userlogin';
send_lv.password = 'userpassword';
send_lv.sendAndLoad( httpUrl , recive_lv ,  'POST' );
 
// ответ сервера если ок - то "response=true" / "response=false"  если неудача
 
recive_lv.onLoad = function(success)
{
if (recive_lv.response == "true")
{
getURL ( gotoURL, "_self" );
// если проверка пройдена, переадресовывем на gotoURL
}
}

Добавлено через 16 минут
А уже далее на ПХП все просто
PHP код:

<?
$result_true 
"response=true";
$result_false "response=false";

$login htmlstripslasheshtmlentities $_POST["login"] ) );
$password htmlstripslasheshtmlentities $_POST["password"] ) );
// здесь за точность написания всторенных пхп методов не ручаюсь

if ( isset( $login ) && $login != "" &&  isset( $password ) && $password != "" )
{
include (
"../setup.php");
// а надо ?

$result=mysql_query("select * from users where login='$login' && password='$password' LIMIT 0,1");
$row=mysql_fetch_array($result);
if ( 
is_array($row) ) 
{
print_rresult_true);
}
else
{
print_rresult_false);
}
}
else
{
print_rresult_false);
}
?>


Weather 10.05.2009 00:33

getURL ( gotoURL, "_self" );
// если проверка пройдена, переадресовывем на gotoURL - это значит путь к моей странице?


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

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