Carrinho de compras com url amigaveis [RESOLVIDO]

1. Carrinho de compras com url amigaveis [RESOLVIDO]

ROGERIO SILVA
rogeriossilva1

(usa Outra)

Enviado em 07/03/2013 - 21:06h

Alguem pode me ajudar com o carrinho de compras com url amigaveis

Meu problema é na hora de fazer a verificação no carrinho.

Desconsidere na escrita o .php é para eu citar que é um arquivo, mas a extensão não passa na URL.

Também não é uma loja virtual cheia de produtos de tanta coisa assim, mas seria legal fazer tudo direito.

Ex.:

Supondo na página de produtos.php eu listo os produtos.

Então é www.meusite.com.br/produtos.php

Lá eu escolho os produtos e adiciono no carrinho.

Então passa para o carrinho.php

www.site.com.br/carrinho.php/(produto) camiseta / (id) 3


Como tratar a SESSION no carrinho e poder continuar comprando e incluir mais produtos isso em URL AMIGAVEIS.

e não no modo antigo wwww.site.com.br/carrinho?acao=add&id=3

O
if(isset($_GET['acao']){
// e a continuação do código não funciona.
}




Obrigado.




  


2. Re: Carrinho de compras com url amigaveis [RESOLVIDO]

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 08/03/2013 - 01:41h

rogeriossilva1 há alguns passos para seguir até o resultado esperado
1 - mod_rewrite ativo no seu php
2 - arquivo .htaccess criado e seu conteúdo informando que utilizará o mod_rewrite e sua regra (ex: Todas as requisições vindas via url serão encaminhadas à nome_do_arquivo.php: algo +- assim


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cod=$1
</IfModule>



3 - não sei se está utilizando algum framework (o que eu recomendo fortemente) mas vou encarar como se estivesse criando tudo na mão. Basicamente criando na mão você deve tratar toda a url de seu sistema. Encaramos que o comprador esteja em http://meusite.com/carrinho/camiseta/15, você deverá dar um explode em toda essa url utilizando como caracter divisório a barra (/). Feito isso voce vai ter algo assim:

$url = $_SESSION['REQUEST_URI'];
$url = explode('/',$url);
// conteudo de $url array('0' => '', '1' => 'meusite.com.br', '2' => 'carrinho', '3' => 'camiseta', '4' => '15');


Após isto normalmente quando não é utilizado framework deve ser realizados os includes dos arquivos necessários (sugiro para este caso a partir do trecho da url 'carrinho' voce incluir o arquivo php que tratará o carrinho (ex: if( $url[2] == 'carrinho' ) { include_once 'nome-do-arquivo.php'; })). O restante normalmente encaramos como parâmetros, neste caso 'camiseta' e '15' que também deverão ser tratados ($url[3] e $url[4] respectivamente).

Seguindo esses passos torna-se a possibilidade de estando tudo correto que seu site esteja com urls amigaveis. Detalhe que aqui expliquei somente a parte do carrinho, o mesmo deve ser feito com todas as páginas do site.

Com relação à sessão não há mistérios, ao adicionar um novo item basta

$_SESSION['carrinho']['itens'][] = array('nome' => 'nome-do-produto', 'valor' => '123');

// o [] após itens serve para o auto incremento, iniciando em zero (['itens'][0].... o próximo será // ['itens'][1] e assim por diante)



espero ter contribuido


3. Re: Carrinho de compras com url amigaveis [RESOLVIDO]

ROGERIO SILVA
rogeriossilva1

(usa Outra)

Enviado em 08/03/2013 - 02:54h

Muito obrigado.

Percebi que criar um carrinho de compras com URL amigavel é algo sem necessidade.

A necessidade é tê-la na visualização do produto.

Na verdade estava com problemas para identificar a url[1] como um GET mas passei um '&' após o carrinho.php e pude obter o GET novamente.

Como ficou www.site.com.br/carrinho/&produto=nome-do-produto&id=id-do-produto

Sem esse '&' apos a / do carrinho ele não era "enxergado" como um GET "aparte" e sim como de toda url e eu teria que fazer este array como vc mencionou.

Dai em diante passei a conseguir verificar o get 'produto' e 'id' e fazer toda a validação dele.

Mas de qualquer forma, eu agradeço pela sua contribuição e peço desculpas por te fazer perder tempo.


4. Re: Carrinho de compras com url amigaveis [RESOLVIDO]

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 08/03/2013 - 19:34h

Na verdade não foi perda de tempo. Eu tive de revisar o funcionamento de url amigável (o que na verdade já até havia esquecido pelo fato de utilizar framework e o mesmo já fazer este trabalho por mim) ao mesmo tempo que como este tópico foi marcado como resolvido serve de material de consulta para outros membros que possam ter esta mesma dúvida.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts