+ Responder ao Tópico



  1. #1
    barley3066
    Visitante

    Padrão apache + php - session_start()

    Ola galera, estou com a seguinte situação:

    No código da Intranet tem algumas váriaveis que são passadas de um arquivo para outro usando controle de sessão.

    O que esta acontecendo é que no diretorio /tmp são criados os arquivos sess_ com os id de cada variavel, com os valores corretos, no entanto não transferidos de uma página para outra.

    Achando que o problema era no meu código criei um bem simples apenas para chamada de um outro arquivo recebendo os parametros, mesmo assim sem sucesso.

    Algo bastante interessante esta acontecendo:
    Esse novo código quando o executo pela primeira vez não tranfere os valoes, caso eu dê um F5 ou atualizar a pagina e tentar novamente transferir o valor o controle de sessão começa a funcionar e toda a intranet fica 100%

    Ontem observei que com o tempo para de funcionar, caso eu tb reinicie o servidor tb para de funcionar. Para de funcionar apenas o controle de sessão, o Apache, o modulo PHP são carregados normalmente e a página funciona, apenas alguns códigos que utilizam de sessão ficam operantes. Ate eu executar o código abaixo:
    Minha config: Slackware 10.0 kernel 2.4.26 Apache 2.0.52 PHP 4.3.9
    código arquivo teste.php:
    <?php
    //funcao que apenas escreve o valor recebido e nova linha
    function teste ($i){
    echo $i;
    echo "<br>";
    return $i;
    }
    //Estrutura de repeticao para passar novos valores a funcao
    for ($i=0;$i<=10;$i++){
    $valor = teste($i);
    }
    //sessão
    @ session_start();
    echo "Sessao = ";echo $valor;
    echo "<br>";
    //definido que teste, recebera $valor
    $HTTP_SESSION_VARS['teste']=$valor;
    //chamada a outro arquivo
    echo "<td><a href='teste1.php'>Outro Arquivo</a></td>";
    ?>

    Código do teste1.php

    <?php
    @ session_start();
    $n = $HTTP_SESSION_VARS['teste'];
    echo $n;
    ?>

  2. #2

    Padrão apache + php - session_start()

    bom, vamos aos erros:

    teste.php

    <?php

    //a sessão tem q ser iniciada antes que qualquer dado seja enviado
    //ao navegador (echo, espaços, etc)....

    session_name("nome_da_sessao"); //sempre e bom nomear a sessão

    session_start(); //sem o "@" para caso de erros, vc saiba disso

    //funcao que apenas escreve o valor recebido e nova linha
    function teste ($i){
    echo $i;
    echo "<br>";
    return $i;
    }

    //Estrutura de repeticao para passar novos valores a funcao
    for ($i=0;$i<=10;$i++){
    $valor = teste($i);
    }
    //sessão

    echo "Sessao = ";
    echo $valor;
    echo "<br>";

    //definido que teste, recebera $valor

    //registramos a variavel de sessão "TESTE"

    //caso a váriavel não esteja registrada, iremos registra-la
    if(!session_is_registered("teste")){
    session_register("teste");
    }

    $_SESSION["teste"] = $valor;

    //chamada a outro arquivo

    echo "<td><a href='teste1.php'>Outro Arquivo</a></td>";

    ?>
    teste1.php


    <?php

    session_name("nome_da_sessao");

    session_start();

    if(session_is_registered("teste")){
    echo $_SESSION["teste"];
    }else{
    echo "É necessário acessar o arquivo teste.php antes.";
    }

    ?>



  3. #3