Jump to content


Photo

Dúvida Com Criação De "sub Sites"


  • Faça o login para participar
10 replies to this topic

#1 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 26/01/2009, 00:07

Bom dia pessoal!

Estou qurendo criar um site onde terão vários "sub-sites" utilizando mesmo banco de dados e domínio.

A idéia que eu quero fazer é a seguinte.. pegar o nome no final do domínio, e abrir o site correspondente. Por exemplo:

www.meusite.com.br -> Abre um site..
www.meusite.com.br/nome_do_site_/ -> ele pega o nome_do_site como variavel login.. e abre um site padrão de acordo com as informações cadastradas no banco de dados correspondente a aquele login ->

www.meusite.com.br -> Layout A com informações de A
www.meusite.com.br/site1/ -> Layout B com informações do site1
www.meusite.com.br/site2/ -> Layout B com informações do site2
www.meusite.com.br/site3/ -> Layout B com informações do site3

Existe essa possibilidade?
Penso que vai ser usa através da quey Get.. mais não sei como desenvolver isso.

Aguardo resposta.
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 26/01/2009, 07:47

Sim, dá pra fazer do jeito que vc falou! Mas você teria que colocar meusite.com.br/index.php?cliente=nome_do_site para fazer com GET!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 lanlan

lanlan

    12 Horas

  • Usuários
  • 180 posts
  • Sexo:Não informado
  • Localidade:Teresina
  • Interesses:design, php, photoshop. ;} webdesign em geral!

Posted 26/01/2009, 12:39

Para layouts diferentes, em cada pasta vc deve ter arquivos estilo, topo, rodapé diferentes.

Agora para carregar dados de acordo com a página:

$page_url = explode ("/", $_SERVER['PHP_SELF']);
if(ereg("^[0-9]+$", $page_url[1])) $user = (int)$page_url[1];

Dá um explode na página pelas '/' e pega a parte do usuário.
Mas, faça uma validação para ter certeza que não vão inserir dados que comprometam seu banco.
No caso, eu só aceito valores que sejam números.

:) Espero ter ajudado.

#4 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 30/01/2009, 00:28

Pessoal, primeiro obrigado pelas respostas!

Sim, dá pra fazer do jeito que vc falou! Mas você teria que colocar meusite.com.br/index.php?cliente=nome_do_site para fazer com GET!


Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1

Mais difícil neh.. ehehhe


Para layouts diferentes, em cada pasta vc deve ter arquivos estilo, topo, rodapé diferentes.

Agora para carregar dados de acordo com a página:

$page_url = explode ("/", $_SERVER['PHP_SELF']);
if(ereg("^[0-9]+$", $page_url[1])) $user = (int)$page_url[1];

Dá um explode na página pelas '/' e pega a parte do usuário.
Mas, faça uma validação para ter certeza que não vão inserir dados que comprometam seu banco.
No caso, eu só aceito valores que sejam números.

:) Espero ter ajudado.


Hum.. vou estudar certinho esse seu código.. acho que vai me ajudar.. porém quero fazer por login mesmo pois como falei fica mais prático digitar o nome do site do que um código né..

Eu pesquisando na net achei alguma coisa pra redireciona o site www.meusite.com.br/site1/ .. para a página 404 (página não existente no servidor).. e trabalhar em cima do que a página 404 retornar. Isso é viável?

Desde já agradeço a atenção.
Obrigado.
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#5 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 30/01/2009, 08:12

Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1


Cara, URLs amigáveis são a solução para você!

Veja este link Lá explica direitinho como faz, pra que serve e as vantagens!

Abraços!

Edição feita por: maykel, 30/01/2009, 08:12.
Formatação^^

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#6 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 02/02/2009, 12:53

Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1


Cara, URLs amigáveis são a solução para você!

Veja este link Lá explica direitinho como faz, pra que serve e as vantagens!

Abraços!



Opa maykel.. vlw pela dica.. li lá o arquivo... montei o .htaccess pro meu site dessa maneira:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule ^(.+)\/?$ /index.php?login=$1
ErrorDocument 404 /erro.php

Só que o seguinte.. minha idéia era que funcionasse assim:
Tanto www.meusite.com.br/login e www.meusite.com.br/login/ entraria como /index.php?login=login

até ae beleza.. só que quando eu tento acessar www.meusite.com.br/contato.php ou www.meusite.com.br/arquivo.php
ele nao acessa.. ele interpreta o arquivo.php como login tbm... Como fazer pra ele ignorar isso?

Outro erro que também reparei, é que se eu digito www.meusite.com.br/login/qualquer_coisa ... ele pega login/qualquer_coisa como login.. só que as imagens e css desabilitam, como se tivesse em outra pasta... tem como ignorar isso?

A princípio através do .htaccess tá meio complicado pra mim (até pq me enrolo com regex :blink: hehehe).. vou fazer uns testes com o scripr que o lanlan passou...

Obrigado desde já.. to quebrando a cabeça aqui, mais daqui a pouco sai.. hehehe

Abraços,
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#7 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 02/02/2009, 13:52

