Jump to content
Philippe Luis

Session não esta gravando dados dinamicos [urgente]

Recommended Posts

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. 

 

Share this post


Link to post
Share on other sites

Tá bem difícil de adivinhar o que pode ser.
Mostre-nos o arquivo onde a sessão deveria ser gravada.

Share this post


Link to post
Share on other sites

Olá galera boa noite Desculpa a demora, devido as chuvas estava sem internet.

O negócio é o seguinte. Testei meu código e esta tudo certo.

Fiz uma página teste fazendo requisição ajax e coloquei dentro da pasta onde esta a minha api  (lembrando que é em um dominio diferente da minha aplicação) e ta dando tudo certo ocorrendo certo.

Fiz uma outra pagina teste e coloquei e acessei via url fazendo requisição direto e deu tudo certo.

Apenas quando faço a requisição via dominio diferente e tento usar a sessão não funciona

 

Share this post


Link to post
Share on other sites

Galera fiz um teste agora pouco onde cada requisição esta mostrando o id da sessão.

Cada requisição que eu faço via para minha api cria-se um novo id para sessão.

Como consertar isso?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • 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 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 .
       

    • 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.