domingo, 22 de septiembre de 2013

Proba de nivel

Acaba de ser publicado na plataforma Moodle do curso o exercicio de repaso puntuable sobre HTML, CSS, JAVASCRIPT, PHP e uso de Arquivos.

Pódese acceder á mesma na seguinte dirección, na sección
"UF1845 Acceso a datos en aplicacións web do entorno servidor":


http://83.165.182.60/course/view.php?id=2

Como alternativa, só dende a aula de formación, é posible acceder á mesma páxina na dirección:

http://10.0.0.18/course/view.php?id=2

viernes, 13 de septiembre de 2013

Acceso a ficheros e lectura completa do mesmo

Para poder acceder a ficheiros mediante PHP, é preciso realizar tres pasos:

  1. Abrir o ficheiro mediante fopen.
  2. Ler ou escribir no ficheiro.
  3. Pechar o ficheiro mediante fclose.

A continuación se amosa un exemplo que le o contido de un ficheiro de texto e o inclúe nunha páxina HTML, mediante o uso da función fpassthru.

<?php
//Paso 1 - Apertura de arquivo
$ficheiro = fopen ("saudo.txt","r");
echo ("<BR>Ficheiro aberto.<BR><HR>");


//Paso 2 - Lectura de ficheiro
echo("<DIV style='color:red;'>");
fpassthru ($ficheiro);
echo("</DIV>");

//Paso 3 - Peche de arquivo 
fclose ($ficheiro);
echo ("<HR><BR>Ficheiro pechado");
?>

O resultado é o seguinte:


Sendo o contido do ficheiro o seguinte:



lunes, 9 de septiembre de 2013

Codificación Cesar

Imos realizar un pequeno exercicio de criptografía, mediante o famoso método cesar, atribuido ó mesmísimo Xulio César.

Podedes atopar información sobre este método de codificación e os sistemas de decodificación aplicables na wikipedia (http://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar).


En primeiro lugar creamos un ficheiro HTML que amose en pantalla un formulario para recoller os datos que imos codificar:




<!DOCTYPE html>
<HTML>
<HEAD>
 <TITLE>Formularios</TITLE>
 <!-- Metadatos -->
 <META http-equiv="Content-Type" content="text/html;charset=utf-8">
 <META name="author" content="Vicente Arosa">
 <META name="generator" content="Notepad ++">
</HEAD>
<BODY style="color:black; background-color:white">
 <h2>Formulario encriptacion mediante metodo cesar</h2>

 <FORM name="form001" action="002_cesarEncriptarDesencriptarDesdeFormulario.php" method="get">
  Introduza o texto a codificar: <br>
  <input type="text" name="texto"></input><br>
  Introduza o salto de codificación / decodificacion: <br>
  <input type="text" name="salto"></input><br> 
  
  <input type="submit" value="Codificar / Decodificar"></input>
 </FORM>
</BODY>
</HTML>



Esta páxina envía os datos mediante o método get a unha páxina php que os procesará no servidor, e amosará os resultados no navegador.

Neste caso podería usarse, para o envío, tamén o método post, pero eliximos o método get para poder comprobar na dirección que os datos se envían correctamente.


Cubrimos o formulario:











Pulsamos o botón "Codificar / Decodificar", co que se producirá a chamada á páxina PHP:



Pódese comprobar na parte final da dirección que os datos se envían correctamente.

O código da páxina PHP será o seguinte:






<!DOCTYPE html>
<HTML>
<HEAD>
 <TITLE>Encriptacion cesar</TITLE>
 <!-- Metadatos -->
 <META http-equiv="Content-Type" content="text/html;charset=utf-8">
 <META name="author" content="Vicente Arosa">
 <META name="generator" content="Notepad ++">
 
</HEAD>
<BODY>
 <h2>Encriptacion cesar</h2>

 <?php
  function letraCesar ($letraSinEncriptar, $salto){
   //obtense o codigo ascii da letra a encriptar
   $codigoLetraSinEncriptar = ord ($letraSinEncriptar);
   //sumase tres o codigo da letra a encriptar
   //obtendo o codigo da letra encriptada
   $codigoLetraEncriptada = $codigoLetraSinEncriptar + $salto;
   //obtense o caracter encriptado a partir do seu codigo
   $letraEncriptada = chr ($codigoLetraEncriptada);
   
   //devolvese a letra encriptada
   return $letraEncriptada;
  }
  
 
  function textoCesar ($textoSinEncriptar, $salto) {
   $letraEncriptada;
   $textoEncriptado = "";
   //recorrese toda a cadea
   for ($i = 0; $i < strlen($textoSinEncriptar); $i++){
    //enviase cada letra a encriptar
    $letraEncriptada = letraCesar (substr($textoSinEncriptar, $i, 1), $salto);
    //engadese a letra encriptada á cadea a retornar
    $textoEncriptado = $textoEncriptado . $letraEncriptada;
   }
   
   return $textoEncriptado;
  }
 
  $v1 = textoCesar ($_GET["texto"], $_GET["salto"]);
  echo ($v1);
  echo ("<br>");
 ?>
 
</BODY>
</HTML>


Como se pode comprobar, se subdivide o problema en dous subproblemas, creando unha función para resolver cada un deles. 

En primeiro lugar o problema da codificación se reduce a codificar cada unha das letras, polo que se crea a función letraCesar que docificará unha única letra, devolvendoa codificada. 

O segundo problema redúcese a repetir este proceso para cada letra da mensaxe a codificar, deste traballo se encarga a función textoCesar. Finalmente o único que é preciso e realizar unha chamada a esta última función co texto correcto, o cal se recibe a través do array asociativo $_GET.

O resultado é o seguinte:
 
Dada a naturaza da encriptación Cesar o proceso de encriptación é o mesmo que o de desencriptación pero cambiando o signo do salto, neste caso para decodificar un texto codificado será suficiente con indicar que o salto é o mesmo aplicado na codificación, pero en signo negativo.
No caso do exemplo, decodificaremos "Krod" con salto -3:
O proceso se pode ver no seguinte vídeo:

martes, 3 de septiembre de 2013

Actualización plataforma Moodle

Actualizóuse a plataforma Moodle do curso, engadindo a posibilidade de descargar o código fonte dos exemplos realizados en clase.

Para acceder ás descargas é preciso acceder á sección Exercicios resoltos.



Dentro desta opción, se accede ó listado de arquivos comprimidos en formato zip, dos exemplos resoltos en clase.