Ir para conteúdo

POWERED BY:

Arquivado

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

Anna Lethícia Dobginski

Como exibir a opção editar só para o usuário que cadastrou?

Recommended Posts

Estou com uma dúvida que está me tirando o sono!

 

Minha dúvida é com relação à edição "UPDATE"...

 

Consegui desenvolver uma página para edição dos dados do usuário utilizando $_SESSION e não $_GET, pois assim evita que um usuário edite dados do outro!

 

Já que a página usuario-editar.php é restrita ao usuário logado, se usarmos $_GET qualquer um poderia alterar o dado do outro, apenas mudando a ID na URL, ou seja, se eu sou o usuário logado de ID n° 15 e a página de edição usa o $_GET "usuario-editar?ID=15" eu poderia mudar o 15 para qualquer outro número e assim editar dados de outros usuários, por isso o uso de $_SESSION e não $_GET!

 

O problema é com relação a página "comentario-editar.php"

 

Estou tentando fazer com que todos os usuários possam ver os comentários cadastrados, mas que os links editar e excluir só apareçam para o usuário que cadastrou!

 

Pegando como exemplo um BLOG, qualquer usuário logado pode fazer um comentário e depois editá-lo ou mesmo excluí-lo, pois bem, não seria justo que eu possa editar e excluir um comentário publicado por outro usuário. Então para evitar que isso aconteça eu teria que criar uma função que exibe os links "editar e excluir" somente para o usuário responsável pela publicação do comentário!

 

Tentei de tudo quanto é forma buscar na internet algum exemplo, modelo, tutorial, dica, matéria, fórum, enfim, que abordasse esse assunto em PHP ou AJAX, pois estou estudando os dois! Mas não consegui achar nada. Se alguém puder me dar uma ajuda ou indicar um site onde eu posso encontrar essa informação, ficaria bastante agradecida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a raíz do problema envolve lógica de programação

 

tecnicamente você está fazendo certo, fazendo a autenticação utilizando SESSION.

 

agora basta criar as condicionais onde desejar e conforme as regras necessárias

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi que eu preciso criar uma função If... Else...

 

Ou seja,

 

LÓGICA

 

"Se usrEmail do comentário for igual a usrEmail da sessão

 

exibir links editar e excluir

 

Senão

 

exibir nada"

 

RECORDSET

 

$colname_rsDadosUsr = "-1";

if (isset($_SESSION['MM_Username'])) {

$colname_rsDadosUsr = $_SESSION['MM_Username'];

}

mysql_select_db($database_connDB, $connDB);

$query_rsDadosUsr = sprintf("SELECT * FROM usuarios WHERE usrEmail = %s", GetSQLValueString($colname_rsDadosUsr, "text"));

$rsDadosUsr = mysql_query($query_rsDadosUsr, $connDB) or die(mysql_error());

$row_rsDadosUsr = mysql_fetch_assoc($rsDadosUsr);

$totalRows_rsDadosUsr = mysql_num_rows($rsDadosUsr);

 

FUNÇÃO

 

<?php if ( isset( $_SESSION['MM_Username']) and !empty($_SESSION['MM_Username']) ) : ?>

<a href="comentario-editar.php?ID=<?php echo $row_rsComentarios['comID']; ?>">Editar</a> | <a href="comentario-excluir.php?intNotID=<?php echo $row_rsComentarios['comID']; ?>">Excluir</a>

<?php else : ?>

<?php endif; ?>

 

O problema é que essa função acima exibe o editar e excluir para qualquer usuário logado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

a tabela comentario vai ter um campo contendo o id_usuario de quem fez o comentario....

 

ai você faz

 

if($_SESSION['id_usuario']==id_usuario){

 

echo ("editar comentario");

 

}

 

se for mudar para outra pagina voce faz a verificacao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay!!!

 

Eu entendo a lógica da programação mas sou iniciante em PHP e não entendo ainda muito bem as funções...

 

Você diz que eu deveria colocar

 

if($_SESSION['id_usuario']==id_usuario){

 

echo ("editar comentario");

 

}

 

Onde???

 

Isso seria algo como selecionar um dado contido na SESSION do MM_Username e assim executar o comando desejado, ou criar um recordset SESSION com valores diferentes???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu andei dando uma olhada em outros fóruns e artigos na internet e estou achando que é melhor criar os códigos na raça do que usar as ferramentas do DREAMWEAVER CS3!!! O que eu percebi é quase ninguém usa as ferramentas do DREAMWEAVER para fazer PHP, o que me deixa em dúvida sobre a segurança do código gerado por ele...

 

É seguro usar as ferramentas do DREAMWEAVER CS3???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te dar uma dica: Não use dreamweaver CS3, principalmente se estiver fazendo um Fórum. Antes, o meu site era só com Dreamweaver. Não gostava de mecher no código. Mas, qualquer problema no código, você não arruma.

 

Mas, conheço bem as variáveis que o dreamweaver trabalha e vou te mandar o código.

 

// Você vai descobrir se o usuário está logado. Se estiver, a variável $nomedousuario vai ter um valor. Se não, ela não terá um valor.
if (isset($_SESSION['MM_Username'])) {
  $nomedousuario=$_SESSION['MM_Username'];
}

// Você agora, vai selecionar as informações sobre o usuário. 
$sql="select * from tabelausuarios where nomedeusuario=\"$nomedousuario\"";
$resultado=mysql_query($sql);
$linha_usuario=mysql_fetch_array($resultado,MYSQL_BOTH);


// Aqui, você seleciona os comentarios
$sql_comentarios="select * from comentarios"; // Vai selecionar todos os comentários. Sem excessão. Se quiser que selecione apenas alguns comentários, depois a gente corrige.
$resultado_comentarios=mysql_query($sql_comentarios);

// Para exibir os comentarios
while ($linha==mysql_fetch_array($resultado_comentarios,MYSQL_BOTH)) {
  echo $linha['campo_do_assunto'];
  echo "<br>";
  echo $linha['campo_da_mensagem'];

  // É AQUI QUE VEM A PARTE DE EDITAR
  if($linha_usuario['id']==$linha['id_da_mensagem']) {
	// Link para editar o comentário
	echo "<a href=\"comentario-editar.php\">Editar Comentário</a>";
	// Se você quiser um link para excluir o comentário, basta por ele no lugar dessa mensagem.
 }

}

É isso. Mas, aí, eu só pus para escrever o assunto e a mensagem. Se quiser escrever data e outras coisas, fica a seu critério.

Se der errado, poste aki

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal!!!

 

Agora sim entendi a lógica e as funções PHP, com essa dúvida eu acabei resolvendo várias outras que eu tinha!!!

 

Obrigada mesmo...

 

Só fica aqui a pergunta.

O sistema de sessão criado pelo Dreamweaver CS3 "$_SESSION['MM_Username']" é um sistema de sessão segura, ou precisa dar uma reforçada???

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe, sinceramente, eu nunca confiei nos sistemas gerados pelo Dreamweaver, eu os faço, pois assim você não fica com dúvidas, e nem com receio, mais depende de seu grau de conhecimento, se você souber melhorá-lo, pode sim.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lendo aqui, vou indagar essa questão só para complementar o assunto. Alaerte, quando você coloca:

 

if($linha_usuario['id']==$linha['id_da_mensagem'])

 

Essas coisas estão interligados diretamente na tabela né?... por exemplo, quando um cara posta um comentário, junto com esse comentário, e só mandar o php postar também o id do usuário (em outra coluna claro) na tabela de comentários né??? assim eles ficariam interligados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu fiz, e com a ajuda do pessoal aqui entendi, que;

 

Estrutura e lógica são fundamentais nesse caso, exemplo;

 

Se eu quero que um link ou um botão editar ou excluir [ou os 2] só apareça para o usuário que postou, eu devo pensar nisso na estrutura do banco de dados, ou seja, na tabela comentários eu devo criar um campo com o título usuarioID [ou qualquer outro nome que armazene o ID do usuário], depois disso devo criar uma sessão [sESSION] para ter todos os dados do usuário, tendo em vista que para postar um comentário o usuário deve estar logado, uma vez que eu tenho os dados da sessão eu seleciono o ID do usuário logado e faço a integração [interligação] do campo usuarioID da tabela comentários, com o campo usuarioID da tabela usuários e crio uma função [iF] para exibir o(s) link(s) botão(ões) editar ou excluir! O exemplo do "Mecho com php e Html" é exatamente como se deve aplicar, indiferente da organização do seu código PHP ou Banco de Dados, a lógica é a mesma!

 

Um exemplo dessa opção [Editar, Excluir só para o usuário que cadastrou] e o nosso famoso site de relacionamentos ORKUT, se você entrar numa página de recados de um amigo seu, a opção APAGAR "recado" só vai aparecer para os recados que você enviou a ele...

Compartilhar este post


Link para o post
Compartilhar em outros sites

OUTRA DÚVIDA

 

pegando então de exemplo o ORKUT, a dúvida é com relação a LIMITE...

 

No ORKUT nós vemos os limites X para fotos, no caso do nosso exemplo [COMENTÁRIOS], o que eu devo fazer se eu quiser limitar a uma quantidade X de comentários por usuário?

 

Digamos que eu quero que um usuário possa comentar apenas 10 vezes um mesmo !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra complicar mais um pouquinho...

 

Digamos que eu precise limitar essa quantidade de acordo com o nível do usuário, ou seja, o usuário de nível 1 pode postar 10 comentários por , o usuário de nível 2 pode postar 20 comentários por e o usuário de nível 3 "que seria digamos o admin " não tem limite, pode postar uma quantidade ilimitada de comentários por cada ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lendo aqui, vou indagar essa questão só para complementar o assunto. Alaerte, quando você coloca:

 

if($linha_usuario['id']==$linha['id_da_mensagem'])

 

Essas coisas estão interligados diretamente na tabela né?... por exemplo, quando um cara posta um comentário, junto com esse comentário, e só mandar o php postar também o id do usuário (em outra coluna claro) na tabela de comentários né??? assim eles ficariam interligados...

Sim, provém da base de dados, vai funcionar da seguinte forma, se o ID do usuário for igual ao ID da mensagem, executa a função...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anna Lethícia... pensando aqui... chequei a tal conclusão... seria um bem difícil fazer isso, isso olhando do meu ponto de vista de iniciante em php.... você teria que ter uma tabela com os usuários cadastrados e determinando o nível de acesso do mesmo... ate ai fácil, agora como você faria isso é meio complicado, eu estava pensando em um jogo de funções, que iriam pegar nessa tabela, o id do usuário e seu nível de acesso dele, e iriam jogar em outra tabela a o valor total de post que ele pode fazer por dia menos aqueles que ele já vez (matemática, aritmética e lógica de programação!).... quando o número chegasse a zero, a função retornaria com false e ele seria bloqueado para postar comentários... o carinha que tivesse acesso ilimitado nem entraria nessa regra e passaria direto pela função.... não é impossivel, mais não parece ser tão fácil....

 

bom esse foi meu método de ver a situação, ainda sou iniciante pode ter um jeito mais fácil de fazer isso.... mais fica ai a idéia e a intenção http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Valeu!

 

OBS.: ao invés de subtração poderia ser feito também com a soma de cada mensagem... quando a soma na tabela fosse igual a 10 ou 30 (sua escolha) a função retornaria em false e não deixaria o cara postar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anna Lethícia, não é complicado, basta na tabela de cadastro de usuários você colocar o campo nivel, que será tipo enum '1','2' e na hora do login você verifica com um IF o nível do usuário, e dentro do IF faz as funções para limita-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até ai eu entendi!!!

 

Eu gostaria muito de utilizar isso para um estudo mesmo!!! Então vou utilizar alguns exemplos...

 

Tenho as seguintes tabelas no banco de dados "sistema";

 

