Ir para conteúdo

POWERED BY:

Arquivado

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

kamikaze19971997

[Resolvido] SESSION como usar ?

Recommended Posts

Boas pessoa tudo bem ? estou precisando muito da ajuda de vocês... já tem 4 dais que estou quebrando a cabeça nesse assunto e ainda não consegui resolver...

* Só para deixar claro desculpa minha ignorância mas não manjo muito de PHP.

 

Meu problema é o seguinte pessoa... eu estou desenvolvendo um sistema bastante simples para ser usado pela minha pessoa e mas 4 amigos... o sistema trata-se de; Pagina de Login, Pagina de Cadastro e um Painel...  só que estou com uma pequena dificuldade em usar "SESSION" para que cada usuário possa ver suas informações... gostaria de uma orientação de como fazer isso.

 

Meu projeto tem as seguintes pasta..

 

index.html

config.php

login.php

cadastro.php

 e um banco de dados com a tabala com USUARIO e SENHA.

 

Segue o código abaixo:

LOGIN e CADASTRO

 

index.php

<!DOCTYPE html>
<html >
<head>
  <meta charset="UTF-8">
  <title>BetCoins - Login</title>
  
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">

  <link rel='stylesheet prefetch' href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'>
<link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'>

      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>
  
<!-- Mixins-->
<!-- Pen Title-->
<div class="pen-title">
  <h1>Painel de Controle</h1><span>
</div>
<div class="container">
  <div class="card"></div>
  <div class="card">
    <h1 class="title">Login</h1>
    <form action="Login.php" method="post">
      <div class="input-container">
	  
        <input type="#{type}" id="#{label}" type="text" name="usuario"/>
		
        <label for="#{label}">Usuário</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
	  <input type="password" id="#{label}" name="senha" required="required"/>
        		
        <label for="#{label}">Senha</label>
		
        <div class="bar"></div>
      </div>
      <div class="button-container">
	  <button><span> ENTRAR</span></button>
	   
      </div>
      <div class="footer"><a href="#">Esqueceu a senha?</a></div>
    </form>
  </div>
  <div class="card alt">
    <div class="toggle"></div>
    <h1 class="title">Cadastrar
      <div class="close"></div>
    </h1>
    <form action="Cadastro.php" method="post">
      <div class="input-container">
        <input type="#{type}" id="#{label}" type="text" required="required" name="novo_usuario"/>
        <label for="#{label}">Usuário</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
        <input type="password" id="#{label}"  required="required" name="nova_senha"/>
        <label for="#{label}">Senha</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
        <input type="password" id="#{label}" required="required" name="nova_senha2"/>
        <label for="#{label}">Repitir Senha</label>
        <div class="bar"></div>
      </div>
      <div class="button-container">
        <button><span>CADASTRAR</span></button>
      </div>
    </form>
  </div>
</div>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

    <script src="js/index.js"></script>

</body>
</html>

 

Login.php

<?php
include ("Config.php"); // INCLUINDO INFORMAÇÕES DO CONDIG.PHP

@mysql_connect("$host", "$user", "$pass") or die(mysql_error()); // CONECTANDO-SE AO MYSQL DA MAQUINA
mysql_select_db($database) or die(mysql_error()); // CONECTANDO-SE A DATA BASE

$usuario = ($_POST['usuario']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO LOGIN DO FORMULARIO
$senha = ($_POST['senha']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO SENHA DO FORMULARIO

$analisar = "SELECT * FROM login WHERE usuario = '$usuario' AND senha = '$senha'"; // ESSA VARIAVEL IRÁ ANALISAR NO BANCO DE DADOS NA TABELA LOGIN SE USUARIO E SENHA ESTAO CORRETOS
$resultado = mysql_query($analisar); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELA VARIAVEL $ANALISAR 

$iniciar = mysql_num_rows($resultado); // ESSA VARIAVEL SERVIRÁ PARA CHECAR SE EXISTE UM USUARIO COM ESSE LOGIN (NOTE QUE ELA BUSCA INFORMAÇÕES DE OUTRAS VARIAVEIS)

if ($iniciar == 1)// ESSA CONDIÇÃO IRÁ VERIFICAR SE OS DADOS FORNECIDOS NÃO IGUAIS AOS DO BANCO DE DADOS
{ // APÓS A CONDIÇÃO FOR ACEITA, ACONTECE UMA AÇÃO, E ESSA AÇÃO SERÁ O RESULTADO DO LOGIN EFETUADO
?> <!-- NOTE QUE ISSO JÁ É UM COMENTARIO EM HTML, ISSO ACONTECEU PORQUÊ EU FECHEI A TAG DO PHP PARA QUE EU POSSA TRBALHAR COM CODIGOS EM HTML APÓS EU TER EFETUADO O LOGIN -->

<center>
Bem Vindo ao seu Painel <font style="font-weight:bold;"><?php echo $usuario ?></font> <!-- MENSAGEM QUE APARECERÁ CASO ESTA LOGADO -->
</center>

<?php // AQUI JA COMEÇA COMENTARIOS EM PHP, OU SEJA EU ABRI NOVAMENTE A TAG DO PHP PARA QUE MEU CODIGO CONTINUE PROCESSANDO SEM ERRO ALGUM 
}
else // EXCEÇÃO CASO LOGIN OU SENHA ESTIVEREM ERRADOS
{
echo "Login ou Senha Invalido"; // MENSAGEM QUE APARECERÁ CASO OS DADOS FORNECIDOS ESTAJAM ERRADOS
}

?>

 

 

Cadastro.php

 

<?php
require_once ("Config.php"); // INCLUINDO INFORMAÇÕES DO CONDIG.PHP
@mysql_connect("$host", "$user", "$pass") or die(mysql_error()); // CONECTANDO-SE AO MYSQL DA MAQUINA
mysql_select_db($database) or die(mysql_error()); // CONECTANDO-SE A DATA BASE
$novo_usuario = ($_POST['novo_usuario']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO LOGIN DO FORMULARIO
$nova_senha = ($_POST['nova_senha']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO SENHA DO FORMULARIO
$nova_senha2 = ($_POST['nova_senha2']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO COMFIRME A SENHA DO FORMULARIO

$selecionar = "SELECT usuario FROM login WHERE usuario = '$novo_usuario'"; // ESSA VARIAVEL IRÁ SELECIONAR A TABELA E A COLUNA PARA QUE SEJA CHECADO SE NÃO EXISTE UM MESMO LOGIN
$verificar = mysql_query($selecionar); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELA VARIAVEL $SELECIONAR 

$enviar = mysql_num_rows($verificar); // ESSA VARIAVEL SERVIRÁ PARA CHECAR SE JA EXISTE UM USUARIO COM ESSE LOGIN (NOTE QUE ELA BUSCA INFORMAÇÕES DE OUTRAS VARIAVEIS)

if ($enviar == 1) // ESSA CONDIÇÃO IRÁ VERIFICAR SE OS DADOS FORNECIDOS DESDE A PRIMEIRA VARIAVEL $SELECIONAR ATÉ ENVIAR SE NÃO HÁ NENHUM CONFRONTO (A CONDIÇÃO A SER CUMPRIDA AQUI É QUE O VALOR DO LOGIN DO USUARIO TEM QUE SER DIFERENTE DE 1 PARA CONTINUAR, SE O POR ACASO ALGUEM JA ESTIVER UTILIZANDO O MESMO LOGIN, DE ALGUMA FORMA ESSE NOME SERÁ COMPARADO COM O Nº 1, E APARECERÁ A MENSAGEM DE ERRO ABAIXO)
{
echo "O Nome do Usuario Já Existe"; // MENSAGEM DE ERRO QUE IRÁ APARECER CASO A CONDIÇÃO SEJA CUMPRIDA, OU SEJA, A CONDIÇÃO SE CUMPRE QUANDO O LOGIN JA ESTIVER SENDO USADO
} 
else // EXCEÇÃO CASO NÃO SEJA CUMPRIDA AS CONDIÇÕES ( ESSA EXCEÇÃO ELA SERÁ PROCESSADA QUANDO OS DADOS FORNECIDOS PELA PESSOA AINDA NÃO ESTIVER SENDO UTILIZADA)
{
if ($nova_senha == $nova_senha2) // ESSA CONDIÇÃO IRÁ VERIFICAR SE A SENHA PRINCIPAL É A MESMA FORNECIDA PELA CONFIRMAÇÃO DA SENHA, SE AS DUAS SENHAS ESTIVEREM CORRETAS O CADASTRO IRÁ SER CONCLUIDO.
{
$sqlEnviando = mysql_query("INSERT INTO login (usuario,senha) VALUES ('$novo_usuario','$nova_senha')") or die(mysql_error()); /* AQUI O CODIGO IRÁ INSERIR OS DADOS FORNECIDOS PELA PESSOA NO BANCO DE DADOS, FUNCIONA +/- ASSIM ESSA LINHA:
"INSIRA DENTRO DA TABELA LOGIN NAS COLUNAS USUARIO E SENHA OS VALORES $NOVO_USUARIO E $NOVA_SENHA" */
echo "Cadastro Efetuado com Sucesso"; // MENSAGEM QUE IRÁ APARECER CASO O CADASTRO SEJA EFETUADO COM SUCESSO!
}
else // ESSA EXCEÇÃO SE APLICA QUANDO A SENHA PRINCIPAL FOI DIGITA DIFERENTE DA CONFIRMAÇÃO DA SENHA
{
echo "As Senhas não Conferem"; // MENSAGEM QUE IRÁ APARECER CASO AS SENHA NÃO FOREM CORRETAS
}
}
?>

 

 

Então gostaria de cria um painel para os usuários... mas como fazer o usuário ver apenas os dados dele e nao dos outros, andei vendo vídeos e observei que pode ser resolvido por essa função SESSION.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aconselho aprender também sobre as psr, poo e pdo.

Com os conceitos acima você irá conseguir lhe oferecer uma manutenção e uma extensão melhor em seu código.

Além de oferecer uma boa leitura de código quando precisar de ajuda.

Boa sorte e sucesso amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

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