Ainda sobre a promoção no site que não sabe fazer validação no servidor

[update] Comentários fechados pra não dar mais problema e fechar, de uma vez por todas, a discussão. Acho que quem tinha algo pra falar, já falou.

[update] O site que não sabe fazer validação no servidor ficou irritadinho e me mandou um email malcriado e tal. Por isso este texto foi editado e os comentários sobre ele, que citavam o nome do site que não sabe fazer validação no servidor foram excluídos. O pior é que eu vou continuar sendo cliente do site que não sabe fazer validação no servidor, porque os preços deles costumam ser bons…capitalismo é isso aí. Ah, e os livros chegaram aqui sem problema algum, pra quem estiver curioso.

Se você não leu o post de ontem, leia, e me diga: o que eu fiz de ilegal ali?

Deixa eu explicar, ponto a ponto, o que eu fiz:

  1. Gostei da promoção e resolvi aproveitar
  2. Um dos livros que eu queria comprar, estava com o checkbox desabilitado (sem nenhuma informação do porquê disso)
  3. Chequei se o livro estava disponível. Estava.
  4. Usei um código JavaScript para habilitar o checkbox e poder comprar o livro
  5. Fui ao carrinho e vi que o livro que estava saindo de graça era muito barato
  6. Retirei este livro da lista e coloquei outro, mais caro, que saiu de graça
  7. Adicionei o livro mais barato pelo método tradicional

Pensem bem. Se eu tivesse usado um código JavaScript para, por exemplo, levar um livro a mais de graça ou ganhar um desconto a mais ou qualquer outra coisa que trouxesse alguma vantagem financeira para mim, a revelia do site que não sabe fazer validação no servidor, bem, aí sim eu estaria fazendo algo ilegal.

Porém, o que eu fiz com esse código foi vantajoso primeiramente para o site que não sabe fazer validação no servidor, que vendeu um livro a mais. Acompanhem meu raciocínio. Se eu tivesse adicionado o tal livro da maneira usual, buscando e colocando no carrinho, o efeito seria exatamente o mesmo.

Quanto a outra parte do meu “hack“, esta não tem nem o que se discutir. Simplesmente eu percebi que o site que não sabe fazer validação no servidor dá o desconto pela ordem de adição no carrinho. Ou seja, se um livro já está marcado como brinde e eu adiciono um outro, também participante da promoção e mais barato do que aquele, o desconto não é reavaliado.

Entre no site que não sabe fazer validação no servidor, não na página de promoção, mas na página inicial. Faça uma busca por quatro livros da coleção que estava na promoção, adicione os três mais caros primeiro e o mais barato depois. Não vai ser o mais barato dos quatro que vai sair de graça e sim o mais barato dos três primeiros que você adicionou.

O que vocês esperavam de mim, sinceramente? Que eu fizesse o inverso, só pra gastar mais dinheiro? Acho que aí eu estaria sendo idiota. Se você disser que vai me dar um presente de 50 pratas — presente esse que eu gosto e quero — não sou eu que vou dizer, “olha, por que você não me dá aquele outro presente, de 20 pratas? Sou bonzinho, cara”…

Se tem algo ilícito em se aceitar um presente mais caro ao invés de um mais barato, bem, por favor, me processem.

Em tempo, façamos uma conta simples. Vejamos os livros que eu compraria, caso não tivesse feito o que fiz:

  • Declínio e queda do Império Romano – R$ 28,50
  • O Cavaleiro Inexistente – R$ 14,50
  • Uma História da Guerra – R$ 27,50

Total: R$ 70,50. Menos o mais barato, que sairia de graça, R$ 56,00.

Acabei comprando mais um livro, Incidente em Antares (que agora sim está indisponível), custando R$ 25,00. Este saiu de graça porque mudei a ordem de adição dos itens no carrinho. Ou seja, paguei R$ 70,50 ao todo.

Ou a minha matemática está completamente desatualizada — vai ver já existe uma matemática 2.0 e eu não sei — ou o site que não sabe fazer validação no servidor levou, nessa brincadeira, R$14,50 a mais. O que eu ganhei? Dois posts nesse blog. ;)

Leia também:

16 Comentários sobre “Ainda sobre a promoção no site que não sabe fazer validação no servidor”

Faça um comentário

Acho que o buraco aí é mais embaixo (ô chavão!). A questão é que o HTML é seu, o servidor deu para você e você faz o que quiser com ele. Se usasse Opera, não precisaria nem de javascript ou Firebug para fazer isso. Só que muitos uebidesaiguiners ainda acham que eles é que devem ter o controle sobre o HTML e tudo o que vai para o cliente, daí surgem as aberrações como o bloqueio do clique direito do mouse e de seleção de texto, ou essas “validações” toscas que não passam pelo servidor.


#2 | Tarcísio Sassara

Wow.

Que rolo!

Confesso que rolei no chão uma ou duas vezes ao ler os comentários do post anterior… ai ai…

Uma coisa é certa. Nem foi crime.


#3 | Igor Escobar

Nada do que você fez é errado, você fez um processo normal de compra, exceto, o artifício que você utilizou para comprar um livro que não estava habilitado por algum motivo.


hehe, bom garoto.

Cade aqueles flame throwers mesmo? ;)


huhuhhuuhu, e todos viveram felizes para sempre :D
bom, Sr. Torres mais q todos uuhhuu,
e quando à, “o html é nosso”, bom, é nosso mesmo, eles que se virem no código lá pra fazer o negócio direito, assim como disse ontem


oi bruno torres. tudo fiche? o meu nome é joão nuno. na verdade, estou a insentivar as pessoas que navegam neste site, que comentem o meu blog. pois estou a fazer publicidade para receber comentários. e gostaria que comentasses o meu blog. abraços.


#7 | Paulo

Tá. Mais que o título do post anterior tem um “Q” de querer ser bem googleado, isso tem!

hahah…

abração Bruno. Mandou bem


#8 | Willian Martins

Bem lembrado nando
Não vi naada de errado nisso. Vamos ver no que vai dar essa história.
Bom… pelo menos aprendi uma lição com isso tudo. NUNCA deixe coisas importantes desse tipo no lado cliente. Valide TUDO no lado do servidor


#9 | Mark de Souza Costa

Tá ai uma coisa que viajo quando o pessoal fala “temos que validar no lado do servidor”. Isso não é óbvio?

Eu não sei como a maioria desenvolve as classes de negócios, classes de acesso a dados, classes de controles e a base de dados (utilizando POO com modelo MVC e base de dados relacionais), porque quando um dado é recebido por uma interface, a interface somente faz um tratamento básico, isso não para influenciar a aplicação, mas sim a interação do usuário com a aplicação.

Por exemplo, digamos que um usuário comum deixe de fornecer um dado obrigatório num formulário. Podemos tratar isso facilmente no lado cliente, sem a necessidade de enviar os dados para o servidor para somente depois o usuário receber uma resposta de que aquele campo é obrigatório. Bom, se o usuário tentar burlar isso, no momento em que os dados forem enviados para o servidor e aquele dado obrigatório estiver em branco isso gera (ou pelo menos deveria) uma inconsistência lógica, tanto nas classes quanto na base de dados (se chegar a base claro).

Isso é claramente um erro de modelagem lógica no sistema. Aliás, não sei se cabe na temática do Blog do Bruno Torres, mas se sim, ele poderia discutir um pouco sobre modelos de programação na Web, cuidados no tratamento de dados (etc..), porque isso quase nunca é discutido em blogs deste tipo.

Saudações,

Mark Costa


Tanto moralista fazendo chover em um copo d’água. Se ele so alterou a ordem dos produtos foi apenas esperto.

Quando vamos em uma loja comprar podemos fazer quase a mesma coisa.

Tem gente que sempre pede desconto e quase sempre paga menos, já outros …


Ainda estamos esperando a resposta… Mark.. você recebeu os 6 mil ja ? ;D


Mark,

:x . Socorro. Cara, fique na sua você, que esta fazendo uma tempestade em um copo d’água por um mero feito simples do Bruno.Não gosta? Vai embora meu, ninguem precisa de você aqui. Não preciso ter argumentos porque todo mundo ja falou o necessário, queria apenas descontrair o tópico.

E outra, pra sua informação eu não desenvolvo “sites”, e sim projetos para internet, faço parte da empresa mais conceituada do meu estado e futuramente no brasil. E detalhe pelo contrário que você falou, eu cobro exatamente o valor adequado de acordo com a necessidade de um projeto.

Bom. não vou entrar mais em detalhes até pq este tópico não precisa dessas cirras inúteis. Em momento algum eu quis prejudicar você Mark, apenas descontrair a tensão que se encontrava o tópico/assunto.


Por favor, vamos acalmar os ânimos, senão vou ser obrigado a apagar comentários.
O Mark já fez a crítica dele, expôs o que pensa. O André já discordou dele e ponto final. Paremos por aqui.


ahahahaha, parabens ae Bruno, não fez nada de ilegal não

esse post foi bom pq reencontrei meu amigo Caio Proiete

ahahahaha


Bruno,

O protesto fica mais legal se você cancelar sua afiliação no site, retirar todos os links de todos os posts ou colocar um rel=’nofollow’ em todos.

Quando se está certo, se está certo. Publica o e-mail malcriado e sua resposta pública. Crie polêmica. É assim que funciona hehehe.

Abraço


Ainda essa historia ??
Esses caras desse site ao inves de assumirem o erro, te mandam um email malcriado ??
E bando de programadorzinho safado hein ??
Ta na hora de pagar uns cursos a mais pra eles nao acham ??
heheheh
Abs


Comentários fechados para este post.


Veja as estatísticas