Jump to content


Photo

[resolvido] Gerar Um Numero Unico


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

#1 mofo

mofo

    12 Horas

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

Posted 23/06/2007, 21:50

teria como usar um numero unico , eu vou apenas utiliza-lo em 48 horas ?

#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 23/06/2007, 22:02

Não entendi muito bem, "gerar número unico" se vc vai usar somente por 48 horas então para que gerar um numero, use qualquer um já que é 'momentaneo' já que números unicos em geral são para a "vida toda" em sumula são para não misturar ... sem contar que do jeito que vc fala só vc vai usar então um único numero serve. :assobio:

De qualquer forma tente aliar algumas funções como "time() / rand() / md5()" com a "uniqid()" para gerar números unicos como visto do exemplo do manual veja:
http://www.php.net/m...tion.uniqid.php

#3 mofo

mofo

    12 Horas

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

Posted 23/06/2007, 22:11

estou com um problema, eu gero o numero randomico e guardo no cookie :

$code = rand(1, 99999999999999);
setcookie("codigo",$code,time()+172800);

mas quando vou resgatar o cookie ele pega outro numero , pq ?
estou resgatando da seguinte maneira :

$_COOKIE["codigo"]
ai quando resgato pega outro numero , pq ?

#4 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 23/06/2007, 22:32

Bem primeiramente digo que a função "rand()" não comporta essa quantidade de números 14, como o proprio manual do PHP diz, então se vc quiser de fato gerar 14 número é aconselhavel a trocar de função e usar "mt_rand()" ou fazer uma função propria ...

Quanto ao Cookie, acredito que o "problema" esteja na forma que esteja querendo pegar o valor, ou seja vc quer pegar o valor do cookie logo após cria-lo, pórem ao criar cookie que vc fizer agora os valores só ficará ativo na próxima vez que carregar a página, sendo assim os códigos não vão coicidir dai vc está se confundido, acredito que vc esteja fazendo algo assim:"

<?php
$code = rand(1, 99999999999999); // Gera o Código: 1234
setcookie("codigo",$code,time()+172800); // Grava o código: 1234

// Vai mostrar o código anterior (4321) e so mostrar o atual (1234) na próxima atualização
// Porém ai vc já vai ter gerado um novo código/cookie do jeito que esse código esta ... 
echo "Cookie Anterior" . $_COOKIE["codigo"] . "<br>"; 

echo "Código gerado agora:" . $code; // Código atual: 1234
?>

Acredito que seje isso...

#5 mofo

mofo

    12 Horas

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

Posted 23/06/2007, 22:36

esta acontecendo o seguinte, eu gero o cookie, exemplo : 225 ai quando eu vou resgatar o cookie é um outro numero exemplo : 589.
Caso eu gere um outro numero para o Cookie ele pega o numero que foi errado 589 soh que quando vou resgatar esse numero ele pega outro , e assim por diante !.

o que esta de errado ?

Edição feita por: mofo, 23/06/2007, 22:54.


#6 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 24/06/2007, 01:04

geralmente eu uso rand(0,time());
Gera um numero bem randomico que a probabilidade de se repetir é bem baixa.

Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);


Cookie só ficará valido para o novo valor no próximo reloading.

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#7 mofo

mofo

    12 Horas

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

Posted 24/06/2007, 12:28

RESOLVIDO !

depois de longas pesquisas descobri um metodo

$dad = mysql_fetch_array($aqped);

$codigo = $dad["CCLVEN"]; 

if(isset($_COOKIE[$codigo])) {

	echo "O produto não foi solicitado por você";	

}

esse codigo acima ele pega o valor do banco de dados guarda numa variavel e depois joga essa variavel dentro do cookie verificando se existe no cookie !

fonte : http://www.pontophp....p?act=ler&id=15

Edição feita por: mofo, 24/06/2007, 13:02.


#8 Renan Gonçalves

Renan Gonçalves

    Web Developer

  • Usuários
  • 771 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP
  • Interesses:Programar PHP, Java (e JSP), Javascript (com Ajax, claro), Ruby (on Rails) !

Posted 24/06/2007, 18:30

Para gerar um número único não aconselho que este seja randomico.
Porque, como a palavra mesmo diz, randomico é pego ao acaso, tendo possibilidade de ser repetido.

Para pegar um número realmente único você pode gerar um da seguinte forma:
<?php
$unique = sprintf('%d%s%d', time(), str_replace(array(' ', '.'), '', microtime()), rand(1111111, 9999999));
?>

Assim você combina muitos números em um só.


[]'s

Renan Gonçalves
renan.saddam@gmail.com
(WebSite / Gmail / orkut / Windows Live! Messenger
)

"Aquele que se define se limita."


#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/06/2007, 22:25

uniqid()

Não retorna número mas é a resposta mais adequada ao problema em si. ;-)

[]’s :DAté mais




1 user(s) are reading this topic

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

IPB Skin By Virteq