Alterar valor em um banco de dados mysql usando uma data expecifica.

MySQL

PHP

21/01/2020

Tenho um banco de dados em mysql, onde a tabela "usuario" tem as colunas

id | estado_user | expira
1 | 1 | 2020/2/20
2 | 0 | 2020/1/10
3 | 1 | 2020/2/25
4 | 0 | 2020/1/20

Onde 1 é ativo e 0 inativo na coluna "estado_user", e na coluna "expira" é a data em que o acesso do usuário expira.

Vamos a questão, como posso fazer o valor de "estado_user" mudar de 1 para 0 na data expecificada pela coluna "expira".
Dinhonuneslc

Dinhonuneslc

Curtidas 0

Melhor post

Diego Silva

Diego Silva

22/01/2020

Fala Dinhonuneslc, tudo bem?

Então, você quer que assim que a data de expiração da coluna seja alcançada pela data atual, o valor de "estado_user " seja alterado, certo?

Você quer que isso ocorra de forma automática?
GOSTEI 1

Mais Respostas

Dinhonuneslc

Dinhonuneslc

21/01/2020

usuario.php


<table class='table table-bordered table-hover'>
                    <caption>Usuários</caption>
                    <thead class="thead-light">
                        <tr align="center">
							<?php if($_SESSION['admin']) { ?> <th class='nomecol' scope="col" >ID</th> <?php } ?>
                            <th class='nomecol' scope="col" >Nome</th>
                            
                            <th class='nomecol' scope="col" >Estado</th>
							<th class='nomecol' scope="col" >Expira</th>
                            <?php if($_SESSION['admin']) { ?> <th class='nomecol' scope="col" >Criador</th> <?php } ?>
                            
                            
                            <?php if($_SESSION['admin']) { ?> <th class='nomecol' scope="col">Remover</th> <?php } ?>
                            <th class='nomecol' scope="col">Editar</th>
                            <th class='nomecol' scope="col" >Logs</th>
                            <th class='semresultado' scope='col'>Nenhum resultado</th>
                        </tr>
                    </thead>
                <tbody id="conteudo">
					<?php foreach($usuarios as $usuario) { ?>
                        <tr>
                            <?php if($_SESSION['admin']) { ?>
							<td align="center"> <?=$usuario['id_usuario']?> </td>
							<?php } ?>
							<td> <?=$usuario['nome_usuario']?> </td>
                            
                            <td align="center"> <?php if ($usuario['estado_usuario'] == 1) {echo "Ativo";} else {echo "Desativado";} ?> </td>
                            <td align="center"> <?=$usuario['expira']?> </td>
							<?php if($_SESSION['admin']) { ?>
							<td align="center"> <?=$usuario['id_criador']?> </td>
							<?php } ?>
                            
                            
                            <?php if($_SESSION['admin']) { ?>
							<td align="center">
                                <button class='btn btn-outline-danger' onclick="removerConfirma('<?=$usuario['id_usuario']?>', '<?=$usuario['nome_usuario']?>')"><i class="far fa-trash-alt"></i></button>
                            </td>
							<?php } ?>
							
                            <td align="center">
                                <button class='btn btn-outline-secondary' onclick="editarConfirma('<?=$usuario['id_usuario']?>','<?=$usuario['nome_usuario']?>','<?=$usuario['contato_usuario']?>','<?=$usuario['login_usuario']?>','<?=$usuario['estado_usuario']?>','<?=$usuario['admin']?>', '<?=$usuario['vendedor']?>', [<?php foreach (listasUsuario($usuario['id_usuario']) as $lista) echo $lista['id_lista'] .',' ?> ])"><i class="fas fa-user-edit"></i></button>
                            </td>
                            <td align="center">
                                <button class='btn btn-outline-secondary' onclick="verLogs('<?=$usuario['id_usuario']?>')"><i class="fas fa-clipboard-list"></i></button>
                            </td>
                        </tr>
					<?php } ?>
                    </tbody>
                </table>

GOSTEI 0
Dinhonuneslc

Dinhonuneslc

21/01/2020

Formulário de cadastro


<form id="cadastro-form">
            <div class="container">
                <div class="form-group">
                    <label>Nome:</label>
                    <input type="text" class="form-control" name="nome" placeholder="Nome do usuário" required autofocus>
                </div>
                <div class="form-group">
                    <label>Login:</label>
                    <input type="text" class="form-control" name="login" placeholder="Identificação do usuário" required>
                    <small class="form-text text-muted">Único para cada usuário!</small>
                </div>
                <div id="sC">
                    <div id="divSenhaC" class="form-group">
                        <label>Senha:</label>
                        <input type="password" class="form-control" name="senha" placeholder="Senha do usuário" required>
                    </div>
                </div>
                <div class="form-group">
                    <label>Contato:</label>
                    <input type="text" class="form-control" name="contato" placeholder="Contato do usuário">
                </div>
				<div class="form-group">
                    <label>Cadastro:</label>
                    <input type="date" class="form-control" name="cadastro" placeholder="<?php echo date("d-m-Y");?>">
                </div>
                <div class="form-group">
                    <label>Nivel: </label>
                    <div class="ml-0 row">
                        <select id="nivelC" class="selectpicker">
                            <?php if($_SESSION['admin']) { ?>
                            <option value="admin">Administrador</option>
                            <option value="vendedor">Vendedor</option>
                            <?php } ?>
                            <option value="cliente">Cliente</option>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Administrador:</label>
                    <div class="ml-0 row">
                        <select value="0" id="adminC" class="selectpicker" title="Administrador..." name="admin" required>
                            <option value="1">Sim</option>
                            <option value="0">Não</option>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Vendedor:</label>
                    <div class="ml-0 row">
                        <select value="0" id="vendedorC" class="selectpicker" title="Administrador..." name="vendedor" required>
                            <option value="1">Sim</option>
                            <option value="0">Não</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label>Listas:</label>
                    <div class="ml-0 row">
                        <select name="lista[]" class="selectpicker" title="Listas..." multiple>
                <?php if ($listas) { 
                    foreach ($listas as $lista) {?>
                        <option value="<?=$lista['id_lista']?>"><?=$lista['nome_lista']?></option>
                    <?php  } 
                    } ?>
                        </select>
                    </div>
                </div>
                <button type="none" onclick="addForce()" class="btn btn-primary">Adicionar</button>
            </div>
        </form>

GOSTEI 0
Dinhonuneslc

Dinhonuneslc

21/01/2020

adicionar-usuario.php


<?php

if (!isset($_SERVER['HTTP_REFERER']) &&  !strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'] ) 
    ||  !strpos($_SERVER['HTTP_REFERER'], 'usuario.php' )) {
    header('HTTP/1.0 403 Forbidden');
    header("Location: ../index.php");
    die();
}

require_once('usuarios.php');
require_once('msg.php');

if(isset($_POST['nome']) && isset($_POST['contato']) && isset($_POST['login']) && isset($_POST['admin'])) {
    $nome = $_POST['nome'];
    $contato = $_POST['contato'];
    $login = $_POST['login'];
    $admin = $_POST['admin'];
    $vendedor = $_POST['vendedor'];
    $expira = $_POST['cadastro'];
    
    if (isset($_POST['senha'])) {
        $senha = $_POST['senha'];
    } else {
        $senha = "";
    }
    
    if (isset($_POST['lista'])) {
        $lista = $_POST['lista'];
    } else {
        $lista = [];
    }

    if ($nome !== "" && $login !== "" && $admin !== "") {
        if (!adicionarUsuario($nome, $contato, $login, $senha, $admin, $vendedor, $lista, $expira)) {
            erro();
        }
    } else {
        embranco();
    }
} else {
    invalido();
}


GOSTEI 0
Dinhonuneslc

Dinhonuneslc

21/01/2020

Fala Dinhonuneslc, tudo bem?

Então, você quer que assim que a data de expiração da coluna seja alcançada pela data atual, o valor de "estado_user " seja alterado, certo?

Você quer que isso ocorra de forma automática?


Exatamente! Também preciso inserir a data do vencimento formulário de cadastro do usuário.
GOSTEI 0
Diego Silva

Diego Silva

21/01/2020

Dinhonuneslc,

Esse seu sistema está num servidor local ou web?

Acredito que nesse caso, o que pode te ajudar é usar cron do servidor:

Alguns tópicos aqui do fórum já abordaram sobre isso:

https://www.devmedia.com.br/forum/envios-de-email-automatico/590533

https://www.devmedia.com.br/forum/sistema-de-post-agendado-em-php-como-fazer-isso/490837

Mas antes de prosseguir com isso, informe se o servidor que você está usando é web ou local
GOSTEI 0
POSTAR