Nigol 0 Denunciar post Postado Janeiro 21, 2011 Galera estou com uma dificuldade de entender o uso coreto da $_SESSION... no site que estou criando estou tendo que sempre colocar um session_start(); para poder acessar arquivos de minha sessão anterior... isto está correto? ou assim estou abrindo várias sessões ? Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Borsato 0 Denunciar post Postado Janeiro 21, 2011 Está correto, sem ele você não consegue usar o serviço! Compartilhar este post Link para o post Compartilhar em outros sites
Monan Bertoluci 0 Denunciar post Postado Janeiro 21, 2011 Então, a forma como você esta utilizando esta correta. Toda vez que você utiliza o session_start você esta avisando o php que você vai utilizar as funções referentes a esse serviço. Apartir dai você pode manipular os dados na sessão utilizando suas funções sem maiores problemas. Para saber mais sobre sessão, recomendo que você de uma olhada na documentação do php: + informações aqui! Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Janeiro 21, 2011 session_start inicia as funçoes de sessão na pagina ;) Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 21, 2011 Porém session_start() envia cabeçalho, se já houver algum tipo de saída HTML (um espaço que seja), vai dar pau xD E se a sessão já tiver sido iniciada, também ;) Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Janeiro 21, 2011 exato Bruno Augusto ... :clap: bote ela no topo da pagina ... Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Fevereiro 3, 2011 beleza galera... muuito obrgaido pelas explicações. :D Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 3, 2011 No topo de suas páginas adidione: (!session_start()) ? session_start() : false; Verifica se o sessão já foi iniciada, caso contrário, ele inicia. Isso evita erros, de no caso você ter mais de um session ativa. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Fevereiro 4, 2011 No topo de suas páginas adidione: (!session_start()) ? session_start() : false; Verifica se o sessão já foi iniciada, caso contrário, ele inicia. Isso evita erros, de no caso você ter mais de um session ativa. Uhn... A ideia de verificar se a sessão está iniciada antes de fazer é interessante, mas a forma que você utiliza me parece um pouco estranha. session_start() cria uma sessão (ou resume a sessão atual baseada numa id de sessão sendo passada via uma variável GET ou um cookie). Esta função sempre retorna TRUE. http://br.php.net/session_start Então, este trecho de código sempre vai cair no false, mas vai iniciar a sessão (com o !session_start()). Acho que uma forma melhor de fazer isto é verificando se existe $_SESSION. Algo assim: <?php if(!isset($_SESSION)) { session_start(); } Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 4, 2011 Uhn... A ideia de verificar se a sessão está iniciada antes de fazer é interessante, mas a forma que você utiliza me parece um pouco estranha. Estou utilizando o IF simplificado, porém, ao invés de verificar a variável de servidor $_SESSION, eu tentei verificar logo a função, mais realmente só cai no false, melhor utilizar a forma tradicional, a que você sugeriu ;) Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 4, 2011 Não funciona muito bem Alaerte.. veja: <?php (!session_start()) ? session_start() : false; (!session_start()) ? session_start() : false; (!session_start()) ? session_start() : false; (!session_start()) ? session_start() : false; resultado: Notice: A session had already been started - ignoring session_start() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\index.php on line 3 Notice: A session had already been started - ignoring session_start() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\index.php on line 4 Notice: A session had already been started - ignoring session_start() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\index.php on line 5 ou seja, o teu teste: !session_start() faz uma chamada a função, e inicia ela novamente. Possivel que o teu servidor esteja com o nivel de erros 'mal configurado', ai você não vê os Notices. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Fevereiro 4, 2011 Pois, eu testei em um servidor pre-configurado, é que não tava em minha máquina, baixei e instalei pra rodar isso... testei aqui no meu agora, realmente não da certo... a forma correta seria a tradicional mesmo... Compartilhar este post Link para o post Compartilhar em outros sites