Ir para conteúdo
Philippe Luis

erro session php. Ajuda!

Recommended Posts

Galera boa noite.

Bom tenho um sistema em php onde uso sessions.

Bom quando acesso meu site através do pc cria se uma session na pasta  /tmp no meu servidor, bom até ai tranquilo.

Mais quando acesso o mesmo site pelo meu Smartphone, cria-se 4 arquivos de sessoes no minha pasta /tmp.

Isso é um erro ou é comum acontecer ? Se for um erro como posso resolver?

 

A foto a seguir mostra o ocorrido. Lembrando que nesse momento da foto só declarei apenas uma sessão .

 

image.thumb.png.3ca5b6f9bc2973c3ef82e67588ec35cc.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade deve ter algo errado ou antes de inserir a session ou dentro da formatação, eu não sei muita coisa, mais do que eu aprendi até o momento isso deve ser um erro de configuração de sua session

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por 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>"); } ?>
    • Por 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. 
       
    • Por 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'; } }

    • Por ghlevin
      Estou precisando fazer um refresh automático em algumas páginas do site de um cliente. Porém, esse refresh precisa acontecer apenas UMA vez.
      Eu sei que daria pra eu colocar a meta tag abaixo, por exemplo:
      <meta content="3;url=http://www.meusite.com.br/index.php" http-equiv="Refresh" /> Mas aí ela atualizaria sempre a cada 3 segundos. E eu queria que atualizasse só uma vez. Como dá pra fazer isso? Com uso de SESSION, COOKIE ou alguma outra coisa?
    • Por Daniel D.B
      Galera me ajudem pelo amor de Deus, eu preciso retornar o Nome completo do usuario e só consigo passar por método get o id dele então eu tenho 
      uma pag login.php 
        <form  method="POST" action="br.com.appvoice.control.validaUsuario/ValidaUsuarios.php">

              <input type="text" name="email" id="email"/>

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

                  <input type="submit" name="botao" value="Login" class="login">
            que envia meus dados para ValidaUsuarios.php :
      VALIDAUSUARIOS.PHP
      <?php
      require'../br.com.appvoice.classe.usuario/Usuario.php';
      require'../br.com.appvoice.validausuario/ValidaUsuario.php';
      try
      {
          $usuario = new Usuario();
          $validausuario = new ValidaUsuario();
          $usuario->setemail($_POST['email']);
          $usuario->setsenha($_POST['senha']);
          $validausuario->validaUsuarios($usuario);
      } ela busca minha classe usuário  e a minha ValidaUsuario
      VALIDA USUARIO:
       
      <?php
      session_start();
      $usuario = $_POST['email'];
      $senha = $_POST['senha'];
      /*$nomecompleto = $_POST['nomecompleto'];*/
      require '../br.com.appvoice.connectionfactory/ConnectionFactory.php';
      class ValidaUsuario
      {
          private $conexao;
          private $porta;
          public function __construct()
          {
              $this->conexao = new ConnectionFactory();
              $this->porta = $this->conexao->getInstance();
          }
          public function validaUsuarios($usuario)    {
              
          try        
          {
              $stmt = $this->porta->prepare("select * from registro_usuario where email =?");
                  
              $stmt->bindValue(1,$usuario->getemail());
              $stmt->execute();
              if
                  ($stmt->fetch(PDO::FETCH_ASSOC)) {
              try      
              {
                  $stmt = $this->porta->prepare("select * from registro_usuario where email = ? and senha = ?");
                  $stmt->bindValue(1,$usuario->getemail());
                  $stmt->bindValue(2,$usuario->getsenha());
                  $stmt->execute();
                  if($linha = $stmt->fetch(PDO::FETCH_ASSOC))
              try
              {    
                  $stmt = $this->porta->prepare("select NomeCompleto from registro_usuario where email =?");
                  $stmt->bindValue(1,$usuario->getemail());
                
                  $stmt->execute();
                  if($linha = $stmt->fetch(PDO::FETCH_ASSOC))
                  {
       echo "<script>location.href='../controls/ValidaAcesso.php?login=".$usuario->getemail(),$senha->getsenha(). "  '</script>";
                  }
                  else 
                  {
                      echo "Nome Completo do Usuário é inválido!";
                  }
              }  e dai para validaAcesso :
      VALIDA ACESSO:
      session_start();
      $_SESSION['Usuario']=$_GET['login'];
      header('Location:../Produtos.php');
      quando eu finalmente chego em produtos.php 
      eu dou o echo na session e ele me traz só o email e se eu quiser a senha pq to passando isso acho que aqui :
      "<script>location.href='../controls/ValidaAcesso.php?login=".$usuario->getemail(),$senha->getsenha(). "  '</script>";
      fica assim 
      PRODUTO.PHP
       <?php session_start();
         
              echo $_SESSION['Usuario'];  mas daí só mostra  meu email 
       
      COMO EU FAÇO PRA MOSTRAR O NOME DO USUARIO? ja vi que tenho q usar o fetch mas em qual página?
             
          ?>
×

Informação importante

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