Amigo vc não precisa trabalhar com MOD_REWRITE nem o método do redirecionamento para ERROR 404 para oque vc quer fazer
Se vai fazer como mencionou onde cada site tem sua pasta específica basta pegar o nome da pasta
Como...???? em cada pasta terá um index.php, que em seu cód vc pega a URI com $_SERVER['REQUEST_URI']
provavelmente virá uma barra no início e outra no final dessa 'pegada' aí :D ... bom mas aí é fácil tratar neh
julgando que cada pasta terá como nome uma identificação única de cada subsite então teu problema está resolvido.

Agora se ainda quiser trabalhar com mod_rewrite legal.... abri um tópico ontem sobre isso e faço de um jeito bem simples e fácil de sacar, inclusive é uma forma que ignora os arquivos que vc definir... como css jpg gif etc...

... mas não use o método do erro 404, pois toda solicitação a seu site gera um log de erro no servidor... sei lá... não acho legal...

Acho que para o que quer não precisa nem um nem outro... basta pegar a URI, já que a pasta do subsite vem logo depois da URL root torna-se fácil

Sei lá... fica a dica. (y)Até mais

#8 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 02/02/2009, 15:22

Amigo vc não precisa trabalhar com MOD_REWRITE nem o método do redirecionamento para ERROR 404 para oque vc quer fazer
Se vai fazer como mencionou onde cada site tem sua pasta específica basta pegar o nome da pasta
Como...???? em cada pasta terá um index.php, que em seu cód vc pega a URI com $_SERVER['REQUEST_URI']
provavelmente virá uma barra no início e outra no final dessa 'pegada' aí :D ... bom mas aí é fácil tratar neh
julgando que cada pasta terá como nome uma identificação única de cada subsite então teu problema está resolvido.

Agora se ainda quiser trabalhar com mod_rewrite legal.... abri um tópico ontem sobre isso e faço de um jeito bem simples e fácil de sacar, inclusive é uma forma que ignora os arquivos que vc definir... como css jpg gif etc...

... mas não use o método do erro 404, pois toda solicitação a seu site gera um log de erro no servidor... sei lá... não acho legal...

Acho que para o que quer não precisa nem um nem outro... basta pegar a URI, já que a pasta do subsite vem logo depois da URL root torna-se fácil

Sei lá... fica a dica. (y)


Eae crab..
então.. utilizei o seu código do link que passou (até fiz um comentário nele.. hehehe)..

Bom.. seu código funciona da maneira que eu quero. Fiz da seguinte maneira.

.htacess
RewriteEngine On
RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png)$ index.php

index.php
<?
	$url = explode("/", $_SERVER['REQUEST_URI']);
	$valor_extraido = array_shift($url);
	
	$login= $url[0];
?>

Até ae beleza, porém se eu digito www.meusite.com.br ele entra no site...
Se eu digitar www.meusite.com.br/login ... ele entra no site com a variável login

Agora se eu digitar www.meusite.com.br/login/ ... ele entra no site com a variável login, porém some tudo as imagens e css.. =/


Outra coisa que acho que não exclareci direito é o seguinte.. quando digo trabalhar com 2 layout, é da seguinte maneira:
1) www.meusite.com.br -> Entra no site principal..
2) www.meusite.com.br/login/ -> Entra num site secundário (escolhido via PHP), puxando informações do banco de dados conforme o login.

Na verdade não vão ter pastas.. vai ter 2 layouts somente, o principal.. e um secundário quando for entrar com login.
Porém ta dando esse problema das imagens.

Obrigado pelas respostas galera,
Abraços,
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#9 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 02/02/2009, 16:01

Amigo, quantos aos teus comentários lá ... já os rebati e com propriedade hehehehe de uma olhada com atenção quando for dar uma consultada no manual :D

Quando ao lance dos css e jpgs estarem quebrados tente colocar um <base href="http://www.teusite.com.br/" /> entre as tags <head></head> da página.

Mas aí já estamos entrando em xhtml :D

Boa sorte

(y) Até mais

#10 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 03/02/2009, 18:29

Ótimo Crab, funcionou certinho... Não conhecia a tag <base> .. obrigado pela dica..

Eu só to com outro probleminha agora.. ele ta interpretando arquivos mesmo como "logins", ae se eu quero direcionar para contat.php ele não vai.. ehhehe

Vo ter de desenvolver alguma coisa pra tratar os arquivos.

Vlw pela ajuda..
Obrigado,
Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#11 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 03/02/2009, 21:20

Camarada... se tu vai usar aquele formato para reescrever sua url deve ter me mente que fará isso para todas as suas páginas...

aquele formato redireciona o tráfego para a index.php....

se vc quer exibir o conteudo do arquivo contato.php poderia fazer assim

www.teusite.com.br/contato

na index vc pega o "contato" daquela forma lá que viu no meu tópico sobre rewrite url, dividindo em arrays e tals... e faz o que quiser com ele...

No caso aplica um switch aí dizendo que caso seja "contato" execute um include do arquivo contato.php

Não tem mistério... mas requer estudo e teste.

(y)Até mais




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq