Ir ao conteúdo

Posts recomendados

Postado

Bom dia pessoal, sou novo em PHP e gostaria de uma ajuda, estou adapitando um layout no meu painel php e agostaria de colocar o usuário logado nele de acordo com o login que foi utilizado para logar no sistema.

 

Segue abaixo os códigos de validação...


 

<?php error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);require_once('Connections/config.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['Login'])) {
  $loginUsername=$_POST['Login'];
  $password=$_POST['Senha:'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "painel.php";
  $MM_redirectLoginFailed = "erro.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_config, $config);
  
  $LoginRS__query=sprintf("SELECT Login, Senha FROM `usuário` WHERE Login=%s AND Senha=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $config) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login de Sistema MM</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">

</style>
</head>

<body>

<center>

<div id='conteudologinsistema'>

<table align="center" width="167" height="200" border="0">
  
    <tr>
      <th width="161" height="190" scope="col">
        
   <br><br><br>
    <h6 style="font-size: 55px">SisWebMM</h6>
   
   </th>
    </tr>
  
</table>

 
  <table align="center" width="351" height="200" border="0">


    <tr>
   
      <td align="center" bgcolor="#FFFFFF"><form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
      
  <table width="351" border="0">
    <tr>
      <td align="center" style="font-size: 12px"> <span>Entre com usuário e senha</span><br><br></td>
    </tr>
    
      <td align="center" colspan="3"><label for="Login"></label>
      <input style="color:#000"; type="text"  name="Login" placeholder="Usuário" onfocus="if (this.value=='Usuário') this.value='';" onblur="if (this.value=='') this.value='Usuário'"id="Usuário:"   maxlength="20" size="25" class="figurasemail" /></td> 

      
      </td>
    </tr><br>
    <tr>
     
      <td align="center" colspan="3"><label for="Senha:"></label>
      <input style="color:#000" type="password" name="Senha:" placeholder="Senha"  onfocus="if (this.value=='Senha') this.value='';" onblur="if (this.value=='') this.value='Senha'"id="Senha:"   maxlength="8" size="25" class="figurassenha"  /></form></td>
      
    </tr>
    <br />
    <tr>
      <td height="65" colspan="4" align="center" valign="bottom"><br />
      
      <input type = "submit" name = "nome" value = "Entrar" p style = "color: black; cursor: pointer; background-color: white; font-size: 20px; font-weight: bold; width: 200; height: 145; font-family: verdana; border: 1px dotted #000000;"/>
<div id="menu">
    <ul>
    <li><a  href="index.php">Ir para o site</a></li>
    </ul>
    
</div>
      
    </tr>
  
</td>
   
    </tr>
  
</table>


    </div>
    </center>

</body>
</html>

 

 

E em outra pagina já do painel eu tenho uma área que gostaria de colocar o usuário conforme código abaixo.

 

 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                          <span class="hidden-xs">          <!--Aparecer o nome do usuário logado??? -->      </span>
            </a>

 

Desde já agradeço a compreenção e ajuda de todos.

  • Moderador
Postado

@Marcelo Mousinho  Basta colocar um:

 

echo $_SESSION['MM_Username'];

No elemento span.

 

Vai aparecer o nome de usuário. Se quiser colocar o nome da pessoa, aí você precisa adicionar mais uma linha colocando o nome dele em uma sessão:

assim:

 

$_SESSION['nome_usuario'] = $nome;

Onde este $nome,  traz o nome dele na consulta do:  $LoginRS__query=sprintf()

 

Recomendo pela minha experiência, você mudar o código todo para a nova extensão MySQLi.

 

  • Moderador
Postado

@Marcelo Mousinho Não sei qual o programa de servidor local que usa, eu costumo usar o EasyPHP DEV server 17.  Nele, o mysqli  vem habilitado por padrão. 

 

Para trocar para mysqli, você vai ter que alterar quase todas as funções que você usa.

 

Por exemplo a conexão você faz:

$conexao = mysqli_connect("localhost", "usuario","senha","nome do banco de dados")

aí depois você usa o mysqli_query(),   mysqli_fetch_object()... e por aí vai.

 

 

 Sobre a sua sessão, se não printou em tela o valor da sessão é porque ela não foi armazenada. 

Olhando para seu código, eu vejo um padrão quando desenvolvido pelo Dreamweaver.  você usa ele? Se sim, recomendo fortemente parar de usar. Ele deixa o código muito sujo... depois você gasta tempo tirando o que não quer e se der problema é muita coisa para analisar.

 

Use uma ide como o eclipse for PHP... notepad++...  etc..

  • Curtir 1
  • Moderador
Postado

@Marcelo Mousinho Se for para recomendar um em específico, eu recomendo o Eclipse For php

Na lista da direita, você escolhe se quer a versão 32 bits ou 64 bits.

 

Pelo menos, eu considero muito melhor do que o notpad++! Uso ele desde 2009 e até então não achei outro melhor.

  • Curtir 1
Postado

Obrigado pela ajuda man, consegui resolver a minha questão com a sua ajuda.

adicionado 10 minutos depois

Agora tenho que colocar a foto do usuário do sistema de acordo com o login.

 

Os dados como nome e cargo eu validei conforme abaixo na tela de "validação.php".

 

 

$_SESSION['usuarioNome'] = $resultado['nome'];
    $_SESSION['usuarioImagem'] = $resultado['imagem'];
    $_SESSION['usuarioNivelAcesso'] = $resultado['nivel_acesso_id'];
    $_SESSION['usuarioLogin'] = $resultado['login'];
    $_SESSION['usuarioSenha'] = $resultado['senha'];
    $_SESSION['usuarioCreated'] = $resultado['created'];

 

e no painel puxei desta forma conforme abaixo:

 

<?php    
              echo "Usuário: ".$_SESSION['usuarioNome'];
 ?>

e assim eu fiz com cada  "SESSION" que eu quisesse validar no painel.

 

Agora no meu banco de dados mysql tenho uma foto cadastrada para cada usuário e gostaria de na parte painel colocasse algo tipo uma "echo" com a foto de acordo com o usuário logado, ja tenho tudo proigramado com relação o usuário logado e incusive ja puxa as "SESSION" acima listado, porém estou com essa dúvida.

 

Pergunta: 

Como faço para exibir a foto do usuário?

 

Desde já agradeço.

Em anexo a imagem do que preciso para ilustrar melhor!!!

 

img.png

  • Moderador
Postado

@Marcelo Mousinho Para colocar a foto ali, faça da seguinte forma:

 

Armazene a imagem em uma pasta qualquer no servidor.  No banco de dados, você guarda o nome da imagem junto com a extensão por exemplo  foto.png 

 

Aí quando fazer a consulta dos dados, você busca o nome da imagem e concatena com uma variável com o caminho real da imagem. aí é só colocar o echo dentro de uma tag img...

 

exemplo:

 

ID nome   email               senha     foto
1  fulano [email protected]  teste123  foto.png 

Este seria a sua tabela no banco de dados.

 

Para concatenar seria assim:

$foto = "fotosUsuarios\" . $resultado["foto"];

Aí você põe ele no img:

 

<img src="<?php echo $foto" alt="foto"/>

 

Postado

man consegui exibir a foto mais preciso colocar no tamanho certo com class e alt, pode me ajudar?

 

 <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'"/>'; ?>

 

Este foi o código que usei

adicionado 0 minutos depois

Preciso colocar isso ai 

class="user-image" alt="user image"

  • Moderador
Postado

@Marcelo Mousinho o que impede de colocar a class na tag?  

Basta colocar ali normalmente como se fosse um html.

Já o alt, ou você coloca um fixo direto ou coloca o retorno do nome da imagem via php.

 

 

Postado

Pessoal consegui fazer a inclusão de todos os dados que precisava inclusive a foto, porém a foto não reconhece quando cadastro via sistema apenas reconhece a foto via phpmyadmin.

 

Este é o código que usei!!!

 

<div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Imagem 160 x 160</label>
    <div class="col-sm-10">
      <input type="file" class="image" name="imagem" >
    </div>
  </div>

 

Segue o anexo de como esta saindo a foto do usuário.

Sem título.png

  • Moderador
Postado

@Marcelo Mousinho Pelo que eu vi, a foto não está sendo encontrada.

O fragmento de código de nada adianta.  Você diz que o problema não acontece quando faz diretamente no phpmyadmin. 

Isso ratifica que o problema está no seu código PHP no momento do cadastro.

Possíveis problemas no recebimento da imagem, você não especificou direito o diretório da imagem...  enfim..

 

Só podemos dizer o que está errado se você postar o código completo do cadastro, tanto o formulário html como o código php que recebe os dados do formulário de cadastro( incluindo a foto).

 

Outra coisa, como você está fazendo o cadastro da imagem? inserindo o nome dela em um campo do BD e movendo o arquivo para um diretório??

 

 

 

Postado

Segue o código da tela cadastro_usuario.php.

<?php
session_start();

include('conexao.php');
include('segurança.php');
 
?>


 

<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>SISWEBMM | Cadastro de usuário</title> 
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.7 -->
  <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="dist/css/AdminLTE.min.css">
  <!-- AdminLTE Skins. Choose a skin from the css/skins
       folder instead of downloading all of them to reduce the load. -->
  <link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
  <!-- Morris chart -->
  <link rel="stylesheet" href="bower_components/morris.js/morris.css">
  <!-- jvectormap -->
  <link rel="stylesheet" href="bower_components/jvectormap/jquery-jvectormap.css">
  <!-- Date Picker -->
  <link rel="stylesheet" href="bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css">
  <!-- Daterange picker -->
  <link rel="stylesheet" href="bower_components/bootstrap-daterangepicker/daterangepicker.css">
  <!-- bootstrap wysihtml5 - text editor -->
  <link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
  
   <link rel="icon" href="imagens/icones/4533Logo MM Transportes sem fundo.ico">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->

  <!-- Google Font -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body class="hold-transition skin-blue sidebar-mini">

      
<div class="wrapper">

  <header class="main-header">
    <!-- Logo -->
    <a href="painel.php" class="logo">
      <!-- mini logo for sidebar mini 50x50 pixels -->
      <span class="logo-mini"><b>MM</b></span>
      <!-- logo for regular state and mobile devices -->
      <span class="logo-lg"><b>SISWEB</b>MM</span>
    </a>
    <!-- Header Navbar: style can be found in header.less -->
    <nav class="navbar navbar-static-top">
      <!-- Sidebar toggle button-->
      <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
        <span class="sr-only">Toggle navegação</span>
      </a>

      <div class="navbar-custom-menu">
        <ul class="nav navbar-nav">
          <!-- Messages: style can be found in dropdown.less-->
          <li class="dropdown messages-menu">
            <a href="http://mmtransportesseguro.com.br/webmail" target="_blank">
              <i class="fa fa-envelope-o"> Acessar Webmail</i>
             
            </a>
            
          </li>
          
        
          <!-- User Account: style can be found in dropdown.less -->
          <li class="dropdown user user-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
             
             <!-- <img src="colocar a imagem" class="user-image"   /> -->
             
             <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="user-image" alt="User Image"/>'; ?>
                
            
              <span class="hidden-xs"><?php
          
        
              
              echo "Usuário: ".$_SESSION['usuarioNome'];
             
          
          
                  ?></span>
            </a>
            <ul class="dropdown-menu">
              <!-- User image -->
              <li class="user-header">
               
               
                <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="img-circle" alt="User Image"/>'; ?>

               
                <p><span>
                 <?php echo "Cargo: ".$_SESSION['usuarioCargo'];
              ?></span>
                  
                  <small><?php echo "Membro desde: ".$_SESSION['usuarioCreated'];
              ?></small>
                </p>
                
              </li>
              <!-- Menu Body -->
              
              <!-- Menu Footer-->
              <li class="user-footer">
                <div class="pull-left">
                  <a href="#" class="btn btn-default btn-flat">Perfil</a>
                </div>
                <div class="pull-right">
                  <a href="loginsistema.php" class="btn btn-default btn-flat">Sair</a>
                </div>
              </li>
            </ul>
          </li>
          <!-- Control Sidebar Toggle Button -->
          <li>
            
        </ul>
      </div>
    </nav>
    
    
    
  </header>
  <!-- Left side column. contains the logo and sidebar -->
  <aside class="main-sidebar">
    <!-- sidebar: style can be found in sidebar.less -->
    <section class="sidebar">
      <!-- Sidebar user panel -->
      <div class="user-panel">
        <div class="pull-left image">
         
         <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="img-circle" alt="User Image"/>'; ?>
          
        </div>
        <div class="pull-left info">
         
          <p> <?php echo "Olá ".$_SESSION['usuarioNome'];
              ?>
          </p>
          <a href="#"><i class="fa fa-circle text-success"></i> Online</a>
        </div>
      </div>
     
      
      <!-- sidebar menu: : style can be found in sidebar.less -->
      <ul class="sidebar-menu" data-widget="tree">
        <li class="header">Menu de navegação</li>
        <li class="active treeview">
          <a href="#">
            <i class="fa fa-dashboard"></i> <span>Paineis</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
             <li class="active"><a href="painel.php"><i class="fa fa-circle-o"></i> Painel perfil 1</a></li>
            
          </ul>
        </li>
        
       <li class="treeview">
          <a href="#">
            <i class="fa fa-edit"></i> <span>Cadastros</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li><a href="cadastro_usuario.php"><i class="fa fa-circle-o"></i> Usuário</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Clientes</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Fornecedores</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Veículos</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Centro de Custo</a></li>
           </ul>
        </li>

        <li class="treeview">
          <a href="#">
            <i class="fa fa-table"></i> <span>Consultas</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li><a href="consulta_usuario.php"><i class="fa fa-circle-o"></i> Usuários</a></li>
            <li><a href="pages/tables/data.html"><i class="fa fa-circle-o"></i> Veículos</a></li>
          </ul>
        </li>

        <li class="header">Rótulos</li>
        <li><a href="#"><i class="fa fa-circle-o text-red"></i> <span>Importante</span></a></li>
        <li><a href="#"><i class="fa fa-circle-o text-yellow"></i> <span>Aviso</span></a></li>
        <li><a href="#"><i class="fa fa-circle-o text-aqua"></i> <span>Informações</span></a></li>
      </ul>
    </section>
    <!-- /.sidebar -->
  </aside>


  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Cadastros
        <small>Cadastro de usuário</small>
        
      </h1>
      <ol class="breadcrumb">
        <li><a href="#"><i class="fa fa-dashboard"></i> Inicio</a></li>
        <li class="active">Painel</li>
      </ol>
    </section>

    <!-- Main content -->
    <section class="content">
     
                
                <!-- Colocar aqui o conteudo da pagina -->
                
             <form class="form-horizontal" method="post" action="Processa/processa_cad_usuario.php">;
             
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Nome</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="nome" placeholder="Nome Completo" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" name="email" placeholder="Email" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Cargo</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="cargo" placeholder="Cargo" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Imagem 160 x 160</label>
    <div class="col-sm-10">
      <input type="file" class="image" name="imagem" >
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">login</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="login" placeholder="Usuário" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Senha</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" name="senha" placeholder="Senha" maxlength="8" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Nível de Acesso</label>
    <div class="col-sm-10">
      <select class="form-control" name="nivel_acesso_id" required>
  <option value="1"></option>    
  <option value="1">Administrador</option>
  <option value="2">Colabores</option>
  
</select>
      
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Data de Cadastro</label>
    <div class="col-sm-10">
      <input type="date" class="form-control" name="created" placeholder="Data de Cadastro" required="required">
    </div>
  </div>


  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-primary">Cadastrar</button>
    </div>
  </div>
</form>
                
 
        </section>

        <!-- right col -->
      </div>
      <!-- /.row (main row) -->

    <!-- /.content -->

  <!-- /.content-wrapper -->
  <footer class="main-footer">
    <div class="pull-right hidden-xs">
      <b>Versão</b> 2.4.0
    </div>
    <strong>Copyright © 2017-2018 <a href="https://adminlte.io">MM Transportes</a>.</strong> Todos os direitos reservados.
  </footer>

  <!-- Control Sidebar -->
 
  <!-- /.control-sidebar -->
  <!-- Add the sidebar's background. This div must be placed
       immediately after the control sidebar -->
  <div class="control-sidebar-bg"></div>
<!-- ./wrapper -->

<!-- jQuery 3 -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<!-- jQuery UI 1.11.4 -->
<script src="bower_components/jquery-ui/jquery-ui.min.js"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
  $.widget.bridge('uibutton', $.ui.button);
</script>
<!-- Bootstrap 3.3.7 -->
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- Morris.js charts -->
<script src="bower_components/raphael/raphael.min.js"></script>
<script src="bower_components/morris.js/morris.min.js"></script>
<!-- Sparkline -->
<script src="bower_components/jquery-sparkline/dist/jquery.sparkline.min.js"></script>
<!-- jvectormap -->
<script src="plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script>
<script src="plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script>
<!-- jQuery Knob Chart -->
<script src="bower_components/jquery-knob/dist/jquery.knob.min.js"></script>
<!-- daterangepicker -->
<script src="bower_components/moment/min/moment.min.js"></script>
<script src="bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
<!-- datepicker -->
<script src="bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
<!-- Bootstrap WYSIHTML5 -->
<script src="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script>
<!-- Slimscroll -->
<script src="bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="bower_components/fastclick/lib/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
<script src="dist/js/pages/dashboard.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="dist/js/demo.js"></script>
</body>
</html>



Segue o código da conexao.php.



<?php


$servidor='localhost';
$usuario='root';
$senha='vertrigo';
$bancodedados='loginsiswebmm';


$conectar = mysqli_connect ($servidor, $usuario, $senha, $bancodedados);

if (mysqli_connect_errno())
{
    die ('Houve o seguinte erro:' .mysqli_connect_errno());
    exit();
    
}


?>

Segue o código do valida_login.php.


 

<?php
session_start();
$usuariot = $_POST['login'];
$senhat = $_POST['Senha'];

//para evitar SQL injection

$loginSeguro = addslashes($usuariot);
$senhaSegura = addslashes($senhat);


include_once("conexao.php");

$result = mysqli_query($conectar, "SELECT * FROM usuarios WHERE login='$usuariot' AND senha='$senhat' LIMIT 1");

$resultado = mysqli_fetch_assoc($result);

//echo $resultado{'nome'};
if(empty($resultado)){
    
     //Mensagem se Erro
    $_SESSION['loginErro'] = "Usuário ou senha Inválido";
    
    //Manda para página de login
    header("location: loginsistema.php");
    
    
    
}

else {
    
    //Define os valores atribuidos na sessão do usuário

    $_SESSION['usuarioNome'] = $resultado['nome'];
    $_SESSION['usuarioImagem'] = $resultado['imagem'];
    $_SESSION['usuarioNivelAcesso'] = $resultado['nivel_acesso_id'];
    $_SESSION['usuarioLogin'] = $resultado['login'];
    $_SESSION['usuarioSenha'] = $resultado['senha'];
    $_SESSION['usuarioCreated'] = $resultado['created'];
    $_SESSION['usuarioCargo'] = $resultado['cargo'];

    
    if($_SESSION['usuarioNivelAcesso'] == 1){
        
        header("location: painel.php");
    }
    else
    {
        header("location: painel.php");
    }
    
}

?>

 

  • Moderador
Postado

@Marcelo Mousinho Não sei como você guardou a imagem, se foi no banco de dados ou se foi  em uma pasta do servidor.

 

mas experimenta retirar a criptografia da imagem....

 

<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'"

Esta linha.

Postado

Man, Boa tarde fiz uma postagem mais foi apagada porque postei sem o Code.

 

Segue novamente.

 

O erro acredito que é porque não estou guardando minha imagem em nenhuma pasta.

 

Segue o código processa_cad_usuario.php.

 

<?php

session_start();

include_once("../segurança.php");
include_once("../conexao.php");


$nome 				= $_POST["nome"];
$email 				= $_POST["email"];
$cargo 				= $_POST["cargo"];
$arquivo 			= $_FILES["arquivo"]['name'];	
$login 				= $_POST["login"];
$senha 				= $_POST["senha"];
$nivel_acesso_id 	= $_POST["nivel_acesso_id"];
$created 			= $_POST["created"];

$_UP['pasta'] = '../imagens/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('jpg', 'png', 'gif');
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
  die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['error']]);
  exit; // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
  echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
  exit;
}
// Faz a verificação do tamanho do arquivo
if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
  echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
  exit;
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
  // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
  $nome_final = md5(time()).'.jpg';
} else {
  // Mantém o nome original do arquivo
  $nome_final = $_FILES['arquivo']['name'];
}
  
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
  // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
  echo "Upload efetuado com sucesso!";
  echo '<a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
} else {
  // Não foi possível fazer o upload, provavelmente a pasta está incorreta
  echo "Não foi possível enviar o arquivo, tente novamente";
}


$query = mysqli_query($conectar, "INSERT INTO usuarios (nome, email, cargo, imagem, login, senha, nivel_acesso_id, created) VALUES ('$nome', '$email', '$cargo', '$imagem', '$login', '$senha	', '$nivel_acesso_id', '$created') ") or die ("houve erro ao gravar dados");

	if (mysqli_affected_rows($conectar) != 0 ) {
		
	header("location: ../consulta_usuario.php");
	}

?>

Segue o código cadastro_usuario.php



<?php
session_start();

include('conexao.php');
include('segurança.php');
 
?>


<!DOCTYPE html>



<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>SISWEBMM | Cadastro de usuário</title> 
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.7 -->
  <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="dist/css/AdminLTE.min.css">
  <!-- AdminLTE Skins. Choose a skin from the css/skins
       folder instead of downloading all of them to reduce the load. -->
  <link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
  <!-- Morris chart -->
  <link rel="stylesheet" href="bower_components/morris.js/morris.css">
  <!-- jvectormap -->
  <link rel="stylesheet" href="bower_components/jvectormap/jquery-jvectormap.css">
  <!-- Date Picker -->
  <link rel="stylesheet" href="bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css">
  <!-- Daterange picker -->
  <link rel="stylesheet" href="bower_components/bootstrap-daterangepicker/daterangepicker.css">
  <!-- bootstrap wysihtml5 - text editor -->
  <link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
  
   <link rel="icon" href="imagens/icones/4533Logo MM Transportes sem fundo.ico">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->

  <!-- Google Font -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body class="hold-transition skin-blue sidebar-mini">

  	
<div class="wrapper">

  <header class="main-header">
    <!-- Logo -->
    <a href="painel.php" class="logo">
      <!-- mini logo for sidebar mini 50x50 pixels -->
      <span class="logo-mini"><b>MM</b></span>
      <!-- logo for regular state and mobile devices -->
      <span class="logo-lg"><b>SISWEB</b>MM</span>
    </a>
    <!-- Header Navbar: style can be found in header.less -->
    <nav class="navbar navbar-static-top">
      <!-- Sidebar toggle button-->
      <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
        <span class="sr-only">Toggle navegação</span>
      </a>

      <div class="navbar-custom-menu">
        <ul class="nav navbar-nav">
          <!-- Messages: style can be found in dropdown.less-->
          <li class="dropdown messages-menu">
            <a href="http://mmtransportesseguro.com.br/webmail" target="_blank">
              <i class="fa fa-envelope-o"> Acessar Webmail</i>
             
            </a>
            
          </li>
          
        
          <!-- User Account: style can be found in dropdown.less -->
          <li class="dropdown user user-menu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
             
             <!-- <img src="colocar a imagem" class="user-image"   /> -->
             
             <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="user-image" alt="User Image"/>'; ?>
				
			
              <span class="hidden-xs"><?php
		  
		
			  
			  echo "Usuário: ".$_SESSION['usuarioNome'];
			 
		  
		  
				  ?></span>
            </a>
            <ul class="dropdown-menu">
              <!-- User image -->
              <li class="user-header">
               
               
                <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="img-circle" alt="User Image"/>'; ?>

               
                <p><span>
                 <?php echo "Cargo: ".$_SESSION['usuarioCargo'];
			  ?></span>
                  
                  <small><?php echo "Membro desde: ".$_SESSION['usuarioCreated'];
			  ?></small>
                </p>
                
              </li>
              <!-- Menu Body -->
              
              <!-- Menu Footer-->
              <li class="user-footer">
                <div class="pull-left">
                  <a href="#" class="btn btn-default btn-flat">Perfil</a>
                </div>
                <div class="pull-right">
                  <a href="loginsistema.php" class="btn btn-default btn-flat">Sair</a>
                </div>
              </li>
            </ul>
          </li>
          <!-- Control Sidebar Toggle Button -->
          <li>
            
        </ul>
      </div>
    </nav>
    
    
    
  </header>
  <!-- Left side column. contains the logo and sidebar -->
  <aside class="main-sidebar">
    <!-- sidebar: style can be found in sidebar.less -->
    <section class="sidebar">
      <!-- Sidebar user panel -->
      <div class="user-panel">
        <div class="pull-left image">
         
         <?php echo '<img src="data:image/png; base64,'.base64_encode($_SESSION['usuarioImagem']).'" class="img-circle" alt="User Image"/>'; ?>
          
        </div>
        <div class="pull-left info">
         
          <p> <?php echo "Olá ".$_SESSION['usuarioNome'];
			  ?>
      	</p>
          <a href="#"><i class="fa fa-circle text-success"></i> Online</a>
        </div>
      </div>
     
      
      <!-- sidebar menu: : style can be found in sidebar.less -->
      <ul class="sidebar-menu" data-widget="tree">
        <li class="header">Menu de navegação</li>
        <li class="active treeview">
          <a href="#">
            <i class="fa fa-dashboard"></i> <span>Paineis</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
             <li class="active"><a href="painel.php"><i class="fa fa-circle-o"></i> Painel perfil 1</a></li>
            
          </ul>
        </li>
        
       <li class="treeview">
          <a href="#">
            <i class="fa fa-edit"></i> <span>Cadastros</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li><a href="cadastro_usuario.php"><i class="fa fa-circle-o"></i> Usuário</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Clientes</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Fornecedores</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Veículos</a></li>
            <li><a href="#"><i class="fa fa-circle-o"></i> Centro de Custo</a></li>
		   </ul>
        </li>

        <li class="treeview">
          <a href="#">
            <i class="fa fa-table"></i> <span>Consultas</span>
            <span class="pull-right-container">
              <i class="fa fa-angle-left pull-right"></i>
            </span>
          </a>
          <ul class="treeview-menu">
            <li><a href="consulta_usuario.php"><i class="fa fa-circle-o"></i> Usuários</a></li>
            <li><a href="pages/tables/data.html"><i class="fa fa-circle-o"></i> Veículos</a></li>
          </ul>
        </li>

        <li class="header">Rótulos</li>
        <li><a href="#"><i class="fa fa-circle-o text-red"></i> <span>Importante</span></a></li>
        <li><a href="#"><i class="fa fa-circle-o text-yellow"></i> <span>Aviso</span></a></li>
        <li><a href="#"><i class="fa fa-circle-o text-aqua"></i> <span>Informações</span></a></li>
      </ul>
    </section>
    <!-- /.sidebar -->
  </aside>


  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Cadastros
        <small>Cadastro de usuário</small>
        
      </h1>
      <ol class="breadcrumb">
        <li><a href="#"><i class="fa fa-dashboard"></i> Inicio</a></li>
        <li class="active">Painel</li>
      </ol>
    </section>

    <!-- Main content -->
    <section class="content">
     
                
                <!-- Colocar aqui o conteudo da pagina -->
                
             <form class="form-horizontal" method="post" action="Processa/processa_cad_usuario.php">;
             
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Nome</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="nome" placeholder="Nome Completo" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" name="email" placeholder="Email" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Cargo</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="cargo" placeholder="Cargo" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Imagem 160 x 160</label>
    <div class="col-sm-10">
      <input type="file" class="image" name="imagem" >
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">login</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="login" placeholder="Usuário" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Senha</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" name="senha" placeholder="Senha" maxlength="8" required="required">
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Nível de Acesso</label>
    <div class="col-sm-10">
      <select class="form-control" name="nivel_acesso_id" required>
  <option value="1"></option>    
  <option value="1">Administrador</option>
  <option value="2">Colabores</option>
  
</select>
      
    </div>
  </div>
  
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Data de Cadastro</label>
    <div class="col-sm-10">
      <input type="date" class="form-control" name="created" placeholder="Data de Cadastro" required="required">
    </div>
  </div>


  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-primary">Cadastrar</button>
    </div>
  </div>
</form>
                
 
        </section>

        <!-- right col -->
      </div>
      <!-- /.row (main row) -->

    <!-- /.content -->

  <!-- /.content-wrapper -->
  <footer class="main-footer">
    <div class="pull-right hidden-xs">
      <b>Versão</b> 2.4.0
    </div>
    <strong>Copyright &copy; 2017-2018 <a href="https://adminlte.io">MM Transportes</a>.</strong> Todos os direitos reservados.
  </footer>

  <!-- Control Sidebar -->
 
  <!-- /.control-sidebar -->
  <!-- Add the sidebar's background. This div must be placed
       immediately after the control sidebar -->
  <div class="control-sidebar-bg"></div>
<!-- ./wrapper -->

<!-- jQuery 3 -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<!-- jQuery UI 1.11.4 -->
<script src="bower_components/jquery-ui/jquery-ui.min.js"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
  $.widget.bridge('uibutton', $.ui.button);
</script>
<!-- Bootstrap 3.3.7 -->
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- Morris.js charts -->
<script src="bower_components/raphael/raphael.min.js"></script>
<script src="bower_components/morris.js/morris.min.js"></script>
<!-- Sparkline -->
<script src="bower_components/jquery-sparkline/dist/jquery.sparkline.min.js"></script>
<!-- jvectormap -->
<script src="plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script>
<script src="plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script>
<!-- jQuery Knob Chart -->
<script src="bower_components/jquery-knob/dist/jquery.knob.min.js"></script>
<!-- daterangepicker -->
<script src="bower_components/moment/min/moment.min.js"></script>
<script src="bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
<!-- datepicker -->
<script src="bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
<!-- Bootstrap WYSIHTML5 -->
<script src="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script>
<!-- Slimscroll -->
<script src="bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="bower_components/fastclick/lib/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
<script src="dist/js/pages/dashboard.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="dist/js/demo.js"></script>
</body>
</html>

Segue o codigo conexao.php.

 

<?php


$servidor='localhost';
$usuario='root';
$senha='vertrigo';
$bancodedados='loginsiswebmm';


$conectar = mysqli_connect ($servidor, $usuario, $senha, $bancodedados);

if (mysqli_connect_errno())
{
	die ('Houve o seguinte erro:' .mysqli_connect_errno());
	exit();
	
}


?>

Segue também em anexo o erro que esta dando.

 

Desde já agradeço.

erros.png

  • Moderador
Postado

@Marcelo Mousinho Provavelmente você não informou ao  elemento FORM que você está enviando um arquivo  também.

 

Adicione esta linha no form:  enctype="multipart/form-data"

 

Desta forma:

<form action="/home/uploadfiles" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" />
    <input type="submit" name="submit" value="Submit" />
</form>

Se você não informa que vai emitir um arquivo,  no php o comando:  $_FILE[]  não recebe o arquivo.

adicionado 2 minutos depois

Além disso não é só simplesmente fazer o upload.  Você deve pegar o nome final do arquivo( não o temp) e registrar em um campo no banco de dados.

 

Assim, quando for fazer o select dos dados e da imagem,  você traz do banco o nome do arquivo por exemplo foto.jpg   e insere no src .

 

Por isso, altere também a linha que mencionei onde você coloca uma imagem criptografada. 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!