Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Miguel

Sistema de Cadastro com ID Aleatorio!

Recommended Posts

Olá!

Queria saber como faço para quando alguem se cadastrar no meu sistema o sistema gere um ID aleatorio!

--> rand (100, 999) ~ Ouvi fala desse codigo mas nao sei onde mete-lo :S para que em vez de tar a criar os users com id por ordem do 1, 2, 3, 4, 5 fosse aleatorio de 100 a 999! Ex: 239, 736, 154, 234, 533, 912 e etc... ;)

 

cadastro.php

<?php

include "configuracao/conn.php";

 

$acao = $_GET["acao"];

 

if ($acao == "cadastro") {

 

// Recebendo valores

$nome = $_POST["nome"];

$email = $_POST["email"];

$nascimento = $_POST["nascimento"];

$telefone = $_POST["telefone"];

$info = $_POST["info"];

 

// Nome

if ($nome == "") {

$error[0] = "Preencha o campo nome";

}

 

// Email

if (!eregi("^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$", $email)) {

$error[1] = "Preencha com um email válido";

}

 

// Data de nascimento

if ($nascimento == "") {

$error[2] = "Preencha a data de nascimento";

} elseif (!eregi("^[0-9]{2}/[0-9]{2}/[0-9]{4}$", $nascimento)) {

$error[2] = "Data de nascimento em formato inválido";

}

 

// Telefone

if ($telefone == "") {

$error[3] = "Preencha o campo telefone";

} elseif (!eregi("^[0-9]{2} [0-9]{4}-[0-9]{4}$", $telefone)) {

$error[3] = "Telefone em formato inválido";

}

 

// Caso não haja nenhum erro

if (sizeof($error) == 0) {

 

$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info')");

 

if ($sql) {

echo "<script language='javascript'>alert('Cadastro efetuado com sucesso')</script>";

} else {

echo "<script language='javascript'>alert('Não foi possivel realizar o cadastro no momento')</script>";

}

 

}

 

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<html xmlns="http://www.w3.org/1999/xhtml ">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Cadastro</title>

<link href="estilo.css" rel="stylesheet" type="text/css" />

</head>

 

<body>

<div id="principal">

<h1>Cadastro de Clientes</h1>

<?php

// Caso haja erros

if (sizeof($error) != 0) {

// Exibe os erros

foreach ($error as $err) {

echo "<font color='red'><b>" .$err . "</b></font><br />";

}

}

?>

<form method="post" action="cadastro.php?acao=cadastro">

<p><strong>Nome:</strong><br /><input name="nome" type="text" value="<?php if (sizeof($error) != 0) { echo $nome; } ?>" /></p>

<p><strong>Email:</strong><br /><input name="email" type="text" value="<?php if (sizeof($error) != 0) { echo $email; } ?>" /></p>

<p><strong>Data de Nascimento:</strong><br /><input name="nascimento" type="text" value="<?php if (sizeof($error) != 0) { echo $nascimento; } ?>" /> <em>(Ex: dd/mm/aaaa) </em></p>

<p><strong>Telefone:</strong><br /><input name="telefone" type="text" value="<?php if (sizeof($error) != 0) { echo $telefone; } ?>" /> <em>(Ex: 14 3210-1234)</em></p>

<p><strong>Informações Adicionais:</strong><br /><textarea name="info" cols="30" rows="5"><?php if (sizeof($error) != 0) { echo $info; } ?></textarea></p>

<p><input type="submit" value="Cadastrar" /></p>

</form>

</div>

</body>

</html>

_______________________________________

 

configuracao/conn.php

<?php

$host = "localhost";

$usuario = "USER";

$senha = "SENHA";

$banco = "DB";

 

$conn = mysql_connect($host, $usuario, $senha) or die ("Servidor não responde");

$db = mysql_select_db($banco, $conn) or die ("Não foi possível realizar a conexão com o Banco de Dados");

?>

Espero que alguem me possa ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse id será usado onde? Se for no BD esqueça essa idéia, use a chave primária e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim na DB! Chave Primaria ? Como assim? Nao percebo lá muito de MySQL :S

 

Então sem ser a DB, se eu criar uma nova tabela na estrutura la na db, em que la cada usuario tenha um numero aleatorio de 100 a 999 ao registrar?

Sei adicionar a tabela, mas nao sei como meto la nas paginas sou pessimo em programação! :S

Na Tabela users_cubo (onde tem os usuarios) tem na Estrutura: id, nome, email, nascimento, telefone, info, e se eu adicionar: cuboid -> init(3) dps so preciso que ao cadastrar o usuario gere um numero aleatorio de 100 a 999 e fica la na tabela! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq vc tem essa necessidade de criar um sistema de cadastro com id aleatorio ? qual fim desta aplicação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que eu queria fazer um sistema chamado Cubo Premiado (cada cubo contem um numero de 3 digitos, tipo de sorteio, em que os usuários se registram no sistema, depois é feito o sorteio com 10 vencedores, e cada um dos numeros que sair, vai ser um vencedor... E depois iremos ver os vencedores pela db, la vai ter os numeros dos Cubos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq vc tem essa necessidade de criar um sistema de cadastro com id aleatorio ? qual fim desta aplicação?

 

Concordo e pergunto o mesmo pois não vejo motivo para tal, se houver informe.

 

Conforme ja fora sugerido o ideal é usar autoincremento (chave primaria / primary key) como no campo id de sua tabela.

A maioria dos SGDBs tem esta opção bem visível na página de estrutura das tabelas.

 

Com este atributo definido você não precisará enviar o id durante o as inserções no db, ex mysql:

// ao invés de:
$sql               = 'INSERT INTO tabela ( id, nome ) VALUES ( '.$idRadomico.', "'.$_POST['nome'].'" )';
// você usa:
$sql               = 'INSERT INTO tabela ( nome ) VALUES ( "'.$_POST['nome'].'" )'; 

O próprio db vai gerar e por um valor único para o campo id.

 

Abraço.

 

 

EDIT:

---------------------

Se precisar pegar o id que foi gerado automaticamente, veja: mysql_insert_id().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é totalmente inviável. O ID o próprio nome diz: identification - identificação. Não passa disso.

 

Já que você quer um sorteio, simplesmente pegue o id registrado do usuário e exibe para ele. Poderá então ser de 1 digito, 2 ou mais.

 

Colega, use auto increment que ficará tudo certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi muito bem o que vc disse, vc leu a resposta anterior?

É que eu queria fazer um sistema chamado Cubo Premiado (cada cubo contem um numero de 3 digitos, tipo de sorteio, em que os usuários se registram no sistema, depois é feito o sorteio com 10 vencedores, e cada um dos numeros que sair, vai ser um vencedor... E depois iremos ver os vencedores pela db, la vai ter os numeros dos Cubos!

 

Mas eu queria de 100 a 999...

 

se eu criar uma nova tabela na estrutura la na db, em que la cada usuario tenha um numero aleatorio de 100 a 999 ao registrar?

Sei adicionar a tabela, mas nao sei como meto la nas paginas sou pessimo em programação! :S

Na Tabela users_cubo (onde tem os usuarios) tem na Estrutura: id, nome, email, nascimento, telefone, info, e se eu adicionar: cuboid -> init(3) dps so preciso que ao cadastrar o usuario gere um numero aleatorio de 100 a 999 e fica la na tabela!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm, neste caso não é um id para a tabela e sim um número randômico gerado para sorteio, assim ok.

 

Vamso lá, sua idéia é válida, adicione o campo cuboId na tabela e no evento do cadastro por usar isto para gerar o valor dele:

$idRandomico = rand(100, 999);

Agora lembre-se que pode haver duplicidade então você deverá criar uma rotina para verificar se o número já não foi atribuído a outro usuário, mas ai é outra história. Faça isto e continuamos após, se surgirem dúvidas, fique a vontade pra postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.