Sending external PHP variable to Javascript

4

I need to receive a message sent from PHP, and I need to receive it on the screen, to tell you if the login is correct or not. But I do not want to use ajax.

The code I'm getting in the internal script is 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 template 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><!--<scriptsrc="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 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

    }
}
?>
    
asked by anonymous 11.06.2015 / 14:38

3 answers

2

I think you do not need to use javascript or jquery, as you do not want to use Ajax you can only use PHP yourself. Create a helper file that will contain helper functions and do the following functions:

// Função para setar a mensagem
public function set_msg($id, $msg, $tipo)
{
    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
public function get_msg($id)
{
    if (isset($id)) {
        if ($id == $_SESSION['id']) {
            echo $_SESSION['msg']; 
        }
    }
    return FALSE;
}

In your login routine, depending on the result you call the set_msg () function by passing its parameters and on your login page you put the get_msg () function where you want the message to appear.

Example of using the functions:

set_msg('msg_login', 'Login ou senha inválidos', 'error');
get_msg('msg_login');
    
11.06.2015 / 15:04
3

You are not putting tag php in the scan you are doing

<script type="text/javascript">
    $('document').ready(function(){         
        <?php if ($_SESSION['VALIDACAO'] == 01){?>
            var Texto = "Login inválido"
            document.getElementById("msg").innerHTML = Texto;
        <?php }else{?>
            var Texto = "Úsuario bloqueado, contacte o administrador do sistema."
            document.getElementById("msg").innerHTML = Texto;
        <?php };?>
    });
</script>
    
11.06.2015 / 14:43
2

A simpler way: do the checks directly in php and pass the result to js.

<?php
    if ($_SESSION['VALIDACAO'] == 01) {
        $texto = "Login inválido";
    } else {
        $texto = "Úsuario bloqueado, contacte o administrador do sistema.";
    }
?>

<script>
    $('document').ready(function() {         
        document.getElementById("msg").innerHTML = "<?php echo $texto ?>";
    });
</script>
    
11.06.2015 / 15:20