Ir para conteúdo

POWERED BY:

Arquivado

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

Drumente

Chamar ficheiros externos dentro do servidor remoto

Recommended Posts

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

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

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

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

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

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

×

Informação importante

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