Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 10:45

Eu usava o pacote EasyPHP 1.6, e passei a usar o pacote Xampp 1.6.1 (que foi a versão mais antiga que consegui baixar, e que contém o arquivo que permite utilizar o PHP 4). Após utilizar o Xampp, passou, em face de alguns arquivos que utilizam sessão, a ser exibida a seguinte mensagem:
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Traduzida através do tradutor do Google:
Warning: Unknown (): Seu script confia possivelmente em um side-effect da sessão que exista até PHP 4.2.3. Informamos que a extensão da sessão não considera variáveis globais como fonte de dados, a menos que register_globals está ativado. Você pode desativar essa funcionalidade e este aviso, definindo session.bug_compat_42 session.bug_compat_warn ou para fora, respectivamente. em Unknown on line 0

O que essa mensagem quer dizer?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

12-07-2010 10:53

Pelo que entendi, você está tentando usar um recurso através da session, só que para funcionar, você precisa ativar o register_globals. Ai é informado que você pode desabilitar algumas linhas no arquivo de configuração do Xampp.

Se possível, posta o que está usando.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 11:06

Acho que descobri porquê isso ocorre. Acredito que o Xampp, ou a versão do PHP que ele usa, não utiliza esta forma: echo session_id();, que era aceita pelo EasyPHP, cuja versão do PHP acredito ser anterior à utilizada pelo Xampp. Eu comentei esse echo e o problema desapareceu.

Neste link: http://www.daniweb.com/forums/thread114083.html alguém pede ajuda para situação igual à minha, alguém postou na resposta um código de como se utilizar o echo da session_id, copiei-o, mas ele está bagunçado:
session_start(); $id = $_POST['id']; $_SESSION['id'] = $id; echo $_SESSION['id'];

O que substituiria o echo session_id(); de uma forma mais atual, se for esse problema?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

12-07-2010 14:31

O que uso aqui no php5 é esse

echo session_id();

Nesse código é obtido o ID via POST, transformado em session, depois mostrado.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 15:09

Mas acho que o problema não é com echo session_id(), pois desliguei o computador e o religuei, e o problema persistiu. Acho que é com outra parte do código que tem a ver com a sessão. Aliás, noutros arquivos que possuem echo session_id() o problema não se repete.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 15:29

Na mensagem há referência a estas duas linhas, que são do php.ini:

session.bug_compat_42 = 1 session.bug_compat_warn = 1

E diz que se pode desativar a funcionalidade e o aviso. Eu comentei essas duas linhas mas o problema persistiu. Que se faz alteração no php.ini, tenho de reiniciar o servidor local? (apesar de que o fiz e o problema persistiu). Sobre as linhas citadas, no php.ini, há a seguinte observação:

PHP 4.2 and less have an undocumented feature/bug that allows you to to initialize a session variable in the global scope, albeit register_globals is disabled. PHP 4.3 and later will warn you, if this feature is used. You can disable the feature and the warning separately. At this time, the warning is only displayed, if bug_compat_42 is enabled.


Que, traduzida, diz isto aqui:

PHP 4.2 e menos têm uma característica documentados atributo / bug que permite que você inicializar uma variável de sessão no escopo global, embora register_globals está desativado. PHP 4.3 e posteriores avisarão a você, se esse recurso é usado. Você pode desativar o recurso ea advertência separadamente. Neste momento, o aviso é exibida apenas se bug_compat_42 está habilitado.

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

12-07-2010 16:49

Sim, tem que reiniciar o servidor local para que ative as alterações.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 17:08

No arquivo de login, onde há os campos input de nome de usuário e senha, eu estou recebendo estes valores, quando a página é chamada:
$TipoSessaoID = $_GET['TipoSessaoID']; $TipoSessaoNome = $_GET['TipoSessaoNome'];

Depois, quando o login é feito, eu confronto os mesmos valores, porém a confrontação é feita entre os valores da sessão e os registros no banco de dados, assim:
$_SESSION['TipoSessaoID'] = $a1['TipoSessaoID']; $_SESSION['TipoSessaoNome'] = $a1['TipoSessaoNome'];

Esse problema ocorre quando dou submit, e, por um acaso, o login não é feito, por exemplo, por algum campo inválido.

Se eu comento, anulo, as linhas abaixo, o problema desaparece:
$_SESSION['TipoSessaoID'] = $a1['TipoSessaoID']; $_SESSION['TipoSessaoNome'] = $a1['TipoSessaoNome'];

Mas aí eu não poderei usar os valores que estão na sessão.

Porém, isto aqui eu uso normalmente, sem dar problema:
$_SESSION['AnuncianteID'] = $a1['AnuncianteID']; $_SESSION['codigo_clienteID'] = $a1['codigo_clienteID']; $_SESSION['TipoAnuncioID'] = $a1['TipoAnuncioID']; $_SESSION['TipoAnuncioNome'] = $a1['TipoAnuncioNome']; $_SESSION['NomeAnunciante'] = $a1['NomeAnunciante']; $_SESSION['username'] = $a1['username']; $_SESSION['password'] = $a1['password']; $_SESSION['sessao'] = $a1['sessao']; $_SESSION['LogOn'] = $a1['LogOn']; $_SESSION['LogOut'] = $a1['LogOut'];

0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

12-07-2010 17:14

Complementando: se eu comento as variáveis $TipoSessaoID = $_GET['TipoSessaoID']; e $TipoSessaoNome = $_GET['TipoSessaoNome']; e descomento $_SESSION['TipoSessaoID'] = $a1['TipoSessaoID']; e $_SESSION['TipoSessaoNome'] = $a1['TipoSessaoNome']; o problema também desaparece, mas eu preciso de $TipoSessaoNome = $_GET['TipoSessaoNome']; para exibir o nome da sessão ao usuário.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

12-07-2010 19:46

Não vejo nada que conflita ai, a não ser que você esteja repetindo nome de variáveis ou criando 2 com o mesmo nome.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

13-07-2010 10:53

Está correta essa forma de link, referente aos valores que está enviando?
echo "<a href=\"Entrar.php?TipoSessaoID=$TipoSessaoClienteID&TipoSessaoNome=$TipoSessaoClienteNome\">Entrar</a>";

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

13-07-2010 17:13

A base sim, envia

TipoSessaoID, TipoSessaoClienteID e TipoSessaoNome
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

14-07-2010 14:14

Fiz uma alteração no código, e o problema desapareceu.

Havia esta consulta:
$q1 = "select * from $tabelaanunciante where username = '$PostUsername' and password = '$PostPassword'"; $r1 = mysql_query($q1) or die(mysql_error()); $a1 = mysql_fetch_array($r1); $_SESSION ... $_SESSION['TipoSessaoID'] = $a1['TipoSessaoID']; $_SESSION['TipoSessaoNome'] = $a1['TipoSessaoNome']; $_SESSION...

E fiz isto:
$q1 = "select * from $tabelaanunciante where username = '$PostUsername' and password = '$PostPassword'"; $r1 = mysql_query($q1) or die(mysql_error()); if(mysql_num_rows($r1) == '1') { $a1 = mysql_fetch_array($r1); $_SESSION ... $_SESSION['TipoSessaoID'] = $a1['TipoSessaoID']; $_SESSION['TipoSessaoNome'] = $a1['TipoSessaoNome']; $_SESSION... }

Por quê ter colocado if(mysql_num_rows($r1) == '1') resolveu o problema?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

14-07-2010 15:45

Esse if verifica se o resultado da consulta, ou seja, o número de linhas da query for igual a 1, faz determinada ação. No contexto do seu script eu não entendi o motivo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1308
Sexo: Masculino

mensagem erro sessão xampp

14-07-2010 16:00

Este é o código original em que me baseei. Eu havia tirado aquilo que fez dar o erro:
<? require_once("configuracao_mysql.php"); if(isset($_POST[s1])) { $q1 = "select * from re2_agents where username = '$_POST[us]' and password = '$_POST[ps]' "; $r1 = mysql_query($q1) or die(mysql_error()); if(mysql_num_rows($r1) == '1') { //ok $a1 = mysql_fetch_array($r1); $_SESSION[AgentID] = $a1[AgentID]; $_SESSION[username] = $a1[username]; $_SESSION[MaxOffers] = $a1[offers]; $_SESSION[AccountStatus] = $a1[AccountStatus]; $_SESSION[TipodeConta] = $a1[TipodeConta]; $_SESSION[AccountExpireDate] = $a1[ExpDate]; header("location:index.php"); exit(); } else { $error = "<font face=verdana color=red size=2><b>Nome de usuário ou senha inválidos.</b></font>"; } } //get the templates require_once("includes.php"); require_once("templates/HeaderTemplate.php"); require_once("templates/LoginTemplate.php"); require_once("templates/FooterTemplate.php"); ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

mensagem erro sessão xampp

14-07-2010 16:02

Esse if é válido sim.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado