Drumente 0 Denunciar post Postado Março 19, 2010 Eu fiz o publish em html do flash e o coloquei num servidor remoto junto com um ficheiro php Eu estou a usar o LoadVars para chamar o php, mas se chamar no servidor local ele funciona sem qualquer problema, e no servidor remoto nao funciona. Tenho o ficheiro php a ir buscar dados numa base de dados que não é remota (ainda não a coloquei no servidor remoto), mas acho que não é por isso que gera o código mal. O código no flash é este : variavel.load("utilizadores.php", variavel, "POST") Será que é diferente como se coloca o caminho no servidor remoto? Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 19, 2010 Eu não tenho certeza se um arquivo PHP que está no servidor consegue acessar uma base de dados local... De qualquer forma, faça o tratamento no PHP e traga o retorno para ver se ele realmente está acessando a base. Att. Compartilhar este post Link para o post Compartilhar em outros sites
Drumente 0 Denunciar post Postado Março 24, 2010 Eu ja tenho acesso a base de dados remota mas mesmo assim continua a fazer o mesmo. No flash ele retorna o valor que está no php, mas eu usei um switch e vai buscar o valor num case que não tem nada a ver como ex: Quando clico no botao entrar ele em vez de mostrar a mensagem "Introduza um username valido..." que corresponde ao case 'entrar' ele mostra uma mensagem que está no php que coloquei "A variavel nao passou...";" (com as aspas e ponto e virgula, o que nao devia de acontecer) no case 'eli' ou case 'alt' Podem visualizar isso em "neljos.limasoft.pt/udraw.html" O codigo do php "utilizadores.php" e este: <?php require_once('Connections/ligbd.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $accao = $_GET['accao']; switch("$accao"){ case 'entrar': $user = utf8_decode($_POST["user"]); $pass = utf8_decode($_POST["pass"]); $consulta = "SELECT * FROM users WHERE user = '$user'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if(!($linha = mysql_fetch_array($resultado))){ echo"&mensagem=Introduza um username valido..."; }else if(!($linha[1] == $pass)){ echo"&mensagem=Introduza a password valida..."; }else{ $user = utf8_encode($linha['user']); echo"&user=1&username=$user"; } break; case 'nova': $user = utf8_decode($_POST["user"]); $pass = utf8_decode($_POST["pass"]); $nome = utf8_decode($_POST["nome"]); $morada = utf8_decode($_POST["morada"]); $email = utf8_decode($_POST["email"]); $consulta = "SELECT * FROM users WHERE user = '$user'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if($linha = mysql_fetch_array($resultado)){ echo"&mensagem=O username ja existe. Insira outro."; }else{ $sql = "INSERT INTO users(`user`,`pass`,`nome`,`morada`,`email`) VALUES ('$user','$pass','$nome','$morada','$email')"; $verifica = mysql_query($sql)or die("A inserção falhou".mysql_error()); echo"&mensagem=O seu registo foi feito com sucesso...&user=1"; } break; case 'ver': $user = utf8_decode($_POST["username"]); $consulta = "SELECT * FROM users WHERE user = '$user'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if($linha = mysql_fetch_array($resultado)){ $user = utf8_encode($linha['user']); $pass = utf8_encode($linha['pass']); $nome = utf8_encode($linha['nome']); $morada = utf8_encode($linha['morada']); $email = utf8_encode($linha['email']); echo"&user=$user"; echo"&pass=$pass"; echo"&nome=$nome"; echo"&morada=$morada"; echo"&email=$email"; } break; case 'alt': $username = utf8_decode($_POST["username"]); $user = utf8_decode($_POST["user"]); $pass = utf8_decode($_POST["pass"]); $nome = utf8_decode($_POST["nome"]); $morada = utf8_decode($_POST["morada"]); $email = utf8_decode($_POST["email"]); $consulta = "SELECT * FROM users WHERE user = '$username'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if($linha = mysql_fetch_array($resultado)){ $sql = "UPDATE users SET user = '$user', pass = '$pass'," . " nome = '$nome', morada = '$morada', email = '$email' WHERE user = '$username'"; $verifica = mysql_query($sql)or die("A alteração falhou".mysql_error()); echo"&mensagem=A sua conta foi alterada...&username=$user"; }else{ echo"&mensagem=A variavel nao passou..."; } break; case 'eli': $username = utf8_decode($_POST["username"]); $consulta = "SELECT * FROM users WHERE user = '$username'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if($linha = mysql_fetch_array($resultado)){ $sql = "DELETE FROM users where user = '$username'"; $verifica = mysql_query($sql)or die("A eliminação falhou".mysql_error()); echo"&mensagem=A sua conta foi eliminada..."; }else{ echo"&mensagem=A variavel nao passou..."; } break; case 'salaverde': $sala = utf8_decode($_POST["sala"]); $consulta = "SELECT * FROM salas WHERE sala = 'verde'"; $resultado = mysql_query($consulta)or die("A consulta falhou:".mysql_error()); if($linha = mysql_fetch_array($resultado)){ $sala = utf8_encode($linha['sala']); echo"&sala=$sala"; } break; } ?> E no flash está assim: registo.registar.onRelease = function(){ if(registo.user.text=="" or registo.pass.text=="" or registo.nome.text=="" or registo.morada.text=="" or registo.email.text==""){ mensagem.text = "Insira todos os campos"; }else{ novaconta = new LoadVars(); novaconta.user = registo.user.text; novaconta.pass = registo.pass.text; novaconta.nome = registo.nome.text; novaconta.morada = registo.morada.text; novaconta.email = registo.email.text; novaconta.sendAndLoad("utilizadores.php?accao=nova", novaconta, "POST"); novaconta.onLoad = function(ok){ if(ok){ if(novaconta.user == 1){ mensagem.text = novaconta.mensagem; registo._visible = false; }else{ mensagem.text = novaconta.mensagem; } }else{ mensagem.text = novaconta.mensagem; } } } } registo.limpar.onRollOver = function(){ this.gotoAndStop(2); } registo.limpar.onRollOut = function(){ this.gotoAndStop(1); } registo.limpar.onRelease = function(){ mensagem.text = ""; registo.user.text = ""; registo.pass.text = ""; registo.nome.text = ""; registo.morada.text = ""; registo.email.text = ""; } } entrada.entrar.onRollOver = function(){ this.gotoAndStop(2); } entrada.entrar.onRollOut = function(){ this.gotoAndStop(1); } entrada.entrar.onRelease = function(){ login.user = entrada.user.text; login.pass = entrada.pass.text; login.sendAndLoad("utilizadores.php?accao=entrar", login, "POST"); login.onLoad = function(ok){ if(ok){ if(login.user == 1){ entrada.gotoAndStop(2); registo._visible = false; utilizador = login.username; entrada.gotoAndStop(2); mensagem.text = ""; entrada.user.text = utilizador; userdentro = true; }else{ mensagem.text = login.mensagem; } }else{ entrada.user.text = ""; entrada.pass.text = ""; } } } Localmente, funciona na perfeição mas quando é publicado não. Será que tem a ver com o codigo AS pa chamar o php? Ando completamente as voltas... Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 25, 2010 Testa efetuando as chamadas ao PHP utilizando o caminho absoluto, ex: http://www.blabla... Att. Compartilhar este post Link para o post Compartilhar em outros sites
Drumente 0 Denunciar post Postado Março 25, 2010 Ja tentei escrever "http://www.neljos.limasoft.pt/utilizadores..." e ja tentei assim "http://neljos.limasoft.pt/utilizadores..." e continua na mesma. O sitio onde está é um subdominio. Eu preciso que trabalhe online e isto ta a dar me cabo da cabeca... O que eu sei e que ele vai buscar o php, isso eu sei, so que no switch ele vai me buscar o case errado porque para login eu tenho a chave "accao" = ao valor "entrar" que pertence ao case "entrar", mas quando vai buscar a mensagem, ele vai buscar ao case "alt" que não tem nada a ver... E o mais estranho é que a variavel correspondente ao movieclip no flash que está no php, é mostrada no flash como escrita e não como valor atribuido na variavel do php que é &mensagem="A variavel não passou..."; Ai ele mostra a mensagem junto com as " finais e o ; Compartilhar este post Link para o post Compartilhar em outros sites
Drumente 0 Denunciar post Postado Março 29, 2010 Olá a todos. Estive a analisar e reparei que o flash recebe as ultimas linhas do php assim (esqueçam o case 'salaverde'): A variavel nao passou..."; } break; Já tirei o switch e criei 1 ficheiro em que fosse só buscar o username e no flash mostra isto: $user"; Isto só acontece dentro do servidor remoto porque no local a chamar por "http://localhost..." usando o método de LoadVars funciona lindamente. Não sei porque é que no servidor remoto acontece isto. Já experimentei autorizar o acesso nas opções globais da adobe flash player e nada. Já experimentei dar vários caminhos como ex: - "http://neljos.limasoft.pt/utilizadores.php?accao=entrar" - "neljos.limasoft.pt/utilizadores.php?accao=entrar" - "./utilizadores.php?accao=entrar" - "utilizadores.php?accao=entrar" No php já tirei " e coloquei ", tirei & e coloquei & e nada mesmo, continua sempre a fazer o mesmo. Uso o filezilla para mandar os ficheiros para o servidor. Existe alguma maneira de resolver isto? Existe outro método de buscar variaveis ao php com AS2? Olá a todos. Estive a analisar e reparei que o flash recebe as ultimas linhas do php assim (esqueçam o case 'salaverde'): A variavel nao passou..."; } break; Já tirei o switch e criei 1 ficheiro em que fosse só buscar o username e no flash mostra isto: $user"; Isto só acontece dentro do servidor remoto porque no local a chamar por "http://localhost..." usando o método de LoadVars funciona lindamente. Não sei porque é que no servidor remoto acontece isto. Já experimentei autorizar o acesso nas opções globais da adobe flash player e nada. Já experimentei dar vários caminhos como ex: - "http://neljos.limasoft.pt/utilizadores.php?accao=entrar" - "neljos.limasoft.pt/utilizadores.php?accao=entrar" - "./utilizadores.php?accao=entrar" - "utilizadores.php?accao=entrar" No php já tirei " e coloquei ", tirei & e coloquei & e nada mesmo, continua sempre a fazer o mesmo. Uso o filezilla para mandar os ficheiros para o servidor. Existe alguma maneira de resolver isto? Existe outro método de buscar variaveis ao php com AS2? Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 30, 2010 Minha praia não é o PHP, então sugiro efetuar um teste simples acessando um script PHP no server para testar se o acesso e retorno é bem sucedido, pois talvez o problema pode ser no server já que citou que localmente funciona... Att. Compartilhar este post Link para o post Compartilhar em outros sites