CREATE TABLE comentarios_noticias (
	comentarioID int(10) unsigned NOT NULL auto_increment,	
	usuarioID int(10) unsigned NOT NULL,
	comentarioTexto text NOT NULL,
	noticiaID int(10) unsigned NOT NULL,
	comentarioDataCadastro timestamp NOT NULL default CURRENT_TIMESTAMP,
	PRIMARY KEY  (comentarioID),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Tabela utilizada para o cadastro de comentários';

CREATE TABLE noticias (
	noticiaID int(10) unsigned NOT NULL auto_increment,	
	usuarioID int(10) unsigned NOT NULL,
	noticiaTitulo varchar(150) NOT NULL,
	noticiaTexto longtext,
	noticiaStatus enum('on','off') NOT NULL default 'on',
	noticiaVisto int(10) unsigned default '0',
	noticiaDataCadastro timestamp NOT NULL default CURRENT_TIMESTAMP,
	PRIMARY KEY  (noticiaID),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Tabela utilizada para o cadastro de notícias';

CREATE TABLE usuarios (
	usuarioID int(10) unsigned NOT NULL auto_increment,	
	usuarioLogin varchar(20) NOT NULL,
	usuarioNome varchar(100) NOT NULL,
	usuarioEmail varchar(64) NOT NULL,
	usuarioSenha char(32) NOT NULL,
	usuarioNivel enum('0', '1', '2') NOT NULL DEFAULT '0',
	usuarioKey char(32) NOT NULL,
	usuarioDataCadastro timestamp NOT NULL default CURRENT_TIMESTAMP,
	PRIMARY KEY  (usuarioID),
	UNIQUE KEY usuarioLogin (usuarioLogin)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Tabela utilizada para o cadastro dos usuários';

Vamos dizer que seja a página de uma notícia e os comentários são postados para essa notícia!

 

Primeiro nós temos a página de conexão com o banco de dados que é vinculado a ela;

 

conexao.php

 

<?php
// Proibe o acesso direto a página conexao.php.
if (basename($_SERVER["PHP_SELF"]) == "conexao.php") {
	die("Este arquivo não pode ser acessado diretamente.");
}

// Cria os dados para a conexão com o Banco de Dados.
$conexaoServidor = "localhost";
$conexaoBanco = "sistema";
$conexaoUsuario = "usuario";
$conexaoSenha = "senha";
$conexao = mysql_pconnect($conexaoServidor, $conexaoUsuario, $conexaoSenha) or trigger_error(mysql_error(),E_USER_ERROR);

// Função que verifica a existência do caractere aspas simples ' no conteúdo dos campos e permite a inclusão, edição no banco de dados
if (!function_exists("getValor")) {
function getValor($valor, $tipo, $valorDefinido = "", $valorNaoDefinido = "") 
{
  $valor = get_magic_quotes_gpc() ? stripslashes($valor) : $valor;
  $valor = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($valor) : mysql_escape_string($valor);
  switch ($tipo) {
	case "text":
	  $valor = ($valor != "") ? "'" . $valor . "'" : "NULL";
	  break;	
	case "long":
	case "int":
	  $valor = ($valor != "") ? intval($valor) : "NULL";
	  break;
	case "double":
	  $valor = ($valor != "") ? "'" . doubleval($valor) . "'" : "NULL";
	  break;
	case "date":
	  $valor = ($valor != "") ? "'" . $valor . "'" : "NULL";
	  break;
	case "defined":
	  $valor = ($valor != "") ? $valorDefinido : $valorNaoDefinido;
	  break;
  }
  return $valor;
}
}
?>

Agora nós temos a página noticia.php

 

<?php require_once('Includes/conexao.php'); ?>
<?php
// Inicia Sessão.
if ( !isset( $_SESSION) ) {
  session_start();
}
?>
<?php
// Define qual a notícia será exibida.
$rsNoticiaValor = "-1";
if (isset($_GET['nID'])) {
  $rsNoticiaValor = $_GET['nID'];
}
mysql_select_db($conexaoBanco, $conexao);
$rsNoticiaQuery = sprintf("SELECT n.noticiaID, n.noticiaTitulo, n.noticiaTexto, n.noticiaVisto, n.noticiaDataCadastro, u.usuarioNome FROM noticias AS n INNER JOIN usuarios AS u ON n.usuarioID = u.usuarioID WHERE n.noticiaID = %s AND n.noticiaStatus = 'on'", getValor($rsNoticiaValor, "int"));
$rsNoticia = mysql_query($rsNoticiaQuery, $conexao) or die(mysql_error());
$rsNoticiaLinha = mysql_fetch_assoc($rsNoticia);
$rsNoticiaTotalLinhas = mysql_num_rows($rsNoticia);

// Contabiliza as leituras de uma noticia sempre que essa for acessada ou a página for atualizada.
$atualizarSQL = sprintf("UPDATE noticias SET noticiaVisto=noticiaVisto+1 WHERE noticiaID=%s", getValor($rsNoticiaValor, "int"));
mysql_select_db($conexaoBanco, $conexao);
mysql_query($atualizarSQL, $conexao) or die(mysql_error());

// Reconhece o usuário logado.
$rsDadosUsuarioValor = "-1";
if (isset($_SESSION['sessaoUsuario'])) {
  $rsDadosUsuarioValor = $_SESSION['sessaoUsuario'];
}
mysql_select_db($conexaoBanco, $conexao);
$rsDadosUsuarioQuery = sprintf("SELECT * FROM usuarios WHERE usuarioLogin = %s", getValor($rsDadosUsuarioValor, "text"));
$rsDadosUsuario = mysql_query($rsDadosUsuarioQuery, $conexao) or die(mysql_error());
$rsDadosUsuarioLinha = mysql_fetch_assoc($rsDadosUsuario);
$rsDadosUsuarioTotalLinhas = mysql_num_rows($rsDadosUsuario);

// Conexão com a tabela comentarios e integração da tabela comentarios com a tabela usuarios.
mysql_select_db($conexaoBanco, $conexao);
$rsComentariosQuery = sprintf("SELECT * FROM comentarios_noticias AS c INNER JOIN usuarios AS u ON c.usuarioID = u.usuarioID WHERE noticiaID = %s", getValor($rsNoticiaValor, "int"));
$rsComentarios = mysql_query($rsComentariosQuery, $conexao) or die(mysql_error());
$rsComentariosLinha = mysql_fetch_assoc($rsComentarios);
$rsComentariosTotalLinhas = mysql_num_rows($rsComentarios);

// Ação para o formulário que exclui um comentário.
$acaoFormulario = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $acaoFormulario .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["excluir"])) && ($_POST["excluir"] == "excluirComentario")) {
  $excluirSQL = sprintf("DELETE FROM comentarios_noticias WHERE comentarioID=%s", getValor($_POST['comentarioID'], "int"));

  mysql_select_db($conexaoBanco, $conexao);
  $resultado1 = mysql_query($excluirSQL, $conexao) or die(mysql_error());
  
  header(sprintf("Location: noticia.php?nID=<?php echo $rsNoticiaLinha['noticiaID']; ?>"));
  
}

// Ação para o formulário que insere um comentário.
$acaoFormulario1 = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $acaoFormulario1 .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["inserir"])) && ($_POST["inserir"] == "inserirComentario")) {
  $inserirSQL = sprintf("INSERT INTO comentarios_noticias (usuarioID, comentarioTexto, noticiaID) VALUES (%s, %s, %s)",
					   getValor($_POST['usuarioID'], "int"),
					   getValor($_POST['comentarioTexto'], "text"),
					   getValor($_POST['noticiaID'], "int"));

  mysql_select_db($conexaoBanco, $conexao);
  $resultado2 = mysql_query($inserirSQL, $conexao) or die(mysql_error());
  
  header(sprintf("Location: noticia.php?nID=<?php echo $rsNoticiaLinha['noticiaID']; ?>"));
  
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Notícia - <?php echo $rsNoticiaLinha['noticiaTitulo']; ?></title>
<style type="text/css">
<!--
.style1 {
	color: #FF0000;
	font-weight: bold;
}
-->
</style>
</head>

<body>

<h1><?php echo $rsNoticiaLinha['noticiaTitulo']; ?></h1>

<p><?php echo date( 'd/m/Y H:i', strtotime($rsNoticiaLinha['noticiaDataCadastro'])); ?> por : <?php echo $rsNoticiaLinha['usuarioNome']; ?> e lida <?php echo $rsNoticiaLinha['noticiaVisto']; ?> vezes.</p>

<?php if ($rsNoticiaLinha['noticiaTexto']==true) { // Função que só exibe o texto, se esse campo foi preenchido no cadastro ?>
<h3>Texto : </h3><?php echo $rsNoticiaLinha['noticiaTexto']; // Exibindo o texto ?>
<?php } // Se o campo ficou vazio no cadastro ele não vai exibir o <h3>Texto : </h3> ?>

<h3>Comentários</h3>

<?php if ($rsComentariosTotalLinhas == 0) { // Se nenhum comentário foi postado essa função mostra "Nenhum comentário encontrado!" ?>
  <p>Nenhum comentário encontrado!</p>
<?php } ?>

<?php if ($rsComentariosTotalLinhas > 0) { // Se foi encontrado um ou mais comentários, essa função os exibe ?>
	  <p>Por : <?php echo $rsComentariosLinha['usuarioNome']; ?> em <?php echo date( 'd/m/Y H:i', strtotime( $rsComentariosLinha['comentarioDataCadastro'])); ?></p>
	  <p><?php echo nl2br( $rsComentariosLinha['comentarioTexto']); ?></p>
	  <p class="style1">----------</p>
	  <?php if ( isset( $_SESSION['sessaoUsuario']) and !empty($_SESSION['sessaoUsuario']) ) : // Função que verifica a existência de um usuário logado ?>
		  <?php if ($rsComentariosLinha['usuarioID']==$rsDadosUsuarioLinha['usuarioID']) { // Função que só exibe a opção [EXCLUIR] se o usuário logado for o autor do comentário ?>
			<form action="<?php echo $acaoFormulario; ?>" method="post" id="formExcluirComentario">
			<td><input type="submit" value="excluir" />
			<input type="hidden" name="comentarioID" value="<?php echo $rsComentariosLinha['comentarioID']; ?>" />
			<input type="hidden" name="excluir" value="excluirComentario" />
			</form>
			  <p class="style1">----------</p>
		  <?php } ?>
	<?php endif; ?>
<?php } ?>

<h3>Comente esta notícia</h3>
<?php if ( isset( $_SESSION['sessaoUsuario']) and !empty($_SESSION['sessaoUsuario']) ) : // Função que verifica a existência de um usuário logado ?>
<form action="<?php echo $acaoFormulario1; ?>" method="post" id="formInserirComentario">
	<table>
	  <tr valign="baseline">
		<td align="right" valign="top">Comentário : </td>
		  <td><textarea name="comentarioTexto" cols="50" rows="5"></textarea></td>
	  </tr>
	  <tr valign="baseline">
		<td align="right"> </td>
		  <td><input type="submit" value="inserir" /></td>
	  </tr>
  </table>
	<input type="hidden" name="usuarioID" value="<?php echo $rsDadosUsuarioLinha['usuarioID']; ?>" />
	<input type="hidden" name="noticiaID" value="<?php echo $rsNoticiaLinha['noticiaID']; ?>" />
  <input type="hidden" name="inserir" value="inserirComentario" />
</form>
<?php else : // Caso não exista um usuário logado ele infoma que para insirir um comentário é preciso estar logado e da as opções para fazer o login ou se cadastrar no site ?>
<p>Você precisa estar logado para comentar esta notícia.</p>
<p><a href="login.php?confereAcesso=<?php echo $_SERVER['REQUEST_URI']; ?>">Efetue seu login</a></p>
<p>Ou <a href="cadastroUsuario.php">cadastre-se</a></p>
<?php endif; ?>
</body>
</html>
<?php
mysql_free_result($rsNoticia);
mysql_free_result($rsComentarios);
mysql_free_result($rsDadosUsuario);
?>

Existem outras páginas que são fundamentais que seriam a login.php e a verificaLogin.php mas aqui é só para ilustrar o exemplo.

 

Eu escrevi esse código me baseando no código original do meu problema, talvez tenha algum erro mas eu não testei, acredito que está tudo OKAY, alias, esse código está faltando um detalhe;

 

As funções que limitam o número de comentários por nível de usuário!

 

Digamos que;

 

O nível '0' não pode postar nada,

O nível '1' pode postar 20 comentários e,

O nível '2' pode postar um número ilimitado de comentários.

 

Já tentei de tudo quanto é jeito criar funções, maneira de selecionar dados da tabela, criando novos recordsets, enfim... Nada deu certo!!! Por isso estou enviando o exemplo funcionando até a minha última dúvida!!!

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.