Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Com $_session


Guest --Guilherme --

Pergunta

Guest --Guilherme --

Bom dia pessoal, estou tentando usar sessions no meu site e não consigo. Com a conexão local funciona, mas quando eu coloco na WEB não. Tenho uma página de login, onde o usuário se autentica e sepois ele é passado para a página session.php onde são criadas as sessions. Até aí tudo bem, ele cria as sessions. Mas quando passa para a página inicial do usuário logado não acha mais. Para passar para a WEB tive que tirar o session_start() de todas as páginas. Ficou assim:

session.php

<?php
if($_SERVER['REQUEST_METHOD']=="POST" && !isset($_SESSION['usuario']) && !isset($_SESSION['senha']))
{
    $_SESSION['usuario'] = $_POST['usuario'];
    $_SESSION['senha'] = $_POST['senha'];
    echo "<script language='JavaScript'>window.location.replace('inicio.php');</script>";
}
?>
inicio.php
if(isset($_SESSION['usuario']) && isset($_SESSION['senha']))
{
    $usuario = $_SESSION['usuario'];
    $senha = $_SESSION['senha'];
...
}
else
    echo"<script language='JavaScript'>window.location.replace('login.php');</script>";

?>

ele sempre volta para a página de login. Existe diferença para se usar session local e na WEB?

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Não existe diferença entre web e localhost (o que pode mudar são as configurações do php.ini) e session_start(); habilita a página a utilizar $_SESSION, sem declarar o session_start(); você até poder colocar lá:

$_SESSION['tal'] = "XXXXXXXXXXXXXX";

Mas o $_SESSION['tal'] não vai ser criado pois você não deu o session_start(); na página...

Sem falar que você também precisa do session_start(); para chamar as sessões ativas...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

ok, mas quando eu coloco o session_start(); aparecem as mensagens:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/fc9ec80/public_html/session.php:8) in /home/fc9ec80/public_html/session.php on line 9

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/fc9ec80/public_html/session.php:8) in /home/fc9ec80/public_html/session.php on line 9

Link para o comentário
Compartilhar em outros sites

  • 0

Você está iniciando a sessão depois de alguma saída para o navegador... inicie ela logo após a tag de abertura do php, ou seja

<?php

session_start();

Lembre-se que se o php estiver em um bloco no meio do HTML você deve iniciar um bloco de php antes do HTML e chamar lá o session_start();

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

Certo, problema das sessions resolvido, muito obrigado.

Agora estoou com outro. Alguém sabe o porquê dessas mensagens na hora de fazer upload das fotos?

