Ir para conteúdo

POWERED BY:

Arquivado

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

Beto Lima

[Resolvido] Login e senha

Recommended Posts

To com uma dificuldade de fazer o seguinte:

 

A minha index.php está mostrando vários conteudos buscando do banco. blza

Na index tenho um include para login bem no canto direito chamado: topo.php

 

O que eu quero?

Quero que ao entrar na index.php que continue da mesma forma que está hoje mostrando os meus conteúdos buscados no banco, e quando o usuário fazer o login, quero que logue e volte pra mesma index só que mostrando conteúdos protegidos reservados para quem estiver logado....

 

quem não está logado não ve tudo e quem estiver logado ve tudo...

 

É isso....

Já procurei por vários tipos de acesso com login e senha mas todos são da mesma forma onde: Se o cara não logou ele redireciona pra uma página e se logou corretamente dae vai pra pagina certa....

O que eu quero é ficar sempre na index....mostrando conteúdo total ou parcial...

 

Conseguiram entender?

Agradeço pela ajuda....

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando voce fizer a verificacao para o login, sete uma $_SESSION['userID'] (tendo previamente iniciado uma seção, com session_start() ) e na pagina index, fazer um if para saber essa variavel existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($loguin!='' && $senha!=''){

session_start();

$_SESSION['loguin']=loguin;

$_SESSION['senha']=$senha;

}

 

 

pra resgatar em outra página você faz

session_start();

$loguin=$_SESSION['loguin']; ..........

 

 

e por ai vai , mas

 

o melhor e ais seguro é utilizar autenticação http

 

veja no manual php para saber mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($loguin!='' && $senha!=''){

session_start();

$_SESSION['loguin']=loguin;

$_SESSION['senha']=$senha;

}

 

coloco na index? ou onde se encontra o form?

 

 

session_start();

$loguin=$_SESSION['loguin'];

 

coloco onde quero proteger algum conteúdo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...

suas perguntas são primárias....

 

analise o que postei...

 

 

está bem claro

 

 

mas, o segundo bloco é para você pegar a variável que foi setada, ou verificar se ela existe

 

 

BONS ESTUDOS>>>>!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testando para ver se a variavel de sessão existe, voce sabe se pode ou não exibir o conteúdo protegido

 

 

<?php

session_start();

if(isset($_REQUEST['logar'])){

// Aqui entra um trecho de código para verificar que o usuario e a senha estão corretas

// Se estiverem corretas...

$_SESSION['userID'] = $idDoUsuário;

}

?>

 

<?php

if($_SESSION['userID']){

?>

<b>conteúdo protegido</b>

<?php

};

?>

<b>conteúdo público</b>

 

<form action="?logar" method="post">

<input type="text" name="usuario" />

<input type="password" name="senha" />

<input type="submit" value="enviar" />

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, após muitas dores de cabeça enfim funcionou...

Agora na hora do logout ele não ta imprimindo o "Olá VISITANTE" e sim o nome do usuário ainda...

 

essa parte do código é onde mostra olá usuário....como em muitos sites...

 

<?php

$secao = $_SESSION['login_as'];

if($_SESSION['login_as'] == "") {

echo "Olá Visitante";

}else {

echo "Olá $secao | <a href=\"sistema/sair.php?doLogout=true&verifica=true\">Sair</a>";

}

?>

 

e a parte abaixo refere-se ao arquivo sair.php

 

<?php

//initialize the session

if (!isset($_SESSION)) {

session_start();

}

// ** Logout the current user. **

$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){

$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){

//to fully log out a visitor we need to clear the session varialbles

$_SESSION['user'] = NULL;

$_SESSION['MM_Username'] = NULL;

$_SESSION['MM_UserGroup'] = NULL;

$_SESSION['PrevUrl'] = NULL;

unset($_SESSION['user']);

unset($_SESSION['MM_Username']);

unset($_SESSION['MM_UserGroup']);

unset($_SESSION['PrevUrl']);

 

if ($_REQUEST["verifica"] == "true"){

$logoutuser = "../index.php";

if ($logoutuser) {

header("Location: $logoutuser");

exit;

}

}else{

$logoutGoTo = "login/login.php";

if ($logoutGoTo) {

header("Location: $logoutGoTo");

exit;

}

}

}

?>

<?php

if (!isset($_SESSION)) {

session_start();

}

$MM_authorizedUsers = "";

$MM_donotCheckaccess = "true";

 

// *** Restrict Access To Page: Grant or deny access to this page

function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {

// For security, start by assuming the visitor is NOT authorized.

$isValid = False;

 

// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.

// Therefore, we know that a user is NOT logged in if that Session variable is blank.

if (!empty($UserName)) {

// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.

// Parse the strings into arrays.

$arrUsers = Explode(",", $strUsers);

$arrGroups = Explode(",", $strGroups);

if (in_array($UserName, $arrUsers)) {

$isValid = true;

}

// Or, you may restrict access to only certain users based on their username.

if (in_array($UserGroup, $arrGroups)) {

$isValid = true;

}

if (($strUsers == "") && true) {

$isValid = true;

}

}

return $isValid;

}

 

$MM_restrictGoTo = "login/erro.php";

if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {

$MM_qsChar = "?";

$MM_referrer = $_SERVER['PHP_SELF'];

if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";

if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)

$MM_referrer .= "?" . $QUERY_STRING;

$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);

header("Location: ". $MM_restrictGoTo);

exit;

}

?>

 

Alguém sabe onde está dando errado?

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a duvida do amigo, queria saber o seguinte, eu tenho como colocar mais de um usuario para a permissao de visualização ?

 

segue abaixo o codigo que estou utilizando...

 

CODE
<?php

if($_SESSION['MM_Username'] == "manolo"){

?>

 

Queria saber se posso colocar tipo assim "manolo,diego,adriana" tentei fazer isso mas nao deu certo, se alguem souber como solucionar sera muito grata a ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

if($_SESSION['MM_Username'] == "manolo" || $_SESSION['MM_Username'] == "diego" || $_SESSION['MM_Username'] == "adriana"){

?>

 

acho q assim funfa

Compartilhar este post


Link para o post
Compartilhar em outros sites

session_start();
if($_SESSION['MM_Username'] == "manolo" or $_SESSION['MM_Username'] == "diego" or $_SESSION['MM_Username'] == "maryana"){

entendeu ? mais isso não faz sentido cara...

 

Não tinha visto que o colega postou assim.

[Resolvido] então.

 

Beto Lima

 

O método correto para esta verificação seria o seguinte:

 

<?php
$secao = $_SESSION['login_as'];
if(!isset($_SESSION['login_as'])) {
echo "Olá Visitante";
}else {
echo "Olá $secao | <a href=\"sistema/sair.php?doLogout=true&verifica=true\">Sair</a>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

$secao = $_SESSION['login_as'];

if(!isset($_SESSION['login_as'])) {

echo "Olá Visitante";

}else {

echo "Olá $secao | <a href=\"sistema/sair.php?doLogout=true&verifica=true\">Sair</a>";

}

?>

 

 

não deu certo, continua a mesma coisa....

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, sua URL ficaria assim:

 

Eu não estou vendo no seu sistema de sair, a destruição de nenhuma sessão com o nome de "login_as" então eu troquei na verificação de login_as para user, se mesmo assim não der certo, você acrescenta em sair.php isso:

unset($_SESSION['login_as']);

<?php
if(!isset($_SESSION['user'])) {
echo "Olá Visitante";
}else {
echo "Olá". $_SESSION['user'] ." | <a href='sistema/sair.php?doLogout=sair'>Sair</a>";
}
?>

sair.php

<?php
if(isset($_GET['doLogout'])){
if($_GET['doLogout']=='sair'){
session_start();
$_SESSION=array();
session_destroy();
$_SESSION['user'] = NULL;
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['user']);
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
header('Location: ../index.php');
}else{echo 'Erro ao sair do sistema';}
}else{
echo 'Erro ao sair do sistema.';
}
?>
Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, agora ele imprime certo o nome do usuário e desaparece na hora de sair...ótimo..

 

Queria saber como imprimir o Nome da pessoa ao invés do nome do usuário???

 

coloquei mais uma coluna na minha tabela pra colocar o nome da pessoa, além de user e senha...

 

CREATE TABLE `login` (

`id` int(5) NOT NULL auto_increment,

`login` varchar(8) NOT NULL,

`senha` varchar(8) NOT NULL,

`status` varchar(15) NOT NULL,

`Nome` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

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.