Ir para conteúdo

POWERED BY:

Arquivado

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

rogerss_7

[Resolvido] Lógica complicada

Recommended Posts

Gente, to precisando uma ajuda que não to conseguindo resolver de jeito nenhum.

 

Vou tentar resumir o papo pra vocês.

 

Estou fazendo um sistema de locadora onde será dividida por cidade, cada cidade coloca seus filmes etc.

 

Quando entro no site, por padrão, ele pega a minha index.php.

 

A index.php verifica se já foi escolhida uma cidade, se sim começa a mostrar os filmes etc., se não redireciona para a home.php que lista todas as cidades de uma tabela e as coloca em um select pra pessoa escolher a sua cidade.

 

Escolhida a cidade na home.php, redireciona pra index.php, novamente.

 

A index pega (cidade do cara) este $_POST e coloca em uma $_SESSION.

 

Todas as tabelas das páginas serão selecionadas através da cláusula WHERE usuario_rigiao='$_SESSION.......', correto?

 

A index.php trabalha com sistema de includes, só que não estou conseguindo de jeito nenhum chamar as páginas por este método (?q=blabla).

 

Sério gente, não consigo achar uma solução, se precisar, refaço este sistema de cidades, só me dêem uma luz, se possível dêem um Holofote.

 

Obrigado por tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou disponibilizar meu sistema de include por querystring pra vocês.

 

if (isset($_GET['q'])) {
					$q = $_GET['q'];
				} else {
					$q = '';
				}
				if (eregi("^[a-z0-9\-_\.]+$",$q)) {
					if (file_exists($q.".php") && $q != 'index') {
						include ($q.".php");
					} else {
		echo "	<div id='alerta'>
					<div id='meio_alerta'>
						<div id='dentro_alerta'>
							<h3>ERRO 404 - Página não encontrada!</h3>
							<hr />
						</div>
					</div>
				</div>";
					}
				} elseif ($q == '') {
					include ("capa.php");
				} else {
		echo "	<div id='alerta'>
					<div id='meio_alerta'>
						<div id='dentro_alerta'>
							<h3>ERRO - Você está forçando a entrada!</h3>
							<hr />
						</div>
					</div>
				</div>";
				}
			?>

FABYO me ajuda, heheehe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia roger,

bom você está com problema na querystring, certo?

vou te passar um dos primeiros codigos que eu fiz quando comecei a aprender php, ele é otimo, utilizo ate hoje ^^

 

ele faz sua querystring.

 

if (isset($_GET['act']) && $_GET['act'] != "")

{

$act = $_GET['act'];

$redir_act = array

(

"login" => "plug/redir_login.php",

"logout" => "plug/logout.php",

"cadastro" => "plug/cadastro.php",

 

// aqui tem 3 exemplos de como usar... você coloca o indive.. e depois o local onde está a pagina...

// no caso.. index.php?act=login vai buscar o arquivo plug/redir_login.php

 

);

include_once($redir_act[$act]);

}

else

{

 

include_once('index.php');

 

}

coloque isso onde você quer q apareça as paginas

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detros, não estou com problemas na Query, meu problema é:

 

- Como encaixar um sistema que verifica a cidade do cara dentro da minha index.php?

 

- Se passar cidade, como continuar normalmente, ou seja, abrir tudo por meio desta query (?q=paginas) ?

 

Não quero me desfazer desta query de jeito nenhum, ela está muito boa, sempre a utilizei e sempre funcionou, só não estou sabendo como juntar as partes nesta ocasião.

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm.. bom cara... intao tente fazer o seguinte...

 

la na sua index.. onde vai receber tudo...

coloque no inicio do codigo.. depois do include do DB e do session_start()

 

if(isset($_SESSION['nome_da_session']) )

{

 

//Todo o seu codigo .....

 

}

else

{

 

// um include para a pagina de selecionar regiao

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom.. é uma maneira... ai você ira pega-la por $_GET['cidade'] ...

mas nao sei.. pq q a session está dando problema.. diga dinovo qual é o erro q ta ocorrendo.. pq naum entendi pelo primeiro post.. você falo q tava com problema no q=asdasd e depois disse q nao eh problema de query :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, beleza Roger...

então não endenti muito onde vocÊ está se perdendo :wacko:

é na hora de usar os includes ?

 

bom você verificou se tem valor na SESSION ?

e

viu se também está vindo valores em $_GET ?

 

me diz extamente onde é o possível erro ?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estão vindos todos os valores sim, só que quando uso o sitema de QueryString, que eu postei lá em cima, ele volta pra home.php (pra escolha das cidades).

 

Sempre, será que o melhor jeito é fazer uma inclusão desta home.php na index?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. da uma olhada nisso aqui :

 

 

} elseif ($q == '') {

include ("capa.php");

} else {

echo " <div id='alerta'>

<div id='meio_alerta'>

<div id='dentro_alerta'>

<h3>ERRO - Você está forçando a entrada!</h3>

<hr />

</div>

</div>

</div>";

}

 

 