Warning: move_uploaded_file [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in /home/fc9ec80/public_html/enviar_fotos.php on line 88

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpUOTlzz' to 'http://www.moradiasweb.com/fotos/admin//001.jpg' in /home/fc9ec80/public_html/enviar_fotos.php on line 88

O código é esse:

$id = $_GET['id'];

if($_SERVER['REQUEST_METHOD']=="POST")
{
// INÍCIO DAS PROPRIEDADES PARA AS FOTOS
$extensoes = array('.gif','.jpg','.jpeg'); // EXTENSÕES VÁLIDAS PARA AS FOTOS
$tam_max = "51200"; // TAMANHO MÁXIMO DE CADA FOTO

// FIM DAS PROPRIEDADES PARA AS FOTOS

// INÍCIO DAS MANIPULAÇÕES PARA AS FOTOS
$foto1 = $_FILES['foto1']['name'];
$foto1 = strtolower($foto1);
$ext1 = strrchr($foto1,'.');
$foto1_temp = $_FILES['foto1']['tmp_name'];
$tam_foto1 = $_FILES['foto1']['size'];

$foto2 = $_FILES['foto2']['name'];
$foto2 = strtolower($foto2);
$ext2 = strrchr($foto2,'.');
$foto2_temp = $_FILES['foto2']['tmp_name'];
$tam_foto2 = $_FILES['foto2']['size'];

$foto3 = $_FILES['foto3']['name'];
$foto3 = strtolower($foto3);
$ext3 = strrchr($foto3,'.');
$foto3_temp = $_FILES['foto3']['tmp_name'];
$tam_foto3 = $_FILES['foto3']['size'];

$foto4 = $_FILES['foto4']['name'];
$foto4 = strtolower($foto4);
$ext4 = strrchr($foto4,'.');
$foto4_temp = $_FILES['foto4']['tmp_name'];
$tam_foto4 = $_FILES['foto4']['size'];

$foto5 = $_FILES['foto5']['name'];
$foto5 = strtolower($foto5);
$ext5 = strrchr($foto5,'.');
$foto5_temp = $_FILES['foto5']['tmp_name'];
$tam_foto5 = $_FILES['foto5']['size'];
// FIM DAS MANIPULAÇÕES PARA AS FOTOS

// INÍCIO DAS VERIFICAÇÕES PARA AS FOTOS E REDIRECIONAMENTO DAS MESMAS
if(in_array($ext1,$extensoes) && ($tam_foto1 < $tam_max))
move_uploaded_file($foto1_temp,"http://www.moradiasweb.com/fotos/".$_SESSION['usuario']."/".$id."/".$foto1);
if(in_array($ext2,$extensoes) && ($tam_foto2 < $tam_max))
move_uploaded_file($foto2_temp,"http://www.moradiasweb.com/fotos/".$_SESSION['usuario']."/".$id."/".$foto2);
if(in_array($ext3,$extensoes) && ($tam_foto3 < $tam_max))
move_uploaded_file($foto3_temp,"http://www.moradiasweb.com/fotos/".$_SESSION['usuario']."/".$id."/".$foto3);
if(in_array($ext4,$extensoes) && ($tam_foto4 < $tam_max))
move_uploaded_file($foto4_temp,"http://www.moradiasweb.com/fotos/".$_SESSION['usuario']."/".$id."/".$foto4);
if(in_array($ext5,$extensoes) && ($tam_foto5 < $tam_max))
move_uploaded_file($foto5_temp,"http://www.moradiasweb.com/fotos/".$_SESSION['usuario']."/".$id."/".$foto5);[/codebox]

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

Ok, já fiz isso.

$id = $_GET['id'];
    if($_SERVER['REQUEST_METHOD']=="GET")
    {
        $caminho = $_SERVER['DOCUMENT_ROOT'];
        // INÍCIO DAS PROPRIEDADES PARA AS FOTOS
        $extensoes = array('.gif','.jpg','.jpeg'); // EXTENSÕES VÁLIDAS PARA AS FOTOS
        $tam_max = "51200"; // TAMANHO MÁXIMO DE CADA FOTO

        if(!file_exists($caminho."//fotos/")) // SE NÃO EXISTIR O CAMINHO:
        {
            mkdir($caminho."/fotos/"); // CRIA-SE A PASTA FOTOS. 
        }
        $caminho .= $caminho."/fotos/"; // E DEFINE-SE O NOVO CAMINHO.
        // FIM DAS PROPRIEDADES PARA AS FOTOS
        
        // INÍCIO DAS MANIPULAÇÕES PARA AS FOTOS
        $foto1 = $_FILES['foto1']['name'];
        $foto1 = strtolower($foto1);
        $ext1 = strrchr($foto1,'.');
        $foto1_temp = $_FILES['foto1']['tmp_name'];
        $tam_foto1 = $_FILES['foto1']['size'];

        // INÍCIO DO REDIRECIONAMENTO DAS MESMAS
            move_uploaded_file($foto1_temp,$caminho.$foto1);
            echo "&lt;script language='JavaScript'>window.alert('Foto enviada com sucesso!');</script>";

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

Mas ele continua não criando as pastas. Coloquei a pasta do caminho absoluto com permissão 777, mas nada. O PHP tem que criar a pasta fotos com permissão 777 para gravar nela também? Tem como fazer isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Se o PHP criar a pasta ela não vai ter a permissão de escrita automaticamente, ai você vai ter que dar o chmod antes...

Só ressalto que dependendo da configuração do servidor a função chmod não vai funcionar, mas ai usa esta outra solução...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

Obrigado, funcionou. As pastas foram criadas. Agora você sabe se essa parte da foto está certa? Eu mudei agora para esse código abaixo:

// INÍCIO DAS MANIPULAÇÕES PARA AS FOTOS
        $foto1 = $_FILES['foto1']['name'];
        $foto1 = strtolower($foto1);
//        $foto1 = $caminho."/".$foto1;
        echo "<br>Foto: ".$foto1;
        exit;

E na tela só aparece:

Foto:

sem nada escrito. Não está pegando a foto. Tem algo errado nessa parte?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...