Jump to content
Keron

[Resolvido] O session_start() / $_SESSION não está funcionando

Recommended Posts

Gente eu não estou conseguindo iniciar o session em php e realmente não consigo entender o motivo já tentei trocentas coisas que as pessoas sugeriram nos foruns, mas o session ainda assim não funciona

:smiley:

 

arquivo index onde não recupera variáveis $_SESSION:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
    <title>Pagina1</title>
    <link rel="stylesheet" href="css/style.css"/>

</head>
<body>
    <article id="newPrincipal">
        <h1>Usuário id:<?php echo $_SESSION['userId']; ?></h1> 
    </article>
    <h1>Result:<?php echo "Usuário id:".$_SESSION['userId']; ?></h1>
</body>

</html>
<?php
echo '<pre>';
print_r($_SESSION['userId']);
echo '</pre>';

arquivo login:

 

<?php

if(isset($_POST['login-submit'])){

    require 'dbh.inc.php';

  	$users = $_POST['nome'];
    $mailuid = $_POST['mailuid'];
    $password = $_POST['pwd'];
    $token;
    if(empty($mailuid) || empty($password)){
        header("Location: ../header.php=emptyfields");
        exit();
    }
    else{
        $sql = "SELECT * FROM users WHERE Usuarios=? AND email=?";
        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)){
            header("Location: ../index.php?error=sqlerror");
            exit();
        }
        else{
            mysqli_stmt_bind_param($stmt, "ss", $mailuid, $users);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_get_result($stmt);
            if($row = mysqli_fetch_assoc($result)){
                $pwdCheck = password_verify($password, $row['pwdUsers']);
                if($pwdCheck == false){
                    header("Location: ../header.php?error=wrongpwd");
                    exit();
                }
                else if($pwdCheck == true){
                    session_start();
                    $_SESSION['userId'] = $row['idUsers'];
                    $_SESSION['userId2'] = $row['uidUsers'];
                    $_SESSION['email'] = $row['emailUsers'];

                    header("Location: ../index.php?login=".$_SESSION['userId']);
                }
                else{
                    header("Location: ../login.php?error=wrongpwd");
                    exit();
                }
            }
        }
    }
}
else{
    header("Location: ../index.php");
}

 

Eu tentei de todas as formas recuperar alguma informação usando o $_SESSION no arquivo index, mas não consegui

Estou beirando o desespero, xoxo

 

                                                  :tired: :bawling:

Share this post


Link to post
Share on other sites

Olá Keron, possíveis erros analisando seu código:

 

Primeiro:

$sql = "SELECT * FROM users WHERE Usuarios=? AND email=?";

Acredito que sua consulta esteja errada, já que não está passando "Usuarios" e "email" para consultar, apenas "?", ou seja, vazios. Quando usa "?", abaixo você precisa definir os valores para consultar.

 

Segundo:

A sessões estão sendo criadas com base na sua consulta, então decorre da primeira situação. 

 

Sua consulta está retornando resultados?

Dá um var_dump($row); e retorne aqui.

 

Terceiro:

 

Precisa verificar se está mesmo entrando no else if para criar as sessões.

else if($pwdCheck == true){
}

Verifica isso e retorna pra gente ver.

Share this post


Link to post
Share on other sites

Oi Marcos, muito obrigada por me responder.

Eu utilizei o var_dump($row); dentro do else if($pwdCheck == true); 

Eu fiz assim:

             else if($pwdCheck == true){
                    session_start();
                    $_SESSION['userId'] = $row['idUsers'];
                    $_SESSION['userId2'] = $row['uidUsers'];
                    $_SESSION['email'] = $row['emailUsers'];
                    var_dump($row);
                    //header("Location: ../index.php?login=".$_SESSION['userId']);
               	 }

E me foi dado a lista de dados do usuário corretamente ...

 

Quando faço submit do cadastro e leva o usuário para o index.php o comando:

 

header("Location: ../index.php?login=".$_SESSION['userId']);  imprime no url o $_SESSION['userId'] certinho, mas quando solicito para que faça em outras partes do index não funciona,

 

EX: <h1>Usuário id:<?php echo $_SESSION['userId']; ?></h1>

 

não consigo ver nenhum problema com os códigos

 :confounded:

Share this post


Link to post
Share on other sites

Eu estou usando um servidor externo não o Xampp/Wampp, não sei se isso implicaria em alguma coisa

Share this post


Link to post
Share on other sites

Eu tentei utilizar os scripts no Xampp e as $_SESSION  funcionaram como eu queria, na verdade eu estava com problema no servidor hosting por ter excluído sem querer o arquivo .htaccess, consegui recuperar o arquivo  .htaccess  e tudo começou a funcionar.

Muito obrigada pela sua ajuda Marcos, mas só tomei seu tempo, não tinha nada de errado com o códigos.

 

Para quem estiver com problemas em session_start() aqui está meu link com o mesmo tópico no stackoverflow.com:

https://stackoverflow.com/questions/53175131/the-session-start-and-session-command-is-not-working/53175245?noredirect=1#comment93281400_53175245

 

e aqui está o link que me mandaram para ver formas de descobrir porque o erro no session está acontecendo ,possivelmente tem solução para tudo envolvendo session: 

 

https://stackoverflow.com/questions/4261133/notice-undefined-variable-notice-undefined-index-and-notice-undefined 

Share this post


Link to post
Share on other sites
21 horas atrás, Keron disse:

Eu tentei utilizar os scripts no Xampp e as $_SESSION  funcionaram como eu queria, na verdade eu estava com problema no servidor hosting por ter excluído sem querer o arquivo .htaccess, consegui recuperar o arquivo  .htaccess  e tudo começou a funcionar.

Muito obrigada pela sua ajuda Marcos, mas só tomei seu tempo, não tinha nada de errado com o códigos.

 

Para quem estiver com problemas em session_start() aqui está meu link com o mesmo tópico no stackoverflow.com:

https://stackoverflow.com/questions/53175131/the-session-start-and-session-command-is-not-working/53175245?noredirect=1#comment93281400_53175245

 

e aqui está o link que me mandaram para ver formas de descobrir porque o erro no session está acontecendo ,possivelmente tem solução para tudo envolvendo session: 

 

https://stackoverflow.com/questions/4261133/notice-undefined-variable-notice-undefined-index-and-notice-undefined 

Olá Keron, entendi... erros acontecem, não será o primeiro nem o último hehe Agora já sabe, nunca exclua o .htaccess.

 

Obrigado por compartilhar a solução com a comunidade, até!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Sapinn
      Galera estou usando o PHPStorm para alguns projetos e estou com meus arquivos marcados em vermelho não sei oq é alguem pode me ajuda?
       
       

    • By danielambrosio
      Estou trabalhando numa programação PHP é conectado na tabela (cl_configs) para reconhece coluna name que reconhece esses 5 campos.
      e também que adiciona esses 5 valores é adicionado nessa outra tabela (cl_ads_block_ips) nesses 8 coluna (id, ip, clicks, last_click, dads_refresh_qtd, dads_refresh_data, dads_refresh_ldata, clicks_rotativo_dia).
      E a conexão que eu usa era de outro site e não estou tendo problema e configurar em outro site que reconhece essa banco de dados abaixo.
       
      <?php $host = "localhost"; $user = "ads"; $pass = "_CMpFF4Hpa!G_gTh"; $dbname = "ads"; $port = 3306; try {     $conn = new PDO('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $dbname, $user, $pass);     //echo "Conexão com banco de dados realizado com sucesso!"; } catch (PDOException $err) {     echo "Erro: Conexão com banco de dados não foi realizada com sucesso. Erro gerado " . $err->getMessage(); } ?>  
      Conecta com sucesso só não está reconhecendo a tabela (cl_configs) e nem adicionando na tabela (cl_ads_block_ips).
       
       
      Agora não sei porque não esta reconhecendo (cl_configs) e nem adicionando (cl_ads_block_ips).
       
       


    • By ment0r
      Boa tarde a todos.

      Estou iniciando um estudo com o banco MySQL (trabalho co PostgreSQL e Firebird) para futuros trabalhos. Bom, me deparei com um problema chato: caracteres especiais.
      Um exemplo: T�tulo.
      Não consigo exibir no meu site tais caracteres. O banco tem Charset/Collation: utf8/utf8_bin como configuração.
      Já usei o utf_encode e utf_decode - não resolveu.

      Alguém sabe o que mais posso fazer?
      Desde já, muito obrigado.
    • By asacap1000
      Galera salve salve!!
      Estou com um projeto em que são armazenados vídeos, porém seguindo os requisitos exigidos, para visualizar e baixar esses vídeos eles tem que aparecer com numero de cadastro do usuário que está acessando no centro do video como uma marca d'agua.
       
      Para simplesmente aparecer na tela eu consigo fazer uma camada superior com css e apresentar os dados do usuário mas para baixar o vídeo ele já faz sem a marca.
       
      Vocês conhecem algum recurso pra adicionar essa marca? ela não pode ficar no arquivo original pois outros usuário poderão baixar com sua identificação na tela.
       
      Se alguem puder me dar um norte ajudaria muito
    • By marcelo.ourico
      Estou precisando fazer o envio de um XML via webservice. Estou utilizando PHP 7.4 e nuSoap.

      Porém esse XML de envio possui várias tags com hífen. Por exemplo <tag-name></tag-name>.
       
      Esse hífen tem sido um problema, principalmente por que eu não posso enviar o XML como string. Apenas como objeto. Então imaginem isso:
       
      $objeto = simplexml_load_string($string_xml);  
      Se simplesmente eu tentar resgatar o valor da TAG já dá erro...
       
      $campo1= $objeto->tag-name;
      O erro ocorre em função de que o hífen é um caractere reservado do PHP... Então como resolver?

      Independente disso, quando eu tento fazer o envio via nuSoap, também recebo erro abaixo:
      wsdl->getTypeDef('tag-name', 'http://xyz.abr...')
      wsdl->serializeType('tag-name', 'tag-name', Object(SimpleXMLElement), '

      Alguém já passou por isso? Sabe como resolver? Pode dar uma dica?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.