Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By MateusDuarte
      Preciso de um Help.
      Eu tenho um sistema e nele os usuários precisam fazer login para acessar, os usuarios se logan, a SESSION é armazenada bonitinha, passa pela verificação de que está logado e até retorna o valor da SESSION. Porem se eu fechar o navegador e abrir de novo, ele pede para se logar de novo.
      Como faço para armazenar essa SESSION apenas uma vez? Tipo o facebook, você se loga 1 vez, e quando fecha e abre de novo ele sabe que você tem permissão naquele PC.
    • By studdiox
      Galera estou com um problema com session start ...
       
      houve atualização na versão do php no servidor de hospedagem caindo fora alguns argumentos estou tentando com uma nova versão
       
      passada por indicação de um colega aqui do forum washalbano
      que já me quebrou uma baita galho eliminando o primeiro erro do argumento extinguido da versão do php ( session_is_registered  )
      mas agora ele não quer logar se alguém puder dar uma mãozinha vou postar os códigos abaixo do formulário de acesso
      log-admin.php e da verificação loga.php
       
      e o erro que retorna a mensagem "Acesso Negado !! Usuário Não Logado"
      vinda do final do código   loga.php  Não aparece nenhum erro apenas  isso e retorna para o formulário de login ( log-admin.php )
       
      //agora a parte que verifica se o login já foi feito // se não há user em $_SESSION if (!isset($_SESSION['nome'])) { // Usuário não logado! Redireciona para a página de login echo '<script>' . 'alert("Acesso Negado !! Usuario Não Logado");' . 'document.location="log-admin.php";' . '</script>';  
       
       
      log-admin.php
      <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>: : : PAINEL DE ADMINISTRACAO DO WEBSITE : : :</title> <style type="text/css"> <!-- body, td, th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; } body { background-color: #000000; } a:link { color: #000000; text-decoration: none; } a:visited { color: #000000; text-decoration: none; } a:hover { color: #000000; text-decoration: none; } a:active { color: #000000; text-decoration: none; } --> </style> </head> <body> <?php session_name("user1,user2"); session_start(); ?> <form name="form1" method="post" action="loga.php?acao=logar"> <div align="center"> <p>&nbsp;</p> <p>Painel de Acesso <br> </p> </div> <table width="338" border="0" align="center" cellpadding="4" cellspacing="2"> <tr> <td width="59" bordercolor="#333333" bgcolor="#333333">NOME : </td> <td width="239" bordercolor="#333333" bgcolor="#333333"> <label> <input name="nome" type="text" id="nome" size="35"> </label> </td> </tr> <tr> <td bordercolor="#333333" bgcolor="#333333">SENHA : </td> <td bordercolor="#333333" bgcolor="#333333"> <label> <input name="pwd" type="password" id="pwd" size="35"> </label> </td> </tr> <tr> <td colspan="2" bordercolor="#333333" bgcolor="#333333"> <div align="center"> <label> <input type="submit" name="Submit" value="ENTRAR"> </label> <div align="right"></div> </div> <div align="right"></div> </td> </tr> </table> <div align="center"><br> <br> <br> <br> <br> <br> <label> </label> <a href="deslogar.php">Deslogar</a><br> </div> </form> </body> </html>  
       
      loga.php
      <?php // Turn off all error reporting error_reporting(0); // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings ...) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors error_reporting(E_ALL); // Same as error_reporting(E_ALL); ini_set('error_reporting', E_ALL); ini_set("display_errors", 1); ?> <?php // variáveis para conexão $host = 'localhost'; // define o host do banco de dados $user = 'root'; // user do banco de dados $password = ''; // senha do banco de dados $database = 'database'; // nome do banco de dados // estabelecer conexão com o mysql $sqli = new mysqli($host, $user, $password); // verificar se houve erro na conexão if ($sqli->connect_error) { // se houve erro, mostra erro na tela echo "<p>Erro ao Conectar: $sqli->connect_error</p>"; } // alterar o tipo de codificação da conexão com o banco de dados, para utf8 if (!$sqli->set_charset('utf8')) { echo "<p class='error'>O charset não é utf8: $sqli->error</p>"; } // selecionar/abrir o banco de dados para trabalhar if (!$sqli->select_db($database)) { // se o banco de dados não for encontrado echo "<p class='error'>Banco de dados não encontrado, chefe!</p>"; } // arquivo de verificar o login session_name('user1,user2'); session_start(); if (isset($_POST['acao']) && $_POST['acao'] == 'logar') { // trata o nome $nome = $sqli->real_escape_string($_POST['nome']); // define a query de busca $query = "SELECT * FROM sis_login WHERE login='$nome' LIMIT 1"; // executa a query e guarda o resultado em $result $result = $sqli->query($query); // se há algum resultado if ($result->num_rows) { // guarda o resultado em $dados $dados = $result->fetch_assoc(); // verificar se a senha postada é igual a senha retornada if ($_POST['pwd'] == $dados['senha']) { // registra o user na sessão $_SESSION['nome'] = $dados; // redireciona para admin.php header('Location: admin.php'); exit; } // Se a senha não confere else { echo '<script>' . 'alert("Senha Inválida !!");' . 'document.location="log-admin.php";' . '</script>'; } } // Se não há resultados em $result, o Login é inválido else { echo '<script>' . 'alert("Login Inválido !!");' . 'document.location="log-admin.php";' . '</script>'; } } //agora a parte que verifica se o login já foi feito // se não há user em $_SESSION if (!isset($_SESSION['nome'])) { // Usuário não logado! Redireciona para a página de login echo '<script>' . 'alert("Acesso Negado !! Usuario Não Logado");' . 'document.location="log-admin.php";' . '</script>'; } ?>  
    • By studdiox
      Opa galera tudo certinho sou iniciante e a um tempo atrás fiz um sisteminha com session deixei parado e essa semana resolvi usar ele o que para minha surpresa não esta funcionando mais devido a atualização da versão do php na minha hospedagem .... bom se alguém puder me dar uma força ja tentei de tudo mas não consegui meu conhecimento é baixo ainda ....
       
      Erro esta no final do código  teria que substituir if(!session_is_registered("nome")) { 
       
       
      segue o código de verificação completo
      <? session_name("name"); session_start(); if($acao == "logar") { $conn = mysql_connect("mysql.servidor.com.br","user","senha"); //configure os dados do seu MySQL $banco = mysql_select_db("banco"); //coloque o nome do seu banco de dados $nome = $_POST['nome']; $q_user = mysql_query("SELECT * FROM login WHERE login='$nome'"); if(mysql_num_rows($q_user) == 1) { $query = mysql_query("SELECT * FROM login WHERE login='$nome'"); $dados = mysql_fetch_array($query); if($_POST['pwd'] == $dados['senha']) { session_register("nome"); header("Location: admin.php"); exit; } // Senha inválida else { echo("<script>"); echo("alert('Senha Inválida !!');"); echo("document.location='index.php';"); echo("</script>"); } } // Login inválido else { echo("<script>"); echo("alert('Login Inválido !!');"); echo("document.location='index.php';"); echo("</script>"); } } //agora a parte que verifica se o login já foi feito if(!session_is_registered("nome")) { // Usuário não logado! Redireciona para a página de login echo("<script>"); echo("alert('Acesso Negado !!');"); echo("document.location='log-admin.php';"); echo("</script>"); } ?>
    • By Philippe Luis
      Galera, bom dia.
      Bom, tenho uma aplicação aonde salvo o carrinho de compras em uma session.
      Em desenvolvimento local wampserver tudo ocorre tranquilo.
      Subi meus arquivos pra nuvem e criei um subdominio para api (api.meudominio.com.br). HTTPS
      So que oque acontece, quando tento gravar o carrinho na sessão simplesmente não acontece.
      (Sim. Estou usando session_start() antes de declarar a session);
      Alimento minha api via ajax via POST (não sei se tem alguma coisa haver, so informação). Os dados chegam e tudo certo mais só não grava não grava na session. e não me apresenta nenhum erro.
      Verifico pra ver se existe a $_SESSION['cart'] mais não encontro.
      O mais estranho é que se eu declarar uma session no script. Ex: $_SESSION['teste'] = 'valor';   a session é gravada perfeitamente. Apenas não grava dados dinâmicos.
      Estou hospedando no HostGator.
       
      Aplicação toda finalizada e acontece esse erro com prazo de entrega curtíssimo.
      Ajuda ai galera. 
       
    • By Jonas Ribeiro Nascimento
      Estou criando meu próprio mvc php para adquirir mais conhecimento.
      Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
      Fiz um codigo simples pra testar.a.php ----- view a.php
      <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.