Listar los archivos de una carpeta en PHP

Listar los archivos de una carpeta en PHP

PHP

Con el script que  muestro a continuación se podrá ver el contenido de una carpeta, todos sus archivos y carpetas que tenga dentro.

Lo que se hace es revisar la carpeta actual, recorrer a través de un while el contenido y verificados si este es un archivo o carpeta, si es carpeta lo dejamos entre corchetes [], así hacemos la diferencia con los archivos, que se encuentran en la carpeta.

Este es script es bastante básico y simple pero nos ayuda a como verificar y obtener el contenido de una carpeta en PHP asi de como recorrerlo.

<?php
$carpeta = opendir("."); // Ruta actual
while ($archivo = readdir($carpeta)) // Leemos la carpeta obteniendo uno a uno los archivos existentes
{
    if (is_dir($archivo)) // Aquí vemos si es o no una carpeta
    {
        echo "[".$archivo . "]<br />"; // Si es una carpeta lo dejamos entre corchetes
    else
    {
        echo $archivo . "<br />";
    }
}
?>

Este script obviamente se puede mejorar agregando una tabla o iconos etc.   Espero en algún momento les sirva.

Saludos 😀

IPTables – Como desbanear una ip

IPTables – Como desbanear una ip

Cuando necesitemos ver las IP’s que se encuentran baneadas en el server, simplemente ejecutamos el siguiente comando:

iptables -vnL

Nos aparece algo parecido a la imagen siguiente, hay que fijarse en la información que nos indica fail2ban-SERVICIO para borrar el que nos interesa.

iptables

Si nuestra intención es desbanear la IP 14.141.36.216 del servicio ssh, debemos ejecutar el siguiente comando:

iptables -D fail2ban-ssh 2

Si ven en el comando anterior pusimos el número 2 el cual nos indica que del listado queremos desbanear la línea número 2, que es donde se encuentra la IP antes mencionada.

 

Saludos 😀

Listar los archivos de una carpeta en PHP

Calcular días entre dos fechas con PHP

PHP

El siguiente código bastante sencillo por lo que se ve, nos sirve para calcular los días entre dos fechas utilizando la función de PHP strtotime:

function DiasTranscurridos($fec_inicio,$fec_termino)
{
       // Las fechas enviadas son formato "2015-12-01"
  $cantidad	= (strtotime($fec_inicio)-strtotime($fec_termino))/86400;
       // Redondeamos el dato hacia abajo
        $cantidad = floor($dias);		
  return $dias;
}

// Ejemplo de uso:
echo DiasTranscurridos('2015-12-01','2015-12-10');
// Resultado : 9

Se ve claramente que para que el código funcione simplemente se debe enviar las dos fechas o parámetros, indicando la fecha inicial y la fecha de término donde queremos calcular la cantidad de días.

Saludos!

😀

Listar los archivos de una carpeta en PHP

Enviar Correos con PHP

PHP

PHP nos permite enviar correos de manera bastante sencilla usando la función mail(), es bastante sencillo y nos da la posibilidad de enviar correo en formato HTML definiendo la cabecera previamente. Con esta función con solo los 3 parametros (destino,asunto,mensaje) ya podemos enviar correos solo que saldrá como remitente [email protected]; El formato de la función mail() es la siguiente:

<?php mail ($destino, $asunto, $mensaje, $cabeceras); ?>

Un ejemplo de como usar la función mail, sería:

<?php
$destino = "destino @ dominio.com";
$asunto ='=?UTF-8?B?'.base64_encode("Hola Mundo!").'?=';
$cabeceras ="From: Contacto Mi Dominio <contacto @ midominio.cl> \r\n". 
          "Reply-To: contacto @ midominio.cl \r\n". 
          "MIME-Version: 1.0\r\n".
          "Content-Type: text/plain; charset=UTF-8";

$mensaje = "Saludos desde Marte \r\n a todo el mundo";

mail($destino, $asunto, $mensaje, $cabeceras);
?>

 

Destino:

Es el correo de destino o a quien se le enviará el mensaje, este campo es obligatorio.  Y se pueden poner de las siguientes formas

Asunto:
El asunto del correo. Lo ideal es siempre tener un asunto en cada mensaje a enviar pero este campo no es obligatorio y el correo puede ser enviado sin asunto.  Cuando el asunto es muy extenso este terminará con  “…” .

Cabeceras:

  • FROM Información del correo electrónico emisor.
  • REPLY-TO Es la dirección hacía donde respondera el receptor cuando éste haga click en responder mensaje.
  • MIME (Multipurpose Internet Mail Extensions, Extensiones de Correo Internet Multipropósito), son una serie de convenciones o especificaciones dirigidas a que se puedan intercambiar a través de Internet todo tipo de archivos (texto, audio, vídeo, etc.) de forma transparente para el usuario. Una parte importante del MIME está dedicada a mejorar las posibilidades de transferencia de texto en distintos idiomas y alfabetos. (Wikipedia)
  • CONTENT-TYPE Se utiliza para poder enviar correo con código HTML.

Cuerpo del Mensaje o Contenido
En el contenido del correo.  Este mensaje puede ser texto plano o ser código html o ambos.  Este tipo lo definimos en la cabecera para su visualización por parte del receptor.  Si el mensaje es solo texto plano hay que utilizar los siguientes tag, ya que se verá todo en una sola línea.

  • \n = salto de línea
  • \t = sangría
  • \r = retorno de carro

Un ejemplo de un correo con código HTML.

<?php
$destino  = 'nombre @ correo.cl , nombre @ correo.cl'; 
// ó puede ser también
$destino = 'nombre @ correo.cl' . ',' . 'nombre2 @ correo.cl';
// Asunto
$asunto = 'Hola Mundo!';
 
// Mensaje
$mensaje = '
<html>
<head>
  <title>Hola Mundo!</title>
</head>
<body>
  <p>Saludos desde Marte</p>
  <p>a todo el mundo!!</p>
</body>
</html>
';
 
// Cabecera que especifica que es un HMTL
$cabeceras  = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Cabeceras adicionales
$cabeceras .= 'From: Emisor <emisor @ correo.cl>' . "\r\n";
$cabeceras .= "Reply-To: contacto @ correo.cl \r\n";

// enviando correo! 
mail($destino, $asunto, $mensaje, $cabeceras);
?>

 

Es así de sencillo como podemos enviar correos a través de PHP con la función mail(), en algunos hosting esta configurado para no abusar del envío de correo.

 

Saludos!! 😀

 

VSO.

 

 

 

MySQL – algunos comandos para utilizar en consola

MySQL – algunos comandos para utilizar en consola

MySQL

Ya hace rato que no había escrito nada en el blog, creo que ahora si me daré mas tiempo para agregar información (jeje eso espero ^^’)

Hoy necesitaba tirar unos comandos por consola mysql y como hace rato no lo hacía simplemente no me acorda bien de todos, así que decidí recopilar un poco de información y compartirla para hacernos una ayuda de memoria.

CONEXION

a. Conectarse al servidor MySQL con el usuario que corresponda “usuario”

]# mysql -u usuario -p

b. Ver o listar las bases de datos existentes en nuestro MySQL

mysql> show databases;

c. Ver o listar los usuarios que se encuentran actualmente en nuestro MySQL

mysql> select * from mysql.user;

d. Seleccionar una base de datos en donde trabajaremos o revisaremos la información

mysql> use nombre_bd;

USUARIOS

Ahora con respecto a lo que es usuarios, ya sea crear, modificar y eliminar, están los siguientes comandos.

a. Crear usuarios con todos los privilegios, ya sera de todas las bases de datos del servidor o de alguna en específico, referente al host puede ser:

  • IP (192.168.1.120) específica para el usuario (recomiendo que sea así),
  • % que indica que puede conectarse desde cualquier ip al servidor o puede ser
  • localhost (127.0.0.1) indicando que el usuario solo puede conectarse al servidor estando dentro de este, o si se encuentra fuera a través de un tunel ssh.
mysql> grant all privileges on nombre_bd.* to 'usuario'@'host' identified by 'contraseña' with grant option;
mysql> grant all privileges on *.* to 'usuario'@'host' identified by 'contraseña' with grant option;

b. Cambiar la contraseña de un usuario creado.

mysql> set pasword for 'usuario'@'host' = password('contraseña');

c. Crear usuarios solo con algunos privilegios.

mysql> grant privilegio ON nombre_bd.* TO 'usuario’@'host’ identified by 'contraseña';

Los privilegios que se usan son:

  • ALTER: Modificar tablas con ALTER TABLE
  • CREATE: Crear una nueva base de datos o tabla
  • DELETE: Eliminar registros de las tablas
  • DROP: Eliminar bases de datos o tablas
  • INDEX: Crear o eliminar índices de tablas
  • INSERT: Crear registros en las tablas
  • SELECT: Listar registros de las tablas
  • UPDATE: Modificar registros de las tablas

d. Ver o listar los privilegios que tiene un usuario.

mysql> show grants for 'usuario'@'host';

e. Eliminar los privilegios de un usuario.

mysql> revoke privilegio ON nombre_bd.* TO 'usuario’@'host';

f. Eliminar un usuario con su respectivo host.

mysql> drop user 'usuario'@'host';

RESPALDOS

Realizar respaldo de una base de datos de nuestro servidor.

]# mysqldump --user=usuario --password=contraseña nombre_bd > nombre_repaldo_BD.sql

Ahora si desean migrar la base de datos de un servidor a otro, tienen el siguiente comando:

]# mysqldump -u usuario -p contraseña nombre_bd | mysql -h host_destino -u usuario -p conrtaseña nombre_bd;

Exportar todas las bases de datos de nuestro servidor MySQL a un archivo.

# mysqldump –password=CLAVE –single-transaction –all-databases | gzip -9 >RUTA_DESTINONOMBRE_`date +%Y-%m-%d`.sql.gz

 

Espero les sirva, ya sea para aprender o como ayuda de memoria. 😀

 

Saludos!