Jump to content


Photo

Limitar Cadastro Por Usuario .


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

#1 gersonab

gersonab

    Normal

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

Posted 26/08/2008, 14:51

Tenho um banco de dados com duas tabelas , que são :

Os itens.

`id` int(11) NOT NULL auto_increment,
  `carro` text NOT NULL,
  `ano` text NOT NULL,
  `valor` text NOT NULL,
  `cor` text NOT NULL,
  `img` varchar(50) NOT NULL default '',
  `age` text NOT NULL,
  `tel` varchar(20) NOT NULL default '',
  `endereco` text NOT NULL,
  `marca` text NOT NULL,
  `descr` varchar(200) NOT NULL default '',
  PRIMARY KEY  (`id`)


Usuários.

usuario_id int(25) NOT NULL auto_increment,   
	nome varchar(25) NOT NULL default '',   
	sobrenome varchar(25) NOT NULL default '',   
	email varchar(25) NOT NULL default '',   
	usuario varchar(25) NOT NULL default '',   
	senha varchar(255) NOT NULL default '',   
	info text NOT NULL,   
	nivel_usuario enum('0','1','2') NOT NULL default '0',   
	data_cadastro datetime NOT NULL default '0000-00-00 00:00:00',   
	data_ultimo_login datetime NOT NULL default '0000-00-00 00:00:00',   
	ativado enum('0','1') NOT NULL default '0',   
	PRIMARY KEY  (usuario_id)

Este de usuários conforme pos -> http://forum.wmonlin...o...182245&st=0 do nosso amigo Crab.

Bom , o que eu preciso é limitar o número de cadastro por usuario, ja procurei e o pouco de neuronio que sobrou ta em conflito.

seria como fulano1 pode ter 10 cadastros ; fulano2 = 20 ; fulano3 =30.

Espero que tenham entendido, desde ja agradeço a ajuda prestada.

#2 rafael_tst

rafael_tst

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 26/08/2008, 15:40

Cara vou tentar te ajudar...

Não sei ao certo o que vc vai fazer, mais farei de conta que vc ta fazendo um site de anúncio de carros, por tanto nessa estrutura que vc citou eu criaria uma tabela chamada planos:

plano_id // id do plano
plano_nome // nome do plano para identificar
plano_limite. // limite de anúncios, que os usuários deste plano podem fazer

na tabela do anuncio do carro vc colaca um campo id_usuario, para saber de qual usuário pertence o anúncio.
na tabela do usuário eu criaria um campo para o id do plano dele, por ex:

Fulano se cadastrou e o plano dele é o "simples" que da direito a 10 anúncios, agora é fácil, antes do camarada tentar inserir um anúncio vc conta quantos ele já fez, se o número for menor que o do limite do plano dele, vc deixa ele cadastrar, caso contrário vc redireciona ele, ou emite um alerta....

Bem fantasiei tudo isso pra te passar a lógica, espero ter ajudado...

Edição feita por: rafael_tst, 26/08/2008, 15:42.


#3 hooligans

hooligans

    Normal

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

Posted 26/08/2008, 15:53

é oq eu ia falar entaum fica oq o amigo falou acima :D

#4 Aloha

Aloha

    Turista

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

Posted 26/08/2008, 17:01

gersonab, você quer definir quantos cadastros cada usuário pode ter?
O esquema com os "planos" do rafael_tst é bem interesante...
Mas se for uma coisa mais básica mesmo, crie um campo chamado user_iten na tabela dos intens, e salve neste campo o ID do usuário que está anunciando este iten....

Aí na tabela dos usuários crie um campo chamado max_itens.
Aí em seu gerenciador dos usuários, crie lá a opção de editar este campo...
E não esqueça de no cadastro de usuários já preencher o campo com um valor inicial para o número de intes que ele pode cadastrar....

Agora na página de cadastrar, faça o seguinte, conte quantos itens o cara já tem, ex:
$verifica_itens = mysql_query("SELECT `id` FROM `itens` WHERE user_iten = '$VARIAVEL_COM_ID_DO_USUARIO';");
$contando = mysql_num_rows($verifica_itens);
Pronto, agora você já tem o número de itens que o cara tem cadastrado...
Agora com um IF, você compara se $contando é menor ou iqual o tanto que o cara pode cadastrar, se for menor executa tooodo o script de cadastro, se não for, "echo('Exedeu o limite de cadastros'); exit;" e seja feliz :D



Abraços.

#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 26/08/2008, 17:07

é oq eu ia falar entaum fica oq o amigo falou acima :D



Isso é considerado flood.
Cuidado!

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#6 gersonab

gersonab

    Normal

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

Posted 26/09/2008, 18:18

Galera, desculpa reviver este tópico, é que eu estava resolvendo outro problema, dando continuidade e por partes , vamos lá ....

fiz da seguinte forma :

$link = mysql_connect($dbhost, $dbuser, $dbpass);	
$verifica_itens = mysql_query("SELECT * FROM $dbvin WHERE agencia='$agencia'", $link);
$contando = mysql_num_rows($verifica_itens);
	if ( $contando <= 10 ) {
	$cadastro == true;
	} else {
	$cadastro == false;
	echo "<script language='JavaScript'> alert('Exedeu o numero de cadastro.'); </script>";
	echo "<script>window.location='controle.php'</script>";
	}

Tenho o alerta para qualquer situação e o cadastro também, o mesmo não esta sendo bloqueado.

#7 gersonab

gersonab

    Normal

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

Posted 04/10/2008, 10:44

Bom dia.
a situação é a seguinte:
1 - Cadastro pelo cliente , fazer o cadastro somente da sua agencia = OK
2 - Editar o item cadastrado, editar somente da sua agencia = OK
3 - Deletar o item, deletar somente da sua agencia = OK
4 - Visualizar os itens de sua agencia = NOK

$link = mysql_connect($dbhost, $dbuser, $dbpass);
   $db = mysql_select_db($dbname); 

   $sql = "SELECT $dbvin.codigo AS codigo, $dbvin.cadastro AS cadastro, $dbvin.anomodelo AS anomodelo, $dbvin.marca AS marca, $dbvin.model AS model, $dbvin.condicao AS condicao, $dbvin.preco AS preco, $dbvin.agencia AS agencia, $dbusu.agencia AS agencia FROM $dbvin INNER JOIN $dbusu ON $dbvin.agencia=$dbusu.agencia";

   $exec = mysql_query($sql, $link) or die(mysql_error()); 
   $total = mysql_num_rows($exec); 
   
   $n = 1;

   while($data = mysql_fetch_array($exec, MYSQL_ASSOC )) {

	  if(!($n % 2)) { $bg = "class='fill_light'"; } else { $bg = ''; }

	  echo '<tr $bg>';
		 echo '<td class="text">'.$data["cadastro"].'</td>';
		 echo '<td class="text" align="center">'.$data["anomodelo"].'</td>';
		 echo '<td class="text">'.$data["marca"].'</td>';
		 echo '<td class="text">'.$data["model"].'</td>';
		 echo '<td class="text" align="center">'.$data["condicao"].'</td>';
		 echo '<td class="text" align="center">R$ '.$data["preco"].'</td>';
		 echo '<td class="text" align="center">'.$data["agencia"].'</td>';
		 echo '<td class="text" align="center"><a class="link" href="pre_visualizar2.php?codigo='.$data["codigo"].'">Alterar</a></td>';
	  echo '</tr>';

Se eu usar assim === $dbvin.agencia=$dbusu.agencia => visualizo todas, logo poderia alterar qualquer uma, o que estaria errado.

Se eu usar assim ( que é o certo ) === $dbvin.agencia='$dbusu.agencia' => não visualizo nada.
O q estaria errado ?




1 user(s) are reading this topic

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

IPB Skin By Virteq