Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AUTREGESILO

Loadvars não funciona no Mozilla

Recommended Posts

Olá pessoal...

 

É o seguinte, criei um formulário de validação de usuário e senha em um cabeçalho flash em meu site. Tudo funciona bem no IE, porém ao utilizar no Mozilla aparentemente as variaveis naum são trasnferidas para o servidor.

Este é o script do flash:

 

loga_btn.onRelease = function () {
	var urlLoader:LoadVars = new LoadVars();
	urlLoader.usuario = user_txt.text;
	urlLoader.senha = pass_txt.text;
	urlLoader.sendAndLoad("area_restrita.php", urlLoader, "POST");
	getURL("area_restrita.php");
}

 

E este o script do PHP.

 

 



<?php 
mysql_select_db($database_AAB, $AAB);
$user = $_POST["usuario"];
$senha = $_POST["senha"];

if (empty($user) || empty($senha)) {
?>
	<script LANGUAGE="JavaScript">
		alert("Usuário e senha devem ser preenchidos!!!!");
		
	</SCRIPT>

	<?php
	
	}else{?>
    
    <?php
	$query = "SELECT * FROM tbl_users WHERE user= '".$user."' AND pass='".$senha."'";
	$rs = mysql_query($query, $AAB) or die(mysql_error());
	$row = mysql_fetch_assoc($rs);
	if (empty($row)){
		echo "Usuário Nao cadastrado";
		
	}else{
		echo "Bem vindo ao sistema";
		
		};
	 ?>
    
    
<?php };
?>


 

Da pra dar um help galera?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho funcionar no IE porque está errado o que você fez, tente assim:

 

loga_btn.onRelease = function () { 
        var urlLoader:LoadVars = new LoadVars(); 
        urlLoader.usuario = user_txt.text; 
        urlLoader.senha = pass_txt.text; 
        urlLoader.sendAndLoad("area_restrita.php", urlLoader, "POST"); 
        urlLoader.onLoad = function(){
           if(this.resposta == "true"){
           getURL("area_restrita.php"); 
           } else {
             trace("usuario ou senha inválido");
           }
        }
}

No php:

 

<?php  
mysql_select_db($database_AAB, $AAB); 
$user = $_POST["usuario"]; 
$senha = $_POST["senha"]; 
 
if (empty($user) || empty($senha)) { 
?> 
        <script LANGUAGE="JavaScript"> 
                alert("Usuário e senha devem ser preenchidos!!!!"); 
                 
        </SCRIPT> 
 
        <?php 
         
        }else{?> 
     
    <?php 
        $query = "SELECT * FROM tbl_users WHERE user= '".$user."' AND pass='".$senha."'"; 
        $rs = mysql_query($query, $AAB) or die(mysql_error()); 
        $row = mysql_fetch_assoc($rs); 
        if (empty($row)){ 
                echo "&resposta=false"; 
                 
        }else{ 
                echo "&resposta=true"; 
                 
                }; 
         ?> 
     
     
<?php }; 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mestre Carneiro...

 

Então... vamos lá...

 

Obrigado pela força... resolveu um outro problema que eu estava tendo com tentativas sequênciais de autenticação. Acredite, realmente funcionava assim (mas com estes problemas e autenticação os quais me referi acima), e acredite.. mesmo agora estou com o mesmo problema... fucniona perfeitamente no IE agora no Mozilla... nada... estou repassando os codgidos como ficaram ok?

Não sei se é o caso mas estou rodando o WAMP SERVER 2.0 aki.... naum sei se pode ser alguma configuração nele....

 

no FLASH

 

loga_btn.onRelease = function () {
	var urlLoader:LoadVars = new LoadVars();
	urlLoader.usuario = user_txt.text;
	urlLoader.senha = pass_txt.text;
	urlLoader.sendAndLoad("area_restrita.php", urlLoader, "POST");
	urlLoader.onLoad = function(sucesso:Boolean){
		if(sucesso){
			getURL("area_restrita.php");
		} else {
			trace("usuario ou senha inválido");
		}
	}
}

No PHP

 

<?php require_once('Connections/AAB.php'); ?>
<?php
  mysql_select_db($database_AAB, $AAB);
  $user = $_POST["usuario"]; 
  $senha = $_POST["senha"];  
  if (empty($user) || empty($senha)) { ?>
           <script LANGUAGE="JavaScript">                 
		   alert("Usuário e senha devem ser preenchidos!!!!");
		   </SCRIPT>
<?php
  }else{?>
 <?php
  $query = "SELECT * FROM tbl_users WHERE user= '".$user."' AND pass='".$senha."'";
  $rs = mysql_query($query, $AAB) or die(mysql_error());
  $row = mysql_fetch_assoc($rs);
  if (empty($row)){
      	echo "&resposta=false";
	  }else{
	  	echo "&resposta=true";
		};
?>
<?php }; ?>
Se você mestre carneiro ou alguem puder ajudar agradeço desde ja...

Grande Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

AUTREGESILO, o erro é de simples digitação :)

 

não existe método "onload" o correto é "onLoad" (com L maiúsculo)

 

Código do fla:

 


bt.onRelease = function() {
	var urlLoader:LoadVars = new LoadVars();
	urlLoader.usuario = user_txt.text;
	urlLoader.senha = pass_txt.text;
	urlLoader.sendAndLoad("teste.php", urlLoader, "POST");
	urlLoader.onLoad = function() {
		if (this.resposta == "true") {
			trace('sucesso');
		} else {
			trace('erro');
		}
	};
};

// NO PHP

<?
$user = $_POST["usuario"];
$senha = $_POST["senha"];
if (empty($user) || empty($senha)) {
   echo "&resposta=false";
}else{
      echo "&resposta=true";
}

?>

Alterei o seu script original só pra testar aqui, tá ok no IE e no firefox.

abs

PS: Editado 3 vezes pois o L de onLoad não estava saindo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, blockmonork, na realidade tive o mesmo problema que você ao postar... meu codigo esta ja com o onLoad (com L maiúsculo) mas mesmo assim tenho o problema com o mozilla.. pra ficar mais fácil, da um olhada no link http://www.aabras.org.br/ o topo da página tem justamente a área de login que estou tentando fazer funcionar. Utilize User: teste e senha: 123.

Para mim, aki, ao tentasr no IE tudo funciona perfeitamente, loga quando o user ta correto, informa quando esta branco e quando esta errado, ja no Mozilla ele sempre informa que usuário e senha devem ser preenchidos, Me parece que no Mozilla, ele não esta processando o LoadVars...

Os codigos são identicos aos que postei anteriormente, salvo o fato do L no onLoad que de fato aki nos posts esta alterando para minusculo, mas aki esta correto.

Alguma idéia, estou realmente ficando sem opções?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errr

 

Posso chuta o erro mais comum? :)

Acho que vocês não pensaram nisso, mas vamos lá.

 

O FF aways completa códigos etc, mas nesse caso ele não completa e sim faz um erro

Quando você envia uma variavel para ele seja num txt ou php com &variavel=valor

E não coloca um & no final... por algum motivo ele continua pegando tudo depois da aspas...

 

Então para esse tipo de erro não acontecer sempre recomendo que utilizem &variavel=teste&

Assim ele não buga

 

Da uma testada... e veja se era isso ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mestre Berseck.

 

Perdoe a minha ignorância, mas como vou implementar isso? Não sei o que alterar nos códigos para testar o que sugeriu... Pode ajudar?

 

Abraço.

 

P.S. Estou fazendo o teste com outros browser e (infelizmente), apresentam o mesmo erro do Mozilla...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui ó:

<?
$user = $_POST["usuario"];
$senha = $_POST["senha"];
if (empty($user) || empty($senha)) {
   echo "&resposta=false&"; //Aqui ta vendo que coloquei o & depois do false?
}else{
      echo "&resposta=true&"; //Aqui ta vendo que coloquei o & depois do true?
}
?>

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berserk, não sei se chegou a ver o link que mandei com user e senha. O fato é que, com o teu ou o script que estou usando (abaixo eu colei O que estou usando), o problema persiste, ja tentei fazer a adição que recomendou, e continuo sem retorno quando se trata de um navegador que naum seja o IE. Quando testo direto do falsh, ele me retorna o que as variaveis foram tranferidas com sucesso, porem o getURL apresenta a pagina com as variaveis em estado empyt. Ha alguma possibilidade de remeter os arquivos para que verifique?

 

Abaixo o código que uso no PHP

 

Abç

 

<?php require_once('Connections/AAB.php'); ?>
<?php
  mysql_select_db($database_AAB, $AAB);
  $user = $_POST["usuario"]; 
  $senha = $_POST["senha"];  
  if (empty($user) || empty($senha)) { ?>
           <script LANGUAGE="JavaScript">                 
		   alert("Usuário e senha devem ser preenchidos!!!!");
		   location.href = "index.php";
		   </SCRIPT>
<?php
  }else{?>
 <?php
  $query = "SELECT * FROM tbl_users WHERE user= '".$user."' AND pass='".$senha."'";
  $rs = mysql_query($query, $AAB) or die(mysql_error());
  $row = mysql_fetch_assoc($rs);
  if (empty($row)){
      	?>
        <script LANGUAGE="JavaScript">                 
		   alert("Usuário nao cadastrado");
		   location.href = "index.php";
		</SCRIPT>
        <?php
	  }else{
	  	echo "Bem Vindo ao Sistema ".strtoupper($user);
		};
?>
<?php }; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o teste de login no site com os dados que você forneceu e tanto no IE quanto no Firefox retornou a mensagem

que usuario e senha devem ser preenchidos. Por isso eu acho que você deve fazer a condicional de campo vazio no próprio flash, deixe o php somente comparar no sql os valores recebidos .

Tente isso:

 

System.useCodepage = true;
var carrega:LoadVars = new LoadVars();
var envia:LoadVars = new LoadVars();
bt.onRelease = function() {
	var user:String = imput_user.text;
	var pass:String = imput_pass.text;
	if (user == "" or pass == "") {
		saida.text = "campo usuário ou senha não preenchidos";
	} else {
		Enviar(user, pass);
	}
};
function Enviar(user:String, pass:String) {
	carrega.user = user;
	carrega.pass = pass;
	carrega.sendAndLoad("teste.php", envia, "POST");
	envia.onLoad = function() {
		if (envia.stats == "ok") {
			//getURL("area_restrita.php");
			saida.text = 'OK'+newline+'usuario = '+carrega.user+newline+'senha = '+carrega.pass;
		} else {
			saida.text = "ERRO! "+envia.stats;
		}
	};
}

/////----------> PHP
<?php

$user = $_POST['user'];
$pass = $_POST['pass'];

if ($user == "usuario" and $pass == "senha"){
   echo "&stats=ok&";
}else{
      echo "&stats=login inválido&";
}

?>


Testei este código acima no IE e no Firefox e ambos funcionaram.

Espero que agora funcione.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

La vamos nós de novo...

BlockMonork, montei e continuo com exatamente o mesmo erro, ele não passa as variaveis para a página PHP quando através do Mozilla ou qualquer outro browser que não seja o IE, elas chegam zeradas, logo ele não critica e acusa apenas usuário inválido, alias isso agora no IE tmb... os codigos sao identicos aos que postou fiz ate uma area para testes http://localhost:8080/AAB/teste.php.

 

Vou repassar o link anterior que você não conseguiu acessar pois acho que postei algo errado, teste novamente e esta funcionando perfeitamente no IE. tenta de novo ai.

 

http://www.aabras.org.br

user: teste

senha: 123

 

O Problema persiste... Toda ajuda é bem vinda...rs

 

Vlw pela atenção e pela paciencia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Err você ta cometendo algum erro ai

 

Nesse seu código aqui:

loga_btn.onRelease = function () {
        var urlLoader:LoadVars = new LoadVars();
        urlLoader.usuario = user_txt.text;
        urlLoader.senha = pass_txt.text;
        urlLoader.sendAndLoad("area_restrita.php", urlLoader, "POST");
        getURL("area_restrita.php");
}

Como você mesmo criou tem um erro area_restrita nunca vai entrar e ser logado...

A não ser que você crie um sistema que contenha sessões...

 

E essa sessão seja carregada novamente.

 

Pois dados só vão funcionar em uma página.

urlLoader.sendAndLoad("area_restrita.php", urlLoader, "POST"); <------- isso aqui não abre uma nova página

getURL("area_restrita.php"); <----- isso carrega uma nova página

 

Se você pretende usar o getURL para redirecionar o usuario depois de fazer a ação de login... sugiro que o faça no final do php... que ele é chamado.

Assim você terá melhor noção do que está acontecendo.

 

Pois não adianta chamar uma página php quando ainda não recebeu uma resposta do servidor.

E como você não criou uma sessão que está guardado esses seus dados... ele não sabe onde procurar logo ele não acessa a página.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

AUTREGESILO, qual versão do IE você tá usando?

Eu uso (na verdade só tenho ele pra testes!) o 8 e aqui o login não passa! E nem no Firefox.

E, se você tá dizendo que as variáveis não estão chegando no php, é porquê tem coisa errada no código do seu fla, você já conferiu se os campos inputText estão realmente instanciados? Porque neste exemplo que eu te mandei acima, ele retorna perfeitamente.

 

E vendo o trecho que o berseck separou pra mostrar o lance do getURL, eu reparei que na chamada do sendAndLoad o parâmetro target tá errado. Você já resolveu isso né? Senão dá erro mesmo.

 

E...tô reparando que o index do site é php! Por quê não faz essa verificação direto no php? Seria bem mais simples.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.