ARCHIVO HTACCESS
Nos sirve para crear url amigables
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Helpers
Limpiar caracteres especiales
Esta función se encargará de limpiar espacios y caracteres especiales para prevenir la inyección SQL.
function strClean($cadena)
{
$string = preg_replace(['/\s+/', '/^\s|\s$/'], [' ', ''], $cadena);
$string = trim($string);
$string = stripslashes($string);
$string = str_ireplace('<script>', '', $string);
$string = str_ireplace('</script>', '', $string);
$string = str_ireplace('<script type=>', '', $string);
$string = str_ireplace('<script src>', '', $string);
$string = str_ireplace('SELECT * FROM', '', $string);
$string = str_ireplace('DELETE FROM', '', $string);
$string = str_ireplace('INSERT INTO', '', $string);
$string = str_ireplace('SELECT COUNT(*) FROM', '', $string);
$string = str_ireplace('DROP TABLE', '', $string);
$string = str_ireplace("OR '1'='1", '', $string);
$string = str_ireplace('OR ´1´=´1', '', $string);
$string = str_ireplace('IS NULL', '', $string);
$string = str_ireplace('LIKE "', '', $string);
$string = str_ireplace("LIKE '", '', $string);
$string = str_ireplace('LIKE ´', '', $string);
$string = str_ireplace('OR "a"="a', '', $string);
$string = str_ireplace("OR 'a'='a", '', $string);
$string = str_ireplace('OR ´a´=´a', '', $string);
$string = str_ireplace('--', '', $string);
$string = str_ireplace('^', '', $string);
$string = str_ireplace('[', '', $string);
$string = str_ireplace(']', '', $string);
$string = str_ireplace('==', '', $string);
return $string;
}
Crear Slug
Es una pequeña parte de un enlace que permite identificar un contenido específico en una web.
function slugify($text, string $divider = '-')
{
// replace non letter or digits by divider
$text = preg_replace('~[^\pL\d]+~u', $divider, $text);
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// trim
$text = trim($text, $divider);
// remove duplicate divider
$text = preg_replace('~-+~', $divider, $text);
// lowercase
$text = strtolower($text);
if (empty($text)) {
return 'n-a';
}
return $text;
}
Limitar Cadena
Como su nombre lo indica vamos limitar cuantos caracteres necesitamos mostrar.
function limitar_cadena($cadena, $limite, $sufijo)
{
// Si la longitud es mayor que el límite...
if (strlen($cadena) > $limite) {
// Entonces corta la cadena y ponle el sufijo
return substr($cadena, 0, $limite) . $sufijo;
}
// Si no, entonces devuelve la cadena normal
return $cadena;
}
Personalizar Fecha
function fechaPerzo($fecha)
{
$datos = explode('-', $fecha);
$anio = $datos[0];
$me = ltrim($datos[1], "0");
$dia = $datos[2];
$mes = array(
"", "Enero",
"Febrero",
"Marzo",
"Abril",
"Mayo",
"Junio",
"Julio",
"Agosto",
"Septiembre",
"Octubre",
"Noviembre",
"Diciembre"
);
return $dia . " de " . $mes[$me] . " de " . $anio;
}
Validar Campos
Nos va servir para verificar los campos requeridos
function validarCampos($campos)
{
foreach ($campos as $campo) {
if (empty($_POST[$campo])) {
return false;
}
}
return true;
}
Agregar productos al carrito
Nos servirá para crear un array de sesiones, para el módulo de ventas
function addToCart($carrito, $id, $nombre, $precio, $token, $cant = 1)
{
if (!isset($_SESSION[$carrito])) {
$_SESSION[$carrito] = [];
}
$cart = $_SESSION[$carrito];
$product = [
'id' => $id,
'name' => $nombre,
'price' => $precio,
'token' => $token,
'quantity' => $cant
];
// Verificar si el producto ya está en el carrito y actualizar la cantidad si es necesario
$found = false;
foreach ($cart as &$item) {
if ($item['id'] === $id && $item['token'] === $token) {
$item['quantity']++;
$found = true;
break;
}
}
// Si no se encontró el producto en el carrito, agrégalo
if (!$found) {
$cart[] = $product;
}
$_SESSION[$carrito] = $cart;
// Preparar una respuesta JSON
$response = [
'status' => 'success',
'message' => 'Producto agregado.'
];
return $response;
}
Eliminar producto del carrito
function removeFromCart($carrito, $id, $token)
{
if (!isset($_SESSION[$carrito])) {
$_SESSION[$carrito] = [];
}
$cart = $_SESSION[$carrito];
// Buscar el índice del producto en el carrito
$productIndex = null;
foreach ($cart as $index => $product) {
if ($product['id'] === $id && $product['token'] === $token) {
$productIndex = $index;
break;
}
}
if ($productIndex !== null) {
// Eliminar el producto del carrito
unset($cart[$productIndex]);
$_SESSION[$carrito] = array_values($cart); // Reindexar el array
}
// Preparar una respuesta JSON
$response = [
'status' => 'success',
'message' => 'Producto eliminado.'
];
return $response;
}
Vaciar productos del carrito
function clearCart($carrito)
{
unset($_SESSION[$carrito]); // Eliminar el carrito de la sesión
// Preparar una respuesta JSON
$response = [
'status' => 'success',
'message' => 'Carrito limpiado'
];
return $response;
}
Mostrar el total general
Esta función calculara el total (precio * cantidad)
function getTotalPrice($carrito)
{
if (!isset($_SESSION[$carrito])) {
return 0; // Devolver 0 si el carrito no existe en la sesión
}
$cart = $_SESSION[$carrito];
$totalPrice = 0;
if (!empty($cart)) {
foreach ($cart as $product) {
$totalPrice += $product['price'] * $product['quantity'];
}
}
return $totalPrice;
}
Cantidad editable en el carrito
function updateCantidad($carrito, $id, $cantidad, $token)
{
if (!isset($_SESSION[$carrito])) {
// Manejar el caso en que el carrito no exista
$response = [
'status' => 'error',
'message' => 'El carrito no existe.'
];
return $response;
}
$cart = $_SESSION[$carrito];
foreach ($cart as &$product) {
if ($product['id'] === $id && $product['token'] === $token) {
$product['quantity'] = $cantidad;
break;
}
}
$_SESSION[$carrito] = $cart;
$response = [
'status' => 'success',
'message' => 'Cantidad actualizada.'
];
return $response;
}
Precio editable en el carrito
function updatePrice($carrito, $id, $new_price, $token)
{
if (!isset($_SESSION[$carrito])) {
// Manejar el caso en que el carrito no exista
$response = [
'status' => 'error',
'message' => 'El carrito no existe.'
];
return $response;
}
$cart = $_SESSION[$carrito];
foreach ($cart as &$product) {
if ($product['id'] === $id && $product['token'] === $token) {
$product['price'] = $new_price;
break;
}
}
$_SESSION[$carrito] = $cart;
$response = [
'status' => 'success',
'message' => 'Precio actualizado.'
];
return $response;
}
Generar Serie
function generate_numbers($start, $count, $digits)
{
$result = array();
for ($n = $start; $n < $start + $count; $n++) {
$result[] = str_pad($n, $digits, "0", STR_PAD_LEFT);
}
return $result;
}
Capturar el nombre de día
function get_nombre_dia($fecha)
{
$fechats = strtotime($fecha); //pasamos a timestamp
//lo devuelve en numero 0 domingo, 1 lunes,....
switch (date('w', $fechats)) {
case 0:
return "Domingo";
break;
case 1:
return "Lunes";
break;
case 2:
return "Martes";
break;
case 3:
return "Miercoles";
break;
case 4:
return "Jueves";
break;
case 5:
return "Viernes";
break;
case 6:
return "Sabado";
break;
}
}
Buscar valor en un array
Para verificar si tienes permisos
function verificar($valor, $datos = [])
{
$existe = array_search($valor, $datos, true);
return is_numeric($existe);
}
Páginas: 1 2