4
I need to receive a message sent from PHP, and I need to receive it on the screen, to warn if the login is correct or not. However I do not want to use ajax.
The code I’m getting in the internal script the index:
<script type="text/javascript">
    $('document').ready(function(){         
        if ($_SESSION['VALIDACAO'] == 01){
            var Texto = "Login inválido"
            document.getElementById("msg").innerHTML = Texto;
        }else{
            var Texto = "Úsuario bloqueado, contacte o administrador do sistema."
            document.getElementById("msg").innerHTML = Texto;
        };
    });
</script>
My php:
<?php
include ("../includes/conexao.php");
$email = ($_POST['TXT_ENDER_EMAIL']);
$senha = ($_POST['TXT_SENHA_USUAR']);
// Validação do usuário/senha digitados
$sql = "SELECT COD_IDENT_USUAR, TXT_NOMEX_USUAR, TXT_ENDER_EMAIL, FLG_STATU_USUAR FROM tbl_USUARIOS WHERE TXT_ENDER_EMAIL = '".$email."' AND TXT_SENHA_USUAR = '".$senha."'";
$qr = mysql_query($sql);
if (mysql_num_rows($qr) != 1) {
    // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
    $_SESSION['VALIDACAO'] = 01;
    header("Location: ../index.php"); exit; // Redireciona o visitante
} else {
    // Salva os dados encontados na variável $resultado
    $resultado = mysql_fetch_assoc($qr);
    // Se a sessão não existir, inicia uma
    if (!isset($_SESSION)) session_start();
    // Salva os dados encontrados na sessão
    $_SESSION['UsuarioID'] = $resultado['COD_IDENT_USUAR'];
    $_SESSION['UsuarioNome'] = $resultado['TXT_NOMEX_USUAR'];
    $_SESSION['UsuarioEmail'] = $resultado['TXT_ENDER_EMAIL'];
    $_SESSION['UsuarioFlag'] = $resultado['FLG_STATU_USUAR'];
    if($resultado['FLG_STATU_USUAR'] == 'A'){
    // Redireciona o visitante
    header("Location: ../paginas/principal.php"); exit;
    }else{
        session_destroy(); // Destrói a sessão limpando todos os valores salvos
        $_SESSION['VALIDACAO'] = 02;
        header("Location: ../index.php"); exit; // Redireciona o visitante
    }
}
?>
The new model is working as follows. index php.:
<!DOCTYPE html>
<?php include 'scripts/help.php'; 
?>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <title>JR Tela de login</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <!--<script src="js/principal01.js"></script>-->
</head>
<body>
    <div class="container">
        <form class="form-signin" id="from" name="form" method="POST" action="scripts/validacao.php">
            <h2 class="form-signin-heading">JR Comunicações</h2>
            <div id="msg"><?php get_msg('msg_login');?></div>
            <input type="text" name="TXT_ENDER_EMAIL" class="input-block-level" placeholder="Email">
            <input type="password" name="TXT_SENHA_USUAR" class="input-block-level" placeholder="Senha">
            <input class="btn btn-large btn-success" type="submit">
        </form>
    </div>
</body>
</html>
The help.php file:
<?php
// Função para setar a mensagem
function set_msg($id, $msg, $tipo)
{
    session_start();
    if (isset($id)) {
       $_SESSION['id'] = $id;
       switch ($tipo) {
        case 'error':
            $_SESSION['msg'] = '<div class="alert-danger">' . $msg . '</div>';
            break;
        case 'alert':
            $_SESSION['msg'] = '<div class="alert-alert">' . $msg . '</div>';
            break;
        }
    }
}
// Esta função vai exibir sua mensagem onde você quiser
function get_msg($id)
{
    session_start();
    if (isset($_SESSION['msg'])) { echo $_SESSION['msg']; }
    if (isset($id)) {
        if ($id == $_SESSION['id']) {
            echo $_SESSION['msg']; 
        }
    }
    return FALSE;
}
?>
and the validation.php:
<?php
include ("../includes/conexao.php");
include("help.php");
$email = ($_POST['TXT_ENDER_EMAIL']);
$senha = ($_POST['TXT_SENHA_USUAR']);
// Validação do usuário/senha digitados
$sql = "SELECT COD_IDENT_USUAR, TXT_NOMEX_USUAR, TXT_ENDER_EMAIL, FLG_STATU_USUAR FROM tbl_USUARIOS WHERE TXT_ENDER_EMAIL = '".$email."' AND TXT_SENHA_USUAR = '".$senha."'";
$qr = mysql_query($sql);
if (mysql_num_rows($qr) != 1) {
    // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
    set_msg('msg_login', 'Login ou senha inválidos', 'error');
    header("Location: ../index.php"); exit; // Redireciona o visitante
} else {
    // Salva os dados encontados na variável $resultado
    $resultado = mysql_fetch_assoc($qr);
    // Se a sessão não existir, inicia uma
    if (!isset($_SESSION)) session_start();
    // Salva os dados encontrados na sessão
    $_SESSION['UsuarioID'] = $resultado['COD_IDENT_USUAR'];
    $_SESSION['UsuarioNome'] = $resultado['TXT_NOMEX_USUAR'];
    $_SESSION['UsuarioEmail'] = $resultado['TXT_ENDER_EMAIL'];
    $_SESSION['UsuarioFlag'] = $resultado['FLG_STATU_USUAR'];
    if($resultado['FLG_STATU_USUAR'] == 'A'){
    // Redireciona o visitante
    header("Location: ../paginas/principal.php"); exit;
    }else{
        session_destroy(); // Destrói a sessão limpando todos os valores salvos
        set_msg('msg_login', 'Usuario bloqueado', 'error');
        header("Location: ../index.php"); exit; // Redireciona o visitante
    }
}
?>
						
The function get_msg() ta wrong friend: Does so: Function get_msg($id) { session_start(); if (isset($id) && $id == $_SESSION['id']) { if (isset($_SESSION['msg'])) { echo $_SESSION['msg']; Return FALSE; }
– Kayo Bruno
Still giving error, here the if (isset($id) && $id == $_SESSION['id']) {
– Renan Rodrigues
at the beginning of the get_msg() function just after session_start(); Places this code: echo '<pre>'; print_r($_session); die; and places here what appears there.
– Kayo Bruno
Array ( [Usuarioid] => 1 [Usuarioname] => Renan Moraes [Usuarioemail] => [email protected] [Usuarioflag] => A )
– Renan Rodrigues
You already have a session created from a session_destroy(); there to test.
– Kayo Bruno
did not work, error in this command.
– Renan Rodrigues
What more correct method to solve this, I will have to give an exit 13:50 I return, I ask you to help me, it is for a work for college that I will have to deliver Saturday.
– Renan Rodrigues
I returned managed to identify something ?
– Renan Rodrigues
@Kayobruno is still not working its code. Error on the if line (isset($id) && $id == $_SESSION['id']) {
– Renan Rodrigues
Debate on the relevant goal for this question: http://meta.pt.stackoverflow.com/q/3918/132
– Victor Stafusa