Archivo

Posts Tagged ‘get’

Ofuscación de variables con PHP para GET

Hay muchas formas de hacerlo, en fin comento una.

Básicamente quiero tener esta URL:

http://www.midominio.com/consulta.php?id=1

Lógicamente no quiero un 1, para que puedas ir probando tranquilamente cosas, ese valor hay que ofuscarlo.

Con PHP se pueden utilizar las funciones:

base64_encode y base64_decode

Nos podrían quedar las funciones de codificación y decodificación como siguen:

<?php
function codifica_ID($data) {
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

function decodifica_ID($data) {
  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}

 ?>

 

Sí, es cutrecillo, hay muchas mejores maneras de hacerlo.

Categorías: Desarrollo web Etiquetas: , , ,

Instalar XAMPP

24 de septiembre de 2013 2 comentarios

Existe una aplicación llamada XAMPP que engloba Apache, MySQL, PHP, Perl (entre otras): es una aplicación para cualquier sistema operativo, que pone a disposición los servicios de Apache, PHP y MySQL de manera fácil y asistida. XAMPP contiene:

XAMPP 1.8.3 (Septiembre de 2013)

  1. Apache 2.4.4
  2. MySQL 5.6.11
  3. PHP 5.5.1
  4. phpMyAdmin 4.0.4
  5. FileZilla FTP Server 0.9.41
  6. Tomcat 7.0.41 (with mod_proxy_ajp as connector)
  7. Strawberry Perl 5.16.3.1 Portable
  8. XAMPP Control Panel 3.2.1 (from hackattack142)

Para realizar un localhost (servidor local) es necesaria la instalación de los servicios mencionados.

Descargamos XAMPP de la página de Apachefriends:

http://www.apachefriends.org/es/xampp.html

Para Windows Vista existe una versión, pero da problemas.

Cuando instalas XAMPP, al igual que cuando instalas cualquier Apache, tendrás que desinstalar o deshabilitar los programas que utilizan los puertos 80, 443 y 3306.

Por ejemplo, el TeamViewer, el IIS, el Skype dan problemas, ya que todos utilizan el puerto 80.

Antes, o los deshabilitabas o no había opción, ahora sí se puede reconfigurar XAMPP para que utilice otros puertos.

7

Cuando el servicio Apache y el MySQL estén instalados, ábrete una ventana de Firefox (u otra cosa, si es que utilizas otra cosa para navegar) y comprueba que el servidor funciona con http://localhost

localhostLa primera vez saldrá esta página. Elegimos Español. Y nos aparecerá la siguiente:

localhost2

Pulsando Estado podremos ver qué servicios se están ejecutando.

Configurando PHP

Si en el Panel de Control de XAMPP pulsamos sobre el Config de Apache, podremos editar muchos ficheros de configuración. Para configurar el PHP abriremos el PHP.ini

(Antes había que abrir el fichero a pelo, ahora XAMPP ha mejorado, lo reconozco)

panel controlSe nos abrirá el bloc de notas con toda la configuración del citado archivo.

 

Cuando modificamos cualquier fichero de configuración, debemos parar Apache y volverlo a arrancar, comprobando que todo ha ido bien.

Variable $_REQUEST

18 de octubre de 2012 Deja un comentario

Un array asociativo que por defecto contiene el contenido de $_GET, $_POST y $_COOKIE.

$_POST, $_GET y $_REQUEST son matrices relacionadas con el tipo de request.

POST consiste en datos «ocultos» (porque el cliente no los ve) enviados generalmente por un formulario cuyo method es post. Decir que el método no es de html, sino es el tipo de request http que se hace a X script. La ventaja de usar POSt es que estos datos necesitan un medio para poder ser enviados (no basta con escribir la url del script). Es ideal para formularios. Para recoger estos datos se usa el array superglobal $_POST.

GET es un tipo de request que lleva los datos de forma «visible» al cliente. El medio de envio es la URL. GET es el tipo de request predeterminado. Al escribir una url en la barra de direcciones y pulsar enter, el request hacia esa url es de tipo GET. Para recoger los datos que llegan en la url se usa $_GET.

REQUEST no es un tipo de request. $_REQUEST es una matriz superglobal que resulta de la unión de $_GET, $_POST y $_COOKIE (OJO, de los arreglos, no de los métodos). $_REQUEST siempre estará disponible (cualquiera sea el tipo de request http). Si te das cuenta, las tres matrices que contiene engloba $_REQUEST contienen datos de entrada (datos que se envian del cliente al servidor. Otras matrices como $_SERVER o $_ENV contienen datos que están en el servidor {salida}). De ahí su nombre. En síntesis $_REQUEST son los datos disponibles en el script luego de la petición (request) http.

 

 

Categorías: Desarrollo web Etiquetas: , , , , , ,

Ejercicio 1 PHP. Comparación de números

10 de octubre de 2012 1 comentario

Hacer dos ficheros. Uno se llamará COMPARA.HTML y otro COMPARA.PHP.

El primero simplemente contiene una página web con un formulario:

El fichero COMPARA.PHP es un programa que nos muestra si un número es mayor o menor o si son iguales.

 

CÓDIGO DE LOS FICHEROS:

compara.html

<html> 
<head> 
   <title>Comparando Números</title> 
</head> 
<body> 
<H1>Ejemplo de formulario. Comparo números</H1> 
<FORM ACTION="compara.php" METHOD="GET"> 
   Introduzca el primer número:
    <INPUT TYPE="text" NAME="numero1"><BR> 
   Introduzca el segundo número:
   <INPUT TYPE="text" NAME="numero2"><BR> 
   <INPUT TYPE="submit" VALUE="Compara"> 
   <INPUT TYPE="reset" VALUE="Limpia">
</FORM> 
</body> 
</html>

 

compara.php
<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Comparación de números</H1> 
<p>
<?php 
/* LEER VARIABLES DE $_GET */
$n1=intval($_GET['numero1']);
$n2=intval($_GET['numero2']);

if ($n1>$n2){
    echo "El primer número (".$n1.") es mayor que el segundo (".$n2.")";
}
elseif ($n1==$n2){
    echo "El primer número (".$n1.") es igual al segundo (".$n2.")";
}
else{
    echo "El primer número (".$n1.") es menor que el segundo (".$n2.")";
}
 ?>
</p>
<br> 
</body> 
</html>

Envío de caracteres HTML en formularios

8 de octubre de 2012 Deja un comentario

Una de las características más importantes de PHP es que gestiona formularios HTML. El concepto básico que es importante entender es que cualquier elemento de los formularios estará disponible automáticamente en su código PHP.

Ejemplo #1 Un formulario HTML simple

<form action="accion.php" method="post">
 <p>Su nombre: <input type="text" name="nombre" /></p>
 <p>Su edad: <input type="text" name="edad" /></p>
 <p><input type="submit" /></p>
</form>

No hay nada especial en este formularo, es solamente HTML sin ninguna clase de etiquetas especiales de ningún tipo. Cuando el usuario rellena éste formulario y oprime el botón Submit, una página titulada accion.php es llamada. En este archivo encontrará algo así:

 

Ejemplo #2 Imprimir información desde nuestro formulario

 Hola <?php echo htmlspecialchars($_POST['nombre']); ?>.
Usted tiene <?php echo (int)$_POST['edad']; ?> años de edad. 

Un ejemplo del resultado de esta secuencia de comandos puede ser:

Hola José. Usted tiene 22 años de edad.

Aparte de las funciones htmlspecialchars() y (int), debería ser obvio lo que hace el código. htmlspecialchars() se asegura que todos los caracteres que son especiales en html sean codificados adecuadamente de manera que nadie pueda inyectar etiquetas HTML o Javascript en tu página web. El campo edad, como sabemos que es un número, podemos convertirlo en un integer que automáticamente se deshará de cualquier carácter no numérico. Las variables $_POST[‘nombre’] y $_POST[‘edad’] son establecidas automáticamente por PHP.

La variable superglobal $_POST que contiene todos los datos del POST. Dese cuenta que el método de nuestro formulario es POST. Si usa el método fuera GET entoces los datos del formulario estarían en la superglobal $_GET. en lugar de POST. En su lugar también puedes usar la superglobal $_REQUEST, si no le importa el tipo de datos enviados desde el formulario. Contiene toda la información de GET, POST y COOKIE.

 

htmlspecialchars — Convierte caracteres especiales en entidades HTML

Ciertos caracteres tienen un significado especial en HTML y deben ser representados por entidades HTML si se desea preservar su significado. Esta función devuelve un string con estas conversiones realizadas.

Si el string de entrada pasado a esta función y el documento final comparten el mismo conjunto de caracteres, esta función es suficiente para preparar entradas para su inclusión en la mayoría de los contextos de un documento HTML.

Las traducciones realizadas son:

  • ‘&’ (et) se convierte en ‘&amp;’
  • ‘»‘ (comillas dobles) se convierte en ‘&quot;’ cuando ENT_NOQUOTES no está establecido.
  • «‘» (comilla simple) se convierte en ‘'’ (o &apos;) sólo cuando ENT_QUOTES está establecido.
  • ‘<‘ (menor que) se convierte en ‘&lt;’
  • ‘>’ (mayor que) se convierte en ‘&gt;’

 

 

Transferir variables de una página a otra por medio de la URL

8 de octubre de 2012 Deja un comentario

Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino. La sintaxis sería la siguiente:

<a href="destino.php?variable1=valor1&variable2=valor2&...">Mi enlace</a>

Podéis observar que estas variables no poseen el símbolo $ delante. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP sino que es utilizado por otros lenguajes.

Ahora nuestra variable pertenece también al entorno de la página destino.php y está lista para su explotación.

Para aclarar posibles dudas, veamos esto en forma de ejemplo. Tendremos pues dos páginas, origen.html (no es necesario darle extensión PHP puesto que no hay ningún tipo de código) y destino.php:

<HTML>
 <HEAD>
 <TITLE>origen.html</TITLE>
 </HEAD>
 <BODY>
 <a href="destino.php?saludo=hola&texto=Esto es una variable texto">Paso variables saludo y texto a la página destino.php</a>
 </BODY>
 </HTML>
<HTML>
 <HEAD>
 <TITLE>destino.php</TITLE>
 </HEAD>
 <BODY>
 <?
 echo "Variable $saludo: $saludo <br>n";
 echo "Variable $texto: $texto <br>n"
 ?>
 </BODY>
 </HTML>

Es posible recopilar en una variable tipo array el conjunto de variables que han sido enviadas al script por este método a partir de la variable de sistema $_GET, que es un array asociativo. Utilizándolo quedaría así:

<?php
 echo "Variable $saludo: $_GET["saludo"] <br>n";
 echo "Variable $texto: $_GET["texto"] <br>n"
 ?>

Hay algunos caracteres raros que no se pueden pasar, tal cual, por la URL. Por ejemplo, una URL no puede contener espacios en blanco, por lo que si intentas enviar una variable por URL con un valor que tiene un espacio en blanco, te dará problemas. Por ejemplo, el signo «*» no puede figurar tampoco en una URL. Así pues, tenemos que hacer algo para convetir esos caracteres, de modo que no den problemas en la URL. La solución en PHP es sencilla, simplemente debemos codificar la variable que tiene caracteres conflictivos a formato URL. Para ello utilizamos la función urlenconde(), que viene en la librería de funciones de PHP.

<a href="mipag.php?var1=<?echo urlencode("mi valor 1");?>&var2=<?echo urlencode("otro+valor%raro.en*url");?>">
 Enlace con paso de variables
 </a>

 

Categorías: Desarrollo web Etiquetas: , , , ,

Envío simple de correos

8 de octubre de 2012 3 comentarios

PHP nos ofrece la posibilidad de enviar emails de una manera sencilla y fácil, para ello el lenguaje nos proporciona la instrucción mail( )

<?php 
   mail(destinatario, tema, texto del mensaje); 
?>

En el parámetro destinatario pondremos la dirección de email a donde se enviará el mensaje, en el parámetro tema el tema o subject del mensaje y el parámetro texto del mensaje el cuerpo del mensaje en formato texto plano.

Existe una sintaxis extendida de la instrucción mail( ) que nos permite añadir información adicional a la cabecera del mensaje.

<?php 
   mail(destinatario, tema, texto del mensaje, información adicional de cabecera); 
?>

En la información de cabecera podremos incluir parámetros adicionales al mensaje como Reply-To:, From:, Content-type:… que nos permiten tener un mayor control sobre el mensaje.

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de envio de email</H1> 
Introduzca su direccion de email: 
<FORM ACTION="email.php" METHOD="GET"> 
<INPUT TYPE="text" NAME="direccion"><BR><BR> 
Formato: <BR> 
<INPUT TYPE="radio" NAME="tipo" VALUE="plano" CHECKED> Texto plano<BR> 
<INPUT TYPE="radio" NAME="tipo" VALUE="html"> HTML<BR><BR> 
<INPUT TYPE="submit" VALUE="Enviar"> 
</FORM> 
</body> 
</html>

email.php

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de envio de email</H1> 
<? 
   $direccion=$_GET['direccion']; 
   $tipo=$_GET['tipo']; 

   if ($direccion!=""){ 
   if ($tipo=="plano"){ 
      // Envio en formato texto plano 

      mail($direccion,
            "Ejemplo de envio de email",
            "Ejemplo de envio de email de texto plano\n\nCursoprogramador.\nhttps://cursoprogramador.wordpress.com/\n Programador de aplicaciones informáticas.\n",
            "FROM: Pruebas <webmaster@hotmail.com>\n"); 
   } else { 
      // Envio en formato HTML 
      mail($direccion,
           "Ejemplo de envio de email", 
           "<html><head><title>Curso Programador</title></head>
            <body>Ejemplo de envio de email de HTML<br><br>CursoProgramador.<br>
            https://cursoprogramador.wordpress.com/<br> <u>Curso</u> para 
            <b>programadores</b>.</body></html>",
           "Content-type: text/html\n", 
           "FROM: Pruebas <webmaster@hotmail.com>\n"); 
   }       
echo "Se ha enviado un email a la direccion: ",$direccion," en formato <b>",$tipo,"</b>."; 
} 
?> 
<br> 
</FORM> 
</body> 
</html>
Categorías: Desarrollo web Etiquetas: , , , , , ,

Method GET y POST

8 de octubre de 2012 Deja un comentario

Los datos de un formulario se envía mediante el método indicado en el atributo METHOD de la etiqueta FORM, los dos métodos posibles son GET y POST.

La diferencia entre estos dos métodos radica en la forma de enviar los datos a la página, mientras que el método GET envía los datos usando la URL, el método POST los envía por la entrada estándar STDIO.

Ejemplo formulario GET

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de procesado de formularios</H1> 

<FORM ACTION="procesa2.php" METHOD="GET"> 
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> 
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> 
<INPUT TYPE="submit" VALUE="Enviar"> 
</FORM> 
</body> 
</html>

Ejemplo formulario POST

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de procesado de formularios</H1> 
<FORM ACTION="procesa2.php" METHOD="POST"> 
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> 
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> 
<INPUT TYPE="submit" VALUE="Enviar"> 
</FORM> 
</body> 
</html>

Ejemplo de fichero PHP

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de procesado de formularios</H1> 
El nombre que ha introducido por GET es: 
<?php echo $_GET['nombre']," ",$_GET['apellidos'] ?>
<br> 
El nombre que ha introducido por POST es: 
<?php echo $_POST['nombre']," ",$_POST['apellidos'] ?> 
<br> 
</body> 
</html>

El resultado final es el mismo, solo que con el método GET podemos ver los parámetros pasados ya que están codificados en la URL.

Categorías: Desarrollo web Etiquetas: , ,

Envío y recepción de datos en PHP

8 de octubre de 2012 Deja un comentario

El lenguaje PHP nos proporciona una manera sencilla de manejar formularios, permitiéndonos de esta manera procesar la información que el usuario ha introducido.

Al diseñar un formulario debemos indicar la página PHP que procesará el formulario, así como en método por el que se le pasará la información a la página.

Ejemplo de formulario:

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de procesado de formularios</H1> 
Introduzca su nombre: 
<FORM ACTION="procesa.php" METHOD="GET"> 
<INPUT TYPE="text" NAME="nombre"><BR> 
<INPUT TYPE="submit" VALUE="Enviar"> 
</FORM> 
</body> 
</html>

El anterior fichero puedes guardarlo como pagina1.html

Al pulsar el botón Enviar el contenido de cuadro de texto es enviado a la página que indicamos en el atributo ACTION de la etiqueta FORM.

Para acceder a las variables del formulario hay que usar el array de parámetros $_POST[] o $_GET[] dependiendo del método usado para enviar los parámetros.

En este ejemplo se ha creado una entrada en el array $_GET[] con el índice ‘nombre’ y con el valor que haya introducido el navegante.

Ejemplo de código PHP:

<html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body> 
<H1>Ejemplo de procesado de formularios</H1> 
El nombre que ha introducido es: <?php echo $_GET['nombre'] ?> 
<br> 
</body> 
</html>

 

Guarda el anterior fichero con el nombre procesa.php

 

Categorías: Desarrollo web Etiquetas: , , , , , ,