você tem certeza q ela tem q ficar ligada nessa if aqui : if (file_exists($q.".php") && $q != 'index') {

 

e você ta usando 2 else para a mesma if :o

 

da uma olhada nisso ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estão vindos todos os valores sim, só que quando uso o sitema de QueryString, que eu postei lá em cima, ele volta pra home.php (pra escolha das cidades).

 

Sempre, será que o melhor jeito é fazer uma inclusão desta home.php na index?

hummm estou na correria amanhã vejo com você..

mas tenta trocar isso:

 

if (isset($_GET['q'])) {
					$q = $_GET['q'];
.
.
.
.
por isso

 

$q = isset($_GET['q'])   ? $_GET['q'] : false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. da uma olhada nisso aqui :

 

 

} elseif ($q == '') {

include ("capa.php");

} else {

echo " <div id='alerta'>

<div id='meio_alerta'>

<div id='dentro_alerta'>

<h3>ERRO - Você está forçando a entrada!</h3>

<hr />

</div>

</div>

</div>";

}

 

 

você tem certeza q ela tem q ficar ligada nessa if aqui : if (file_exists($q.".php") && $q != 'index') {

 

e você ta usando 2 else para a mesma if :o

 

da uma olhada nisso ;)

Detros, acompanha a minha lógica e a do código, olha só e vê se está correto:

if (file_exists($q.".php") && $q != 'index') {

Olha só, primeiramente (acima disso) ele trabalha com uma expressão regular na query que 'q' pegará, correto?

 

Após isso, ele verifica se este "arquivo" puxado por q, existe, logicamente se existir será incluído.

 

O que não pode acontecer é 'q' incluir index, tu imagina porque?

 

Se tu souber te dou uma bala, porque se incluir index vai acontecer uma reação em cadeia de indexes dentro de indexes infinitamente até o servidor dar pau.

 

Imagina uma inclusão dentro da mesma inclusão e assim infinitamente.

 

Na minha opinião meu código está 100% correto, claro que terei de fazer as adaptações pra este novo sistema, mas está perfeito mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parte da minha index.php

<?php
				$q = isset($_GET['q']) ? $_GET['q'] : false;
				if (eregi("^[a-z0-9\-_\.]+$",$q)) {
					if (file_exists($q.".php") && $q != 'index') {
						include ($q.".php");
					} else {
		echo "	<div id='alerta'>
					<div id='meio_alerta'>
						<div id='dentro_alerta'>
							<h3>ERRO 404 - Página não encontrada!</h3>
						</div>
					</div>
				</div>";
					}
				} elseif ($q == '') {
					include ('home.php');
				} else {
		echo "	<div id='alerta'>
					<div id='meio_alerta'>
						<div id='dentro_alerta'>
							<h3>ERRO - Você está forçando a entrada!</h3>
							<hr />
						</div>
					</div>
				</div>";
				}
			?>

home.php, que é a primeira página a ser incluída.

<?php
$query_regiao = mysql_query ('select nome from tb_regiao');
print "
<form method=\'POST\'>
<select name='regiao_usuario'>";

while ($res = mysql_fetch_array($query_regiao)) {
print "
<option value='$res[nome]'>$res[nome]</option>";
}

print "
</select>
<input type='submit' value='ir' />
</form>";
?>

Neste include abaixo diz que se q estiver vazio a primeira coisa é incluir home, correto?

} elseif ($q == '') {
	include ('home.php');
} else {

Como faço pra verificar se já está passando a cidade, ou seja, olhem a minha lógica abaixo.

 

Se $q estiver vazio e não estiver passando a cidade -> inclui home.php;

 

Se $q estiver vazio mas passando a cidade -> inclui capa.php;

 

Se estiver passando a cidade, indiferente da página (?q=qualquer_coisa) -> continua normalmente;

 

Caras preciso muito disso, dêem uma força aí.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

:wacko:

 

Cara..nunca vi tanta complicação para uma coisa tão simples....

vamos tentar recomeçar do zero.... e resolver isso de uma vez por todas! ;)

 

vamos à tão sagrada logico, que de complica nao possui nada...

Passo 1 - A Divina lógica http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif

1 - verificar se uma cidade foi escolhida

- Caso, SIM: continua o codigo

- Caso, NAO: move para a pagina de esoclher a cidade

2- Dentro do caso sim, verifica se a pagina existe e ela é diferente da Index..

- Caso exista, move para a pagina

- Caso não exista, retorna erro.

 

Fim de Lógica...

Parecida com a sua ??? pois eh.. é quase identica!

 

Passo 2 - O Aloprado Codigo http://forum.imasters.com.br/public/style_emoticons/default/skull.gif

 

include("config.php");

session_start();

if(isset($_SESSION['cidade']) && $_SESSION['cidade'] != '')

{

if(isset($_GET['q']) && $_GET['q'] != 'index')

{

$pagina = eregi("^[a-z0-9\-_\.]+$", $_GET['q']);

if (file_exists($pagina .".php"))

{

include($pagina .".php");

}

else

{

echo "ERRO 404 - Página não encontrada!";

}

}

}

else

{

include('home.php');

}

Sobre o meu ponto de vista.. não há falhas nesse codigo acima... mas como sempre aviso: todo codigo que crio digitado diretamente no fórum, não passa por testes, portanto não garanto seu funcionamento em 100%... mas já é um começo.

 

Bem no inicio do tópico... eu postei um script de querystring nele é 100% garantido. Para melhorá-lo é só adaptar um if com um file_exist nele... que nao tem erro.

 

Tente se despregar um poco do html, para limpar seu codigo.. e tente faze-lo separado...

testa ai.. e poste o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Detros, vim te fazer mais uma pergunta.

 

Brincadeira cara, seguinte dando uma analisada no meu código, agora à tarde, pensei numa solução pro meu “Super Ultra Incrível Problema” (nem tanto, hehe), fiz algumas alterações e simplesmente funcionou do jeito que eu queria, te agradeço mesmo por tudo cara.

 

Como comentei contigo, não havia problema no código de query (por isso insisti tanto pra não mexê-lo), fiz uma validação no início da index e incrementei uma linha na quey e pronto, validando o $_POST, pronto! Solucionado o problema.

 

Pode marcar como Resolvido.

 

Abração.

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.