Jump to content


Photo

Urls Amigaveis


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

#1 mbchaves

mbchaves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 07/01/2010, 09:18

Boa Tarde!
Estou com um sério problema em um site que estou desenvolvendo.
Não tenho experiencia com URLs Amigavel através do .htaccess, porem
consegui fazer a navegação funcionar com tranquilidade.
Mas ainda contem erros, como por exemplo a geração de Thumbs das imagens e exibição das galerias que abrem em popup.
Preciso de ajuda para solucionar o erro. Segue os codigos que estou utilizando e o link do site para que posso ser visto e analisado.

1º Erro:
Quando acesso o site através desta URL:
http://www.celenetha...rgo.com.br/home

A home abre normalmente, mas quando acesso pelo dominio direto, n exibe a home.
http://www.celenethaumaturgo.com.br

2º Erro:
Ao clicar no botao de galeria de fotos, as imagens não carregam e quando clico pra ver a galeria ele retorna para a index.
Segue o codigo de geracao do thumb e exibicao da galeria de fotos.

GERACAO DO THUMB
<?php
header("Content-type: image/jpeg;"); 
$src = $_GET["src"];
 
$img = imagecreatefromjpeg($src);
 
$numWdt = imagesx($img);
$numHgt =  imagesy($img);
 
$MaxLarg =  $_GET["w"];
$MaxAlt = $_GET["h"];
 
        if ( ($MaxLarg > $numWdt) and ($MaxAlt > $numHgt) ) {
                imagejpeg($img); 
                imagedestroy($img); 
        } else {
                $areanova = $MaxLarg*$MaxAlt;
 
                $largarea = $MaxAlt * $numWdt;
 
                $altarea = $MaxLarg * $numHgt;
 
                $maxlargarea = $areanova / $largarea;
                $maxaltarea = $areanova / $altarea;
 
                        if ($maxlargarea > $maxaltarea) {
                                $width = $maxaltarea*$numWdt;
                                $height = $maxaltarea*$numHgt;
                        } else {
                                $width = $maxlargarea*$numWdt;
                                $height = $maxlargarea*$numHgt;
                        };
 
                $nova = imagecreatetruecolor($width,$height);
                imagecopyresampled($nova, $img, 0,0,0,0,$width,$height,$numWdt,$numHgt);
                imagejpeg($nova, "", 100);
                imagedestroy($nova);
        };
?>

O Thumb é chamado pelo seguinte comando:
Onde $ids define o codigo da galeria e $img define qual imagem deve ser exibida e gerada a miniatura atraves dos paramentros de largura e altrua (w e h).
<img src="thumb_n.php?src=admin/fotos/<? echo $ids; ?>/<?=$img; ?>&w=133&h=133"/>

Bem agora segue a configuração do meu arquivo .htaccess
Sendo que o arquivo fica na pasta raiz do site, para as demais pastas que precisam ser manipuladas pelo usuario existe um .htaccess independente e está funcionando normalmente.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(gif|jpg|png|css|js|swf)$ index.php

Bem após a URL ser reescrita eu faço uma manipulacao atraves de uma funcao que fiz para capturar a url e definir quais acoes minha index vai executar e assim poder exibir a pagina que foi solicitada pelo visitante. Segue abaixo o codigo:
<?
function pagina($geturl){
        if ($geturl[1] == 'home') {
            include ("home.php");
        }
        if ($geturl[1] == 'conteudo') {
            $c = $geturl[2];
            include ("conteudo.php");
        }
        if ($geturl[1] == 'contato') {
                include ("contato.php");
        }
        if ($geturl[1] == 'galerias') {
                include ("galerias.php");
        }
        if ($geturl[1] == 'videos') {
                if($geturl[2] == 'video'){
                        $v = $geturl[3];
                        include ("ver_video.php");
                }else{
                        include ("videos.php");
                }
                
        }
        if ($geturl[1] == 'noticias') {
                include ("noticias.php");
        }
        if ($geturl[1] == 'noticia') {
                $n = $geturl[2];
                include ("noticia.php");
        }
        if ($geturl[1] == 'artigos') {
                include ("artigos.php");
        }
        if ($geturl[1] == 'artigo') {
                $a = $geturl[2];
                include ("artigo.php");
        }
        if ($geturl[1] == 'categoria') {
                $c = $geturl[2];
                $scc = $geturl[3];
                include ("categoria.php");
        }
}
?>      

Esta funcao é chamada pelo comando abaixo:
<?=pagina(explode('/', $_SERVER['REQUEST_URI']));?>

Bem basicamente é isso, o grande problema está ao exibir as imagens em miniatura, a "principio" o restante está funcional.
A razão de nao passar as variaveis juntamente com a reescrita da url é que o servidor em que o site se encontra não aceita esta operação, não sei por qual motivo.

Preciso muito de ajuda, espero que tenha sido claro na explicacao do que está ocorrendo.
Agradeço antecipadamente pelo apoio de todos.
Grato!

Ninguem?

#2 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 07/01/2010, 18:38

nao seria assim nao?:

[codebox]
<?
$pagina = (explode('/', $_SERVER['REQUEST_URI']));
?>
[/codebox]

#3 mbchaves

mbchaves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 08/01/2010, 10:36

nao seria assim nao?:

<?$pagina = (explode('/', $_SERVER['REQUEST_URI']));?>


Bem na realidade na linha onde faço a refencia a pagina estou chamando uma função que contem uma série de testes, afim de identificar qual pagina devo exibir e quais paramentros devem ser executados durante a exibição.

#4 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 08/01/2010, 11:57

seguinte.. em urlamigaveis os caminho tem que ser abusotulo

digamos que vc esta assim

site.com.br/noticias/1243/alguma-coias-de-mais.html

pra imagems em html vc tem que colocar o caminho completo
tipo
site.com.br/imagens/imgem.jpg

ja no php vc trabalha com a refencia do arquivo ou seja


se vc esta neste link
site.com.br/noticias/1243/alguma-coias-de-mais.html

e o htacces esta mandando pra raiz index.php pot exemplo

vc vai trablahar dentro do php como se estvesse na raiz

ex

$var = "imagens/imgem.jpg";
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>




1 user(s) are reading this topic

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

IPB Skin By Virteq