display the user who is logging PHP

0

I have a problem, which when the user logs in correctly, shows a div that displays the "Welcome" message (and I would like it to display the user name) it does not show, I would also like that if this error showed a div similar only with the message "Fill in the fields correctly".

Follow the PHP code:

<?php
    if(isset($_GET('acao'])){
        if(!isset($_POST['logar'])){
        $acao = $_GET['acao'];
        if(acao=='negado'){
            echo '<strong>Erro!</strong> Você precisa estar logado';
        }
        }
    }
    if(isset($_POST['logar'])){
    //recuperar dados do form
    $email = trim(strip_tags($_POST['email']));
    $senha = trim(strip_tags($_POST['senha']));

    //selecionar banco de dados
    $select = "SELECT * FROM usuario WHERE BINARY email=:email AND BINARY senha=:senha";
    try{
        $result = $conexao->prepare($select);
        $row=$result->fetch(PDO::FETCH_ASSOC);
        $usuario= $row['nomeUsuario'];
        $result->bindParam(':email',$email, PDO::PARAM_STR);
        $result->bindParam(':senha',$senha, PDO::PARAM_STR);
        $result->execute();
        $contar=$result->rowCount();
        if($contar>0){
            $email = $_POST['email'];
            $senha = $_POST['senha'];
            $_SESSION['email'] =$email;
            $_SESSION['senha']= $senha;
            echo('
        <div class="row" style="margin-left:-145%;">
            <div id="mensagem">Seja bem vindo <?php echo $usuario; ?></div>
        </div>
            '); // MSG SUCESSO
            //header("Refresh:3, home.php");
        }else{
            echo('
            <div class="row" style="margin-left:-145%;">
                <div id="mensagem2">Preencha os campos corretamente</div>
            </div>
            ');//MSG ERRO
            header ("Refresh:3, index.php");
        }
    }catch(PDOException $error){
        echo "Erro: ". $error->getMessage();
        }
    }
?>
    
asked by anonymous 23.08.2017 / 13:40

2 answers

1

You are putting the variable inside quotes, separate them, besides you do not need to reopen the php tag:

Current:

echo('
        <div class="row" style="margin-left:-145%;">
            <div id="mensagem">Seja bem vindo <?php echo $usuario; ?></div>
        </div>
            '); // MSG SUCESSO

Switch to:

echo('
        <div class="row" style="margin-left:-145%;">
            <div id="mensagem">Seja bem vindo ' . ' $usuario ' . '</div>
        </div>
            '); // MSG SUCESSO
    
23.08.2017 / 14:06
0

1 - You are using PHP within PHP, <?php echo $usuario; ?>

echo('
    <div class="row" style="margin-left:-145%;">
        <div id="mensagem">Seja bem vindo <?php echo $usuario; ?></div>
    </div>
        ');

The correct one is

 echo("
    <div class=\"row\" style=\"margin-left:-145%;\">
        <div id=\"mensagem\">Seja bem vindo ".$usuario."</div>
    </div>
        ");

2 - this your style="margin-left: -145%;" may be the cause of not showing the div on the screen. See

<div class="row" style="margin-left:-145%;">
        <div id="mensagem">1 - Seja bem vindo Thiago Luiz Ferreira Tavares</div>
    </div>
    <br>
    
    <div class="row" style="margin-left:-145px;">
        <div id="mensagem">2 - Seja bem vindo Thiago Luiz Ferreira Tavares</div>
    </div>
    <br>
    
     <div class="row" style="margin-left:145px;">
        <div id="mensagem">3 -Seja bem vindo Thiago Luiz Ferreira Tavares</div>
    </div>
    
23.08.2017 / 14:10