He modificado la lógica de index.php, pues la clase Usuario no sirve para nada así que la he eliminado. También he modificado la clase UsuarioModel al haber eliminado la otra clase.
Esta modificación no está extenta de fallos, no la he probado, la he modificado en base a mi experiencia pero no te preocupes, el archivo .log te dirá donde están los fallos (que serán leves) y de ahí ya lo podrás arreglar todos tu solo.
index.php
Código PHP:
<?php
session_start();
if(!isset($_SESSION["user_id"]) || $_SESSION["user_id"]==null){
print "<script>alert(\"Acceso invalido!\");window.location='../../login.php';</script>";
}
require_once 'usuario.model.php';
include 'enviar.php'
$model = new UsuarioModel();
$page = 'index';
if(isset($_REQUEST['action'])) {
foreach($_REQUEST as $key => $value) {
if($key == 'action')
$$key = $value; # Convertimos el índice actino en una variable al cual le asignamos el valor correspondiente para cargar las diferentes funciones de $model de manera dinámica con solo usar su valor
if($action == 'actualizar' && $key == 'id')
$alm->__SET($key, $value); # Solo si estamos actualizando, se añadirá a __SET el id del registro para actualizarlo
$alm->__SET($key, $value); # Como estamos dentro de un bucle, estamos seteando cada valor de $_REQUEST dentro de la función __SET
}
if($action == 'eliminar' || $action == 'editar')
$model->$action($id);
else if($action != 'enviar')
$model->$action($alm);
if($action == 'enviar')
envioCorreo($_REQUEST);
if($action != 'editar')
header('Location: ' . $page . '.php');
}
usuario.model.php
Código PHP:
<?php
class UsuarioModel {
private $pdo;
public function __CONSTRUCT()
{
try {
$this->pdo = new PDO('mysql:host=localhost;dbname=datos', 'usuario', 'clave');
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
die($e->getMessage());
}
}
public function Listar()
{
try {
$stm = $this->pdo->prepare("SELECT * FROM ingreso ORDER BY id DESC LIMIT 5");
$stm->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
$rows[] = $row;
return $rows;
} catch(Exception $e) {
die($e->getMessage());
}
}
public function Editar($id)
{
try {
$stm = $this->pdo->prepare("SELECT * FROM ingreso WHERE id = ?");
$stm->execute(array($id));
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
$rows[] = $row;
return $rows;
} catch (Exception $e) {
die($e->getMessage());
}
}
public function Eliminar($id)
{
try {
$stm = $this->pdo->prepare("DELETE FROM ingreso WHERE id = ?");
$stm->execute(array($id));
} catch (Exception $e) {
die($e->getMessage());
}
}
public function Actualizar($data)
{
try {
$sql = "UPDATE ingreso SET
rif = ?,
nombre = ?,
producto = ?,
sistema_enc = ?,
nro_cupon = ?,
fecha_envio = ?,
nota = ?
WHERE id = ?";
$sql2 = "INSERT INTO vitacora (rif, nombre, producto, sistema_enc, nro_cupon, fecha_envio, nota, id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
$this->pdo->prepare($sql)->execute($data);
$this->pdo->prepare($sql2)->execute($data);
} catch (Exception $e) {
die($e->getMessage());
}
}
public function Registrar($data) {
try {
$sql = "INSERT INTO ingreso (rif,nombre,producto,sistema_enc,nro_cupon,fecha_envio,nota) VALUES (?, ?, ?, ?, ?, ?, ?)";
$this->pdo->prepare($sql)->execute($data);
} catch (Exception $e) {
die($e->getMessage());
}
}
}