Abrir Modal Automaticamente com Bootstrap se Banco Pedir (sem PDO, sem frescura)

O objetivo:

Você quer que, ao carregar a página, o sistema cheque no banco de dados se o usuário precisa fazer alguma ação (como alterar a senha). Se sim, exibe um modal Bootstrap automaticamente. Se não, vida que segue.


Estrutura do banco (resumo rápido)

Suponha uma tabela de usuários assim:

CREATE TABLE usuarios (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nome VARCHAR(100),
  senha VARCHAR(100),
  alterar TINYINT(1) DEFAULT 0
);

Se alterar = 1, o sistema vai mostrar o modal.


Código PHP completo (sem PDO, direto com mysqli)

<?php
// Conexão com o banco
$conn = mysqli_connect("localhost", "usuario", "senha", "devdata");
if (!$conn) {
    die("Erro de conexão: " . mysqli_connect_error());
}

// ID do usuário atual (exemplo fixo, mas na prática vem da sessão)
$usuario_id = 123;

// Consulta a flag
$sql = "SELECT alterar FROM usuarios WHERE id = $usuario_id LIMIT 1";
$result = mysqli_query($conn, $sql);
$dados = mysqli_fetch_assoc($result);

// Define se o modal deve ser exibido
$mostrar_modal = ($dados && $dados['alterar'] == 1);

// Opcional: reseta a flag após mostrar o modal
if ($mostrar_modal) {
    mysqli_query($conn, "UPDATE usuarios SET alterar = 0 WHERE id = $usuario_id");
}
?>

HTML do Modal

<div class="modal fade" id="senhaModal" tabindex="-1" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Alterar Senha</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fechar"></button>
      </div>
      <div class="modal-body">
        Sua senha precisa ser alterada. Clique abaixo para continuar.
        <br><br>
        <a href="/alterar-senha.php" class="btn btn-primary">Alterar agora</a>
      </div>
    </div>
  </div>
</div>

Script que mostra o modal automaticamente

Coloque antes do fechamento do </body>:

<?php if ($mostrar_modal): ?>
<script>
  window.onload = function () {
    var modal = new bootstrap.Modal(document.getElementById('senhaModal'));
    modal.show();
  };
</script>
<?php endif; ?>

Resultado final

  • Se usuarios.alterar = 1, o modal aparece automaticamente.
  • Depois de exibir, o valor é zerado.
  • Tudo feito sem PDO, sem jQuery, sem ícones, sem plugins externos.
  • Puro Bootstrap + PHP raiz + MySQL.
Rolar para cima