Ir para conteúdo

POWERED BY:

Arquivado

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

Marko D. Neto

[Resolvido] função para inserir se logado ou não

Recommended Posts

(PROBLEMA RESOLVIDO, COMO EU COLOCO NO NOME DO TOPICO [RESOLVIDO]? SE FOR OS ADMINS QUE COLOCAM, PODEM COLOCAR ENTÃO!)

 

Boa tarde, eu gostaria de saber como proceder para alterar um campo caso o usuario esteja logado...

 

por exemplo na pagina inicial tem um menu para logar, eu queria que após colocarem o login e senha e clicarem en "entrar", ao inves de ficar aparecendo os campos de login e senha, no lugar aparecece os dados, como por exemplo:

 

Bem vindo "nome".

 

Login:

Senha:

 

(botão)Logout

 

aqui em baixo postei uma imagem de como é o site a parte em questão, eu sublinhei de vermelho.

 

Imagem Postada

 

 

lembrando que ja configurei o sistema de cadastro, ele cadastra corretamente e loga corretamente porem nao aparece aonde eu quero, o sistema de cadastro utilizado, foi o do usuario: _M!K0L_ | http://forum.imasters.com.br/index.php?showtopic=251968

 

Eu ja vi utilizando skindir, inclusive tenho um site baixado da net que utiliza isso, mas ficou meio complexo pra mim, e tambem achei muito trabalhoso, teria um jeito mais facil?

 

desde ja, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Redireciona para outra pagina que tenha tudo igual, ai você apenas retira o menu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Redireciona para outra pagina que tenha tudo igual, ai você apenas retira o menu.

Esse é o problema, como redirecionar corretamente? sera que se eu usar um include com a função php del ogin da certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Redireciona assim ó: ?account_redir=ID

 

Veja abaixo:

<?php

if ($_GET['account_redir'] == $id) {
 // Resto do código
}

?>

Ou melhor ainda, faça por status de login:

 

// Quando a pessoa logar $_SESSION['log'] = 1;
if ($_SESSION['log'] == 1) {// Resto do código}

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa criar outra página só para isso...

na index mesmo você defini isso...

 

o login já está funcionando? se sim, cria uma session ou cookie com os dados do usuário...

aí é só você verificar se a session ou o cookie existe e mostrar os dados...

 

<?php
if(isset($_COOKIE["usuario"] && !empty($_COOKIE["usuario"] {
	 echo "Olá " . $_COOKIE["usuario"];
}
else {
	 mostra o formulário
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei fazer assim, porem nem a pagina abre mais, olha só como eu fiz:

 

<?php
if(isset($_COOKIE["usuario"] && !empty($_COOKIE["usuario"] {
	 echo "Olá " . $_COOKIE["usuario"];
}
else {
	 echo "<meta http-equiv=\"refresh\" content=\"0; URL="area_restrita.php"\">";
}
?>

mesmo eu removendo a parte que eu adicionei, aparece esse erro: "

Parse error: parse error, expecting `','' or `')'' in C:\xampplite\htdocs\site\index.php on line 106" Eu ja procurei na linha 106 mas nao achei erro.. =/

 

Eu nao entendi bem.. pois esse cokie usuarios, eu acho que nao existe...

 

se eu tentar colocar um "iframe" la redirecionando pra pagina de login sera que da certo?

 

to perdido!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe o COOKIE, você tem que setar ele, eu te recomendo fazer por sessions.

 

Veja no site do PHP mais sobre: http://www.php.net/manual/pt_BR/features.sessions.php && http://www.php.net/manual/pt_BR/features.cookies.php

Eu li um pouco, consegui corrigir o erro que tava dando, é que no codigo, ele nao tinha fechado os ().

 

Agora eu só preciso saber em qual pagina usar o setcookie, e quais parametros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa setcookie no nivel de login, quando a pessoa se logar setcookie('log_nivel',1,time () + 3600);

Ai se a pessoa não estiver com $_COOKIE['log_nivel'] == 1, ele será alertado que não estará logado no site.

 

É simples :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa setcookie no nivel de login, quando a pessoa se logar setcookie('log_nivel',1,time () + 3600);

Ai se a pessoa não estiver com $_COOKIE['log_nivel'] == 1, ele será alertado que não estará logado no site.

 

É simples :)

Eu coloquei assim, na pagina do login

 

<?
setcookie('usuario',1,time () + 3600);
?>

e coloquei assim na parte em que aparece o menu:

 

<?php
if(isset($_COOKIE["usuario"] == "1"))
{
	 echo "Login: " . $_SESSION['login'] . "<br />";
	 echo "Senha: " . $_SESSION['senha'] . "<br />";
	 echo "E-mail: " . $_SESSION['email'] . "<br />";
	 echo "<a href=\"logout.php\">Sair</a>";
}
else 
{
echo "ola" . $_COOKIE["usuario"];

?>

mesmo assim nao funcionou..

 

alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

LOL, você saber usar sessions, então USE sessions no lugar de cookies.

 

E sim era pra ter funcionado porem esse:

CODE

<?

setcookie('usuario',1,time () + 3600);

?>

Esta no mesmo arquivo que essa parte das SESSIONS?

 

Se não tiver, precisa estar ;x

Compartilhar este post


Link para o post
Compartilhar em outros sites

LOL, você saber usar sessions, então USE sessions no lugar de cookies.

 

E sim era pra ter funcionado porem esse:

CODE

<?

setcookie('usuario',1,time () + 3600);

?>

Esta no mesmo arquivo que essa parte das SESSIONS?

 

Se não tiver, precisa estar ;x

 

esse é o problema eu não sei usar sesions, essas sesions são do sistema de cadastro do cara....

 

Agora o erro informado foi:

Parse error: parse error, expecting `','' or `')'' in C:\xampplite\htdocs\site\index.php on line 106"

 

Denovo!

 

cara to quase desistindo e tentando usar iframe, foi uma das unicas formas que eu encontrei que funcionou razoavel...

Compartilhar este post


Link para o post
Compartilhar em outros sites

postaí o código que você tem que faz o login...

 

esse aqui é o codigo que eu uso na pagina principal para aparecer o campo de usuario e Senha e os botoes de entrar e registrar:

<div style="text-align: center;"><span style="font-weight: bold;"> </span><span style="color: rgb(101, 34, 0);"><span style="font-weight: bold;">Usuario</span></span>
 <input name="login" id="login" size="12" type="text"> <br>


		</div>


		<br>


		
		<div style="text-align: center;"> <span style="color: rgb(101, 34, 0);"><b>Senha </b></span>
   <input name="senha" id="senha" size="12" maxlength="8" type="password"> <br>


		</div>


		
		<div style="padding-right: 10px;" align="right"><br>


		
		<div style="text-align: center;"><span style="color: rgb(255, 0, 0);">Se você ainda
não tem uma conta, clique em Registrar.</span><br>


		</div>


		<br>


		
		<div style="text-align: center;">
		<div style="text-align: center;"><a href="verifica.php" target="conteudo"><img style="border: 0px solid; width: 104px; height: 21px;" src="images/BTlogin.jpg" alt=""></a></div>


		</div>
são 2 na verdade, no primeiro o form ele redireciona e verifica se o usuario esta cadastrado, se estiver ele redireciona pra pagina index.php, senão ele exibe o forulario de login!

 

verifica.php

<?
//Mude aqui para onde o usuário vai ser redirecionado caso o Login for bem sucedido
$pagina_restrita = "index.php";

if(isset($_GET['msg']) && $_GET['msg'] != "") {
	require("SQL.php");
	$mensagem = anti_injection($_GET['msg']);
} else {
	$mensagem = base64_encode("Acesso para Área Restrita");
}

if($_SERVER['REQUEST_METHOD'] == "POST"){

		if(isset($_POST['login']) && isset($_POST['senha'])){
		require("SQL.php");				
		$login = anti_injection($_POST['login']);
				$senha = md5(anti_injection($_POST['senha']));
				$query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error());
				$rTestar = mysql_num_rows($query);
		$row = mysql_fetch_assoc($query);
			   
				if($rTestar > '0'){
					  //session_start();
						session_register('email');
						session_register('login');
						session_register('senha');
						$_SESSION['email'] = $row['email'];
						$_SESSION['login'] = $row['login'];
						$_SESSION['senha'] = $row['senha'];
						echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">";
			exit;
				} else {
			   
						$mensagem = base64_encode("<font color=\"red\"><b>Login ou senha Invalida</b></font>");
			   
				}
			   
		}

}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.text_form {font-family: Verdana; font-size: 10px; font-weight: bold; }
.table{
		margin: 0px;
		padding: 2px;
}
#field {
		margin: 0px;
		padding: 2px;
		width: 260px;
}
-->
</style>
</head>

<body>

<form name="form1" method="post" action="">
<div align="center">
<fieldset id="field">
<legend>
<? echo "<font face=\"Verdana\" size=\"2\"><b>" . base64_decode($mensagem) . "</b></font>"; ?>
</legend>
  <table width="245" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
	<tr>
	  <td width="100" scope="col"><span class="text_form">Login:</span></td>
	  <td width="145" scope="col"><input name="login" type="text" id="login"></td>
	</tr>
	<tr>
	  <td width="100" scope="row"><span class="text_form">Senha:</span></td>
	  <td width="145"><input name="senha" type="password" id="senha"></td>
	</tr>
	<tr>
	  <td width="100" scope="row"></td>
	  <td width="145"><input type="submit" name="Submit" value="Logar">
	  <input type="reset" name="Submit2" value="Limpar"></td>
	</tr>
  </table>
<a href="mudar_senha.php">Esqueci/Mudar a senha</a><br>
<a href="cadastro.php">Cadastrar-se</a>
  </fieldset>
  </div>
</form>
</body>
</html>

are_restrita(que mostra os dados):

<?
include("restringir.php");
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
echo "Login: " . $_SESSION['login'] . "<br />";
echo "Senha: " . $_SESSION['senha'] . "<br />";
echo "E-mail: " . $_SESSION['email'] . "<br />";
echo "<a href=\"logout.php\">Sair</a>";
?>
</body>
</html>

e assim vai....

 

To ficando louco ja

 

(Fiz uma pequena correção, ele manda pra verifica.php na parte do login principal, e nao pra area restrita.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá dando erro?

onde?

 

por que essa linha tá comentada?

//session_start();

ele deixou comentada pq aquilo é pra testar se na hora de pegar ou enviar os dados, nao sei ao certo, somente dos campos corretos.

Acredito que seja isso.

 

meu problema é fazer a pagina exibir isso:

 

<?

echo "Login: " . $_SESSION['login'] . "<br />";

echo "Senha: " . $_SESSION['senha'] . "<br />";

echo "E-mail: " . $_SESSION['email'] . "<br />";

echo "<a href=\"logout.php\">Sair</a>";

?>

 

depois que o usuario logar, no lugar do form de login.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tira o comentário, senão a sessão não vai funcionar...

ja sei pra que serve.... Aquela parte acho que é como se fosse o cookie que você tava tentando fazer eu colocar, ele pega as rows da tabela ususarios, se for > 0

[b]$query[/b] = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error());
				[b]$rTestar[/b] = mysql_num_rows($query);
		[b]$row[/b] = mysql_fetch_assoc($query);

[b]if($rTestar > '0')[/b]{
						session_start();
						session_register('email');
						session_register('login');
						session_register('senha');
						$_SESSION['email'] = $row['email'];
						$_SESSION['login'] = $row['login'];
						$_SESSION['senha'] = $row['senha'];
						echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">";
			exit;
				} else {
			   
						$mensagem = base64_encode("<font color=\"red\"><b>Login ou senha Invalida</b></font>");
o useja tiver mais de 1 linha ele manda pra pagina restrita, que é onde mostra os dados da pessoa, senão, ele diz Login ou senha Invalida.

 

só nao sei como fazer pra exibir os dados la no lugar do form de login da pagina principal!

 

Sera que é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca isso no inicio do script..

echo "<pre>";
print_r($_SESSION);
echo "</pre>";

submeta o formulário, esse código aí vai mostrar um array com os dados da session, caso ela exista...

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.