Problema com session no umbutu (cookies)

1. Problema com session no umbutu (cookies)

Rafael Winter Felipe
winter1201

(usa Ubuntu)

Enviado em 06/05/2024 - 14:54h

Olá amigos, sou novo no linux, sempre utilizei windows, , estou fazendo um site que irá para produção, resolvi fazer o login utilizando session, de inicio, funcionava perfeitamente, mas, recentemente, tenho tido esse problema com o cookie não sendo salvo. resolvi então procurar em alguns forum alguma solução, utilizei o ob_start(), configurando o php.ini, mas, ainda ocorre o erro, alterei o session_path para /tmp mas tbm n resolveu, eu n sei oq poderia ser, utilizando o windows o site funciona normal, o que indica ser o meu pc
Obs, o windows é meu pc pessoal, o linux é o de empresa, então, não posso/não quero utilizar o pc pessoal para programar, segue um teste que fiz e retorna o else "Não há dados de sessão."
index.php:
<?php
session_start();
ob_start();


$_SESSION['user'] = 'test';
$_SESSION['password'] = '1234';

echo '<a href="teste.php">link</a>';
?>


outroarquivo.php:

<?php
session_start();
ob_start();

if (isset($_SESSION['user']) && isset($_SESSION['password'])) {
echo "<pre>";
echo "Usuário: " . $_SESSION['user'] . "<br>";
echo "Senha: " . $_SESSION['password'] . "<br>";
echo '<a href="index.php">Voltar</a>';
echo "</pre>";
} else {
echo "Não há dados de sessão.<br>";
echo '<a href="index.php">Voltar</a>';
}
?>



  


2. Re: Problema com session no umbutu (cookies)

Buckminster
Buckminster

(usa Debian)

Enviado em 07/05/2024 - 17:31h

Como tu sabe que os cookies não estão sendo salvos?
Nos warnings e/ou errors do PHP acusa alguma coisa?
A variável display_errors está como On?
Session é uma coisa, cookies são outra coisa.
Tu pode usar session e cookies ou somente um ou somente outro.
Session é armazenada no servidor, cookies geralmente são armazenados no cliente.

ob_start ativa o buffer de saída, ou seja, toda e qualquer saída do script/arquivo php ficará num buffer interno que você deverá chamar.
Tem pouco ou nada a ver com sessions.
https://www.php.net/manual/en/function.ob-start.php

Verifique essas variáveis no php.ini:
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cache_expire = 30

php.net/manual/pt_BR/session.examples.basic.php


E teu código de teste sempre retornará "Não há dados na sessão", pois os dados estão vindo de onde?
No form você está chamando na action esse outroarquivo.php (action="../outroarquivo.php")?

Caso você quer testar se a sessão está funcionando, acrescente session_status, session_name e session_id, veja abaixo:

<?php
session_start();
//ob_start();

$sessao = session_status() . "<br>";
echo $sessao;
$secao = session_name() . "<br>";
echo $secao;
$sesao = session_id() . "<br>";
echo $sesao;
$_SESSION['user'] = 'test';
$_SESSION['password'] = '1234';

if (isset($_SESSION['user']) && isset($_SESSION['password'])) {
echo "<pre>";
echo "Usuário: " . $_SESSION['user'] . "<br>";
echo "Senha: " . $_SESSION['password'] . "<br>";
echo '<a href="index.php">Voltar</a>';
echo "</pre>";
} else {
echo "Não há dados de sessão.<br>";
echo '<a href="index.php">Voltar</a>';
}
?>

_DISABLED = 0
_NONE = 1
_ACTIVE = 2

No caso deverá dar 2 (sessão ativa).

Veja a saída aqui:
2
PHPSESSID
9te30nrcb2b6rtapposrhrnav2
Usuário: test
Senha: 1234
Voltar

_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts