Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, desculpa. Não sei como explicar e nem pesquisar no google, acredito que seja coisa simples. Mas não achei nada
Vamos lá.
Os usuários em meu site cadastram seus clientes por exemplo.
Cada cliente cadastrado tem um chava automatica na base de dados e quando o usuário abre um determinado cliente dele na url fica assim:
www.meusite.com.br/?cliente=1
até ai tudo bem, mas eu não queria que um usuário qualquer ficasse tentando ver outros cientes trocando apenas os códigos da url. Por isso eu queria que a url aparecesse assim
www.meusite.com.br/?cliente=tdsdy1dsh9dskfs563267dsbdyw
Exemplo apenas. Como eu gero estes códigos?
Estes códigos já estão na base de dados?
Ou tenho de encriptar e desincriptar no códigos do site mesmo?
Desculpa a explicação enorme, é que não sei explicar de outra forma
base64_encode é o mais fácil. Eu uso bastante. Claro que, por ser reversível, o cara que manjar um pouco descobre o ID, mas pra um cliente ou outro funciona bem.
obrigado galera. Vlw mesmo
Use um hash reversível ou base64
https://raw.githubusercontent.com/sagargp/coolsitebro/master/alphaID.php
<?php
/**
* Translates a number to a short alhanumeric version
*
* Translated any number up to 9007199254740992
* to a shorter version in letters e.g.:
* 9007199254740989 --> PpQXn7COf
*
* specifiying the second argument true, it will
* translate back e.g.:
* PpQXn7COf --> 9007199254740989
*
* this function is based on any2dec && dec2any by
* fragmer[at]mail[dot]ru
* see: http://nl3.php.net/manual/en/function.base-convert.php#52450
*
* If you want the alphaID to be at least 3 letter long, use the
* $pad_up = 3 argument
*
* In most cases this is better than totally random ID generators
* because this can easily avoid duplicate ID's.
* For example if you correlate the alpha ID to an auto incrementing ID
* in your database, you're done.
*
* The reverse is done because it makes it slightly more cryptic,
* but it also makes it easier to spread lots of IDs in different
* directories on your filesystem. Example:
{
nota: é necessário possuir a lib bcmath para usar a função alphaID.
Em ambiente unix, a instalação padrão do php não possui o bcmath. Para resolver, instale-o.