Archivo de la categoría: php

Comprobar si un valor existe en un array (PHP)

Si tenemos un array y queremos saber si hay un valor determinado dentro de él sin tener que recorrerlo en PHP existe la función in_array, que busca dentro del array y devuelve un TRUE o FALSE.

in_array(VALOR_A_BUSCAR, $NOMBRE_DEL_ARRAY)

Ejemplo:


//Creamos el array colores
$colores = array("rojo", "azul", "verde", "amarillo");
if (in_array("verde", $colores)) {
echo "El color verde está en el array";
}else{
echo "Lo siento, el color verde NO está en el array";
}

Conectar a una base de datos MySQL con PHP

Una de las cosas más interesantes para nuestras páginas PHP es comunicarlas con una base de datos, aumentando muchísimo las posibilidades de creación de nuevas funcionalidades en nuestros sitios web.

La base de datos más extendida para el uso junto a PHP es MySQL. Para comunicar la base de datos bastan las líneas siguientes:


//Definimos las variables
$host="localhost";
$user="nombre_usuario";
$pass="contraseña";
$dbname="nombre_base_datos";

//Abrimos la conexión
$conexion=mysqli_connect($host,$user,$pass);
//Seleccionamos la base de datos con la que trabajar
mysqli_select_db($dbname,$conexion);

 

Básicamente son 4 parámetros los que necesitamos definir:

$host es la localización de MySQL, si está en el mismo servidor que Apache basta con poner “localhost”, que indica que se encuentra en la misma máquina. Si está en otro servidor deberemos poner la IP en la que se encuentra. (Por ejemplo: 192.168.0.22)

$user, en esta variable definimos el usuario con permisos para iniciar sesión en la base de datos.

$pass, al igual que $user, aquí definimos la contraseña de acceso.

Y por último, ya que podemos tener varias bases de datos dentro del mismo MySQL, en $dbname definimos el nombre de la base de datos con la que vamos a trabajar en esta conexión.

 

Convertir una dirección IP a formato numérico decimal con Php

Para poder trabajar de una manera más sencilla con rangos de IPs (por ejemplo para la geolocalización de una IP) es necesario convertir la dirección IP en número decimal:

IP                            Decimal
209.85.195.104 -> 3512058728

Podéis acceder a un conversor de IP a decimal aquí

Si queréis hacer dicha conversión en PHP basta con utilizar la siguiente función:


<?php

function IPaDecimal($ip){
$ipArr = explode('.',$ip);
$ipdec = $ipArr[0] * 0x1000000
+ $ipArr[1] * 0x10000
+ $ipArr[2] * 0x100
+ $ipArr[3]
;
return $ipdec;
}

?>

Y llamar a la función pasándole la IP a convertir:


<?php

$ipDecimal = IPaDecimal("209.85.195.104");

echo($ipDecimal);

?>

El resultado de sacar por pantalla la variable $ipDecimal será 3512058728.

Métodos para redireccionar una página web (html, asp, javascript y php)

Para redireccionar automáticamente un página web podemos hacerlo de distintas formas según nos venga mejor:

HTML

Para que al cargar una página redirija automáticamente a otra, debemos insertar la siguiente línea de código HTML en cualquier parte entre las etiquetas <head></head> (la cabecera del documento HTML):

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.asp">

ASP

Si necesitas que al cargar una página asp redireccione a otra basta con utilizar Response.redirect en la primera línea del documento (o dónde quieras que realice la redirección). Es aconsejable añadir un response.end para evitar que continue con la carga de la página que redirecciona.

<%
Response.Redirect("pagina-a-la-que-redirecciona.html")
Response.End
%>

Javascript

Con javascript utilizaremos location.href de la siguiente manera:

location.href = "pagina-a-la-que-redirecciona.html";

PHP

Para PHP el metodo a utilizar es header, que añadirá nuevos parámetros a la cabecera de página y entre ellos el que nos interesa para este caso es location:

<?php
header("Location:pagina-a-la-que-redirecciona.html");
?>

En todos los casos se pueden utilizar tanto direcciones relativas:

  • index.html
  • /default.asp
  • ../../pagina.php

como direcciones absolutas:

  • http://www.google.com
  • http://blog.vermiip.es/2007/11/04/ver-mi-ip-privada/

 

Saber el ID de una inserción con PHP y MySQL

Cuando realizamos un insert en MySQL muchas veces necesitamos conocer el ID autonúmerico que nos ha asignado la base de datos para incluirla en otras consultas asociadas. Para ello, MySQL cuenta con la función mysql_insert_id(NOMBRE_CONEXION_BD) que devuelve el ID del último insert realizado por la conexión que hemos abierto a la base de datos.

Veamos un ejemplo:

$query = "INSERT INTO tabla(campo1, campo2) VALUES ('valor1','valor2');";
mysql_query($query,$conexion);
$id_query = mysql_insert_id($conexion);

echo($id_query);
//$id_query contiene el ID del último INSERT
//realizado durante la conexión a la base de datos.

 

Encriptar con MD5 en PHP

Codificar una cadena de texto en MD5 con PHP es muy sencillo gracias a las función md5(). Veamos un ejemplo:


$cadena = "Texto a encriptar";
$cadena_encript = md5($cadena);

O simplemente:

$cadena_encript = md5("Texto a encriptar");

Esta función es muy utilizada para guardar contraseñas encriptadas en base de datos. De esta manera aumentamos mucho la seguridad ya que el algoritmo MD5 es de una sola dirección, no pudiéndose desencriptar.

Generar números aleatorios en PHP

Para generar números aleatorios PHP dispone de la función rand() que devuelve un número entero aleatorio entre un máximo y un mínimo.

Para mejorar la generación de números aleatorios y prevenir que se repitan patrones, PHP dispone también de la función srand() que hará que los patrones de generación de números aleatorios cambien cada vez que se genere uno nuevo.

Opcionalmente podemos introducir una “semilla” en la función, por ejemplo: srand(time()); Esto hará que cambie el patrón según cambie “time()“. La semilla es totalmente opcional a partir de PHP 4.2.

Ejemplo:

El siguiente ejemplo genera un número entero entre 0 y 999.

srand ();  //Introducimos la "semilla"
$aleat = rand(0,999);    //rand(mínimo,máximo);