vonzuben 12 Denunciar post Postado Abril 22, 2013 <?php require("config/conexao.php"); $pg = isset($_GET['pagina']) ? $_GET['pagina'] : 'home'; $explode = explode('/', $pg); $sql = "SELECT * FROM usuarios WHERE usuario = '".mysql_real_escape_string($explode[0])."' AND ativado = 1"; $query = mysql_query($sql); if(mysql_num_rows($query) > 0){ $row = mysql_fetch_assoc($query); $usuario = $row['usuario']; $skype = $row['skype']; $nome = $row['nome']; $page = 'usuario'; if(isset($explode[1]) && empty($explode[1])){ $page = $explode[1]; } }else{ $page = $explode[0]; } if(file_exists("$page.php")){ include("$page.php"); }else{ include("404.php"); } ?> htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?pagina=$1 Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Podia nos explicar qual problema vc está tendo... Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Abril 22, 2013 if(isset($explode[1]) && empty($explode[1])){ $page = $explode[1]; } Se existir e se estiver vazio você atribui uma variável a ela. acho que essa condição esta errada. seria se existir e NÃO estiver vazia Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 Quando digito o nome do usuario www.site.com.br/maria está indo para o 404, ( só vai no 404 ) agora digitando outros links funciona normal tipo www.site.com.br/empresafiz um teste e digitei www.site.com.br/empresa/12 e imprimiu os valores do parametro certinho empresa/12echo $_GET['pagina']; Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Por qual razão vc usa o "explode" na sua consulta? É para eliminar a última barra? O usuário "maria" existe mesmo no banco de dados com o ativado valor 1? Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 para verificar se o parametro é um usuarioexiste com valor 1 Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Certo. Cara, montei uma tabela no banco de dados, criei os arquivos home, usuario, 404 e a conexão. Adicionei a maria na tabela e rodei exatamente seu código. Sem erros, ok? Tá tudo certo. Achou quando tentei acessar maria e não achou quando tentei acessar caio. Então vc certamente esta tendo um problema no seu rewrite de URLs. Então resolvi adicionar o .htaccess que vc mandou e testar exatamente o que vc está fazendo. Encontrei o problema quando vc tenta acessar o endereço "maria" com a barra no final. Vc faz uma validação para saber se existe algo além da barra e ainda valida se o valor está branco. O problema é que tinha que validar se o valor NÃO está branco. Tente assim agora: <?php require("config/conexao.php"); $pg = isset($_GET['pagina']) ? $_GET['pagina'] : 'home'; $explode = explode('/', $pg); $sql = "SELECT * FROM usuarios WHERE usuario = '".mysql_real_escape_string($explode[0])."' AND ativado = 1"; $query = mysql_query($sql); if(mysql_num_rows($query) > 0){ $row = mysql_fetch_assoc($query); $usuario = $row['usuario']; $skype = $row['skype']; $nome = $row['nome']; $page = 'usuario'; if(isset($explode[1]) && !empty($explode[1])){ $page = $explode[1]; } }else{ $page = $explode[0]; } if(file_exists("$page.php")){ include("$page.php"); }else{ include("404.php"); } ?> Abs. Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 o codigo é o mesmovc fez alguma mudança no .htaccess ? Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Não é o mesmo amigo. Teste, observe a linha: if(isset($explode[1]) && !empty($explode[1])){ Att, Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 ah ta verdade ! tanto codigo lendo que fica ate louco está indo para o 404 ainda Não é o mesmo amigo. Teste, observe a linha: if(isset($explode[1]) && !empty($explode[1])){ Att, o seu não está indo para o 404 ? Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Aqui não. Vamos testar então seus dados. Abaixo da linha do explode, adiciona um print_r igual eu fiz aqui: $explode = explode('/', $pg); echo '<pre>'; print_r($explode); exit; Depois cola pra mim o resultado da tela. Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 Array ( [0] => maria ) $sql retornando SELECT * FROM usuarios WHERE usuario = 'maria' AND ativado = 1 $query está retornando isso Resource id #6 Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Ok, tudo certo até aí, tira então os testes. Coloca na linha depois do mysql_query isso: $query = mysql_query($sql); $var = mysql_fetch_array($query); echo '<pre>'; print_r($var); exit; Passa o resultado aqui. Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 não retornou nada, sendo que a pagina 404 não apareceu e rodape sumiu Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Ok, pode tirar o teste então. Muda aqui: $query = mysql_query($sql) or die (mysql_error()); Desculpe, já devia ter falado isso desde o início. Nos diz se apresenta erro. Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 não retorna nada, pois já tinha feitopermissao do host do BD esta feito também.será algum conflito? Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 Tem algo errado e é entre o PHP e banco de dados, pois a consulta não consegue ser feita. Vc tem "or die" na sua conexão e selecionando o banco de dados? Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 mas quando coloco assim ele abaixa os dadosentão não tem problema com conexão require("config/conexao.php"); $usuario = $_GET['pagina']; $sql = mysql_query(“SELECT * FROM usuarios WHERE usuario=’{$usuario}’ AND ativado=’1′”); $row = mysql_fetch_array($sql); $status = $row['status']; $skype = $row['skype']; echo $skype; echo $status; estranho Compartilhar este post Link para o post Compartilhar em outros sites
findrai 11 Denunciar post Postado Abril 22, 2013 O mysql_num_rows está retornando o número de registros? Compartilhar este post Link para o post Compartilhar em outros sites
vonzuben 12 Denunciar post Postado Abril 22, 2013 quando colocado assim não retorna if(mysql_num_rows($query) > 0){ $row = mysql_fetch_assoc($query); $usuario = $row['usuario']; $skype = $row['skype']; $nome = $row['nome']; echo $skype; echo $status; agora fico pensandopq o seu esta dando certo e o meu não? Compartilhar este post Link para o post Compartilhar em outros sites