• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MROverclock

Sessões e GD

12 mensagens neste tópico

Boas pessoal,

cá estou eu novamente para chatear mais um bocado.

O meu alojamento há tempos teve uns problemas, actualizaram o PHP,  e então nunca mais foi o mesmo  :D

Algumas coisas deixaram de funcionar e tal.

Fiz um pequeno ficheiro simplificado e que consegue fazer de exemplo para o que se passa:

<?php
Header("Content-Type: image/png");
session_start();
$string = $_SESSION['eu'];

$im = ImageCreateTrueColor(100,100);
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0); 

ImageFill($im,0 ,0 ,$white);

ImageString($im, 4, 4, 10, $string, $blach);

ImagePNG($im);
ImageDestroy($im);  

?>

Agora que está aí o codigo o que se passa é o seguinte:

Antes a sessão desaparecia de toda a página e tinha que voltar a fazer um "login" na página etc etc...

depois defeni "session.save_path"

Agora, mesmo depois de correr este código, a sessão já não se perde, mas acontece que este código não apanha os valores da $_session, ou seja, está vazio!

Alguma ideia para o que possa ser?

Eu desconfio que possa ser alguma configuração no servidor... No meu PC funciona tudo sem qualquer problema  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

session_start();

$_SESSION['eu'] = "teste";

Mas se eu, em vez de usar o 'eu' no ficheiro lá de cima, se o usar em outro que não crie uma imagem com o GD nada disso acontece :)

Até porque toda a página é baseada no $_SESSION e tudo funciona.... menos isso  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

talvez a culpa seja dos headers. tenta passar o código que mexe na sessão para antes da parte em que defines o header.

<?php
session_start();
$string = $_SESSION['eu'];
Header("Content-Type: image/png");

$im = ImageCreateTrueColor(100,100);
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0); 

ImageFill($im,0 ,0 ,$white);

ImageString($im, 4, 4, 10, $string, $blach);

ImagePNG($im);
ImageDestroy($im);  

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Duvido que o erro seja esse Battousai... Isso dá algum warning? (fazer ctrl+u no Firefox para ver o que o server devolveu).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não, não dá warning nenhum  :hmm:

eu continuo inclinado para ou uma má confguração do PHP ou de um bug com esta versão :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não, não dá warning nenhum  <- podes ter os warnigns desabilitados... certefica-te que tens a GD activa no teu server de produção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de todo o código, error_reporting(E_ALL); e vê se ainda não devolve nnh erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Como isto é suposto ser uma imagem criada com o php, antes aparecia um quadrado branco (onde era suposto aparecer uma cena escrita), agora com o error_reporting(E_ALL); a imagem não aparece   :hmm:

O GD está enabled, de outra forma julgo que nem o quadrado branco apareceria

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deixo aqui a parte das sessões que aparece com o phpinfo();

Espero que consigam perceber  :bored:

Session Support - enabled 

Registered save handlers - files user 

Registered serializer handlers - php php_binary wddx 

Directive    Local Value      Master Value

session.auto_start Off Off

session.bug_compat_42 On On

session.bug_compat_warn On On

session.cache_expire 180 180

session.cache_limiter nocache nocache

session.cookie_domain no value no value

session.cookie_httponly Off Off

session.cookie_lifetime 0 0

session.cookie_path / /

session.cookie_secure Off Off

session.entropy_file no value no value

session.entropy_length 0 0

session.gc_divisor 100 100

session.gc_maxlifetime 1440 1440

session.gc_probability 1 1

session.hash_bits_per_character 4 4

session.hash_function 0 0

session.name PHPSESSID PHPSESSID

session.referer_check no value no value

session.save_handler files files

session.save_path /home/bikelog/public_html/sess /home/bikelog/public_html/sess

session.serialize_handler php php

session.use_cookies On On

session.use_only_cookies Off Off

session.use_trans_sid 0 0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só naquela acrescenta um var_dump:

<?php
session_start();
$string = $_SESSION['eu'];
var_dump($string);
Header("Content-Type: image/png");
...

EDIT: E mostra aqui o resultado ; )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tarde de mais... apaguei os ficheiros que tinha criado para fazer o teste  :wallbash: :P

copiei o que tinha em backup e aí não estavam tais ficheiros.

Continua tudo na mesma, sem funcionar  :wallbash:

Contudo,experimentei isso do var_dump em outro local para ver o que acontecia:

array(5) { ["user"]=>  string(11) "MrOverclock" ["distancia_ultimos"]=>  array(2) { [5]=>  int(20) [16]=>  int(238) } ["user_id"]=>  string(2) "24" ["expira"]=>  int(1204672389) ["tempo_ultimos"]=>  array(1) { [16]=>  int(43200) } }

Estes valores:

["distancia_ultimos"]=>  array(2) { [5]=>  int(20) [16]=>  int(238) }

era suposto irem parar ao PNG  :(

Só que nada :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora