BossBey File Manager
PHP:
8.4.18
OS:
Linux
User:
kids
Root
/
home
/
kids
/
public_html
/
app
/
menu
📤 Upload
📝 New File
📁 New Folder
Close
Editing: aceita.php
<?php // aceita.php // Garante que a sessão está ativa if (session_status() == PHP_SESSION_NONE) { session_start(); } date_default_timezone_set('America/Sao_Paulo'); // Inclui o arquivo de conexão com o banco de dados require_once('../evento/action/../connection.php'); $database = new Database(); $db = $database->conectar(); // Verifica se os dados do formulário foram enviados e se o usuário está logado if (isset($_POST['id_convite']) && isset($_SESSION['id'])) { // --- Coleta os dados do formulário e da sessão --- $id_convite = $_POST['id_convite']; $id_usuario_aceitou = $_SESSION['id']; // Corrigido: Usa a sessão 'id' $id_usuario_remetente = $_POST['id_usuario2']; $titulo = $_POST['titulo']; $descricao = $_POST['descricao']; $cor = $_POST['cor']; // Boas Práticas: Converte as datas para o formato Y-m-d H:i:s do MySQL $inicio = date('Y-m-d H:i:s', strtotime(str_replace('/', '-', $_POST['inicio']))); $termino = date('Y-m-d H:i:s', strtotime(str_replace('/', '-', $_POST['termino']))); // --- Inicia o processo no banco de dados --- try { // Passo 1: Inserir o novo evento na agenda do usuário que aceitou o convite. // Segurança: Usa prepared statements para evitar SQL Injection. $sql_insert_event = "INSERT INTO eventos(fk_id_usuario, titulo, descricao, inicio, termino, cor) VALUES (:id_usuario, :titulo, :descricao, :inicio, :termino, :cor)"; $stmt1 = $db->prepare($sql_insert_event); $stmt1->bindValue(':id_usuario', $id_usuario_aceitou, PDO::PARAM_INT); $stmt1->bindValue(':titulo', $titulo, PDO::PARAM_STR); $stmt1->bindValue(':descricao', $descricao, PDO::PARAM_STR); $stmt1->bindValue(':inicio', $inicio, PDO::PARAM_STR); $stmt1->bindValue(':termino', $termino, PDO::PARAM_STR); $stmt1->bindValue(':cor', $cor, PDO::PARAM_STR); $stmt1->execute(); // Passo 2: Obter o ID do evento que acabamos de inserir. // Boas Práticas: Usar lastInsertId() é mais seguro que fazer outro SELECT. $id_novo_evento = $db->lastInsertId(); // Passo 3 (Opcional, conforme sua lógica original): Inserir um novo registro de convite para rastreamento $sql_insert_invite = "INSERT INTO convites(fk_id_destinatario, fk_id_remetente, fk_id_evento, status) VALUES (:destinatario, :remetente, :id_evento, 1)"; $stmt2 = $db->prepare($sql_insert_invite); $stmt2->bindValue(':destinatario', $id_usuario_aceitou, PDO::PARAM_INT); $stmt2->bindValue(':remetente', $id_usuario_remetente, PDO::PARAM_INT); $stmt2->bindValue(':id_evento', $id_novo_evento, PDO::PARAM_INT); $stmt2->execute(); // Passo 4: Atualizar o convite original para o status 'aceito' (status = 1). // Segurança: Usa prepared statements. $sql_update_invite = "UPDATE convites SET status = 1 WHERE id_convite = :id_convite"; $stmt3 = $db->prepare($sql_update_invite); $stmt3->bindValue(':id_convite', $id_convite, PDO::PARAM_INT); $stmt3->execute(); } catch (PDOException $e) { // Em um ambiente de produção, você deveria logar este erro em um arquivo, não exibi-lo. // error_log("Erro em aceita.php: " . $e->getMessage()); // Poderia redirecionar com uma mensagem de erro. die('Ocorreu um erro ao aceitar o convite. Por favor, tente novamente.'); } } // Redireciona o usuário de volta para a página anterior. header('Location: ' . $_SERVER['HTTP_REFERER']); exit; ?>
Save
Cancel