Está en la página 1de 19

PHP Nivel

Clase 4

Prof. Cristian Sanchez Flores

Almacenar Datos
Basicamente existen 2 formas de
almacenar datos: en Archivos
Planos o en una Base de Datos.
Los Archivos Planos pueden tener
mltiples formatos, pero en general,
cuando hacemos referencia a un
archivo plano, nos estamos refiriendo
a un archivo simple de texto

Como Procesar Archivo?

La operacin de escribir datos en un


archivo incluye los siguientes pasos:

1. En primer lugar, abrir el archivo. Si


el archivo no existe, tendramos que
crearlo.
2. Escribir/Leer los datos en el archivo.
3. Cerrar el archivo.

Fopen( )

Esta funcin me permite abrir un


fichero para grabar, leer o adicionar
datos en el.

$fp = fopen( ruta, nodo )


Donde
el Nodo,Descripcion
puede ser:
Nodo
Nombre
r

Lectura

Abre el archivo para la lectura.

r+

Lectura

Abre el archivo para lectura y


escritura.

Escritura

Abre el archivo para escritura

w+

Escritura

Abre el archivo para escritura y


lectura.

Adjuncion

Abre el archivo para adjuntar


(escribir) nicamente.

a+

Adjuncion

Abre el archivo para adjuntar


(escribir) y leer.

Funcin Fwrite( )
Permite escribir datos en un fichero

Fwrite ( var_fichero, cadena,


longitud )

Funcin Fclose( )

Permite cerrar un archivo.

Fclose (var_fichero)

Demo Procesaorden.php

Adicionamos al ProcesaOrden.php:

//Almacenar en una cadena


$cad = "\n".$date."\t".$llantascan." llantas \t".$aceitecan."
aceite\t"
.$aroscan." aros\t\$".$total."\t". $direccion."\n";
// Abrir archivo
@ $fp = fopen("c:\orders.txt", 'ab');
// si No puede Abrir
if (!$fp)
{ echo '<p><strong> Su Proceso de de Abrir Archivo no lo
puede Hacer....'
.'Por Favor Intentelo
Luego.....</strong></p></body></html>';
exit; }
fwrite($fp, $outputstring, strlen($outputstring));
fclose($fp);
echo '<p>Orden Grabada.</p>';
?>

Leer desde un archivo


Para leer desde un archivo utlilizamos
la funcion fopen() pero con el nodo r.
Feof(), esta funcion permite controlar
el fin de una archivo.
Fgets(), esta funcion permite leer una
linea de un archivo texto.

Demo Verorden.php
<html>
<head>
<title>Contrabando Auto Parts - Resultado de la Orden</title>
</head>
<body>
<h1>Contrabando Auto Parts</h1>
<h2>Ordenes de los Clientes</h2>
<?php
// Abrir archivo
@ $fp = fopen("c:\orders.txt", 'r');
// si No puede Abrir
if (!$fp) {
echo '<p><strong> Su Proceso de de Abrir Archivo no lo puede
Hacer....'
.'Por Favor Intentelo
Luego.....</strong></p></body></html>';
exit; }
while (!feof($fp)) {
$orden = fgets($fp, 999);
echo $orden.'<br />' ; }
fclose($fp);
?>
</body>

Productos Aleatorios
El numero de productos que
comercializamos es muy grande, pero
lo que se quiere es seleccionar solo 3
productos en forma aleatoria para
que aparezcan en la pagina.
Para ello se va a utilizar una Matriz
donde se va a almacenar los grficos
de los productos y luego se va a usar
la funcin Shuffle(), que va a
seleccionar aleatoriamente los
productos.

Demo Aleatoria.php
<?php
$pictures = array('1.jpg', '2.jpg', '3.jpg','4.jpg', '5.jpg',
'6.jpg');
shuffle($pictures);
?>
<html>
<head>
<title>Contrabando Auto Partess</title>
</head>
<body> <center> <h1>Contrabando Auto Partes</h1>
<table width = 100%>
<tr>
<?php
for ( $i = 0; $i < 3; $i++ ) {
echo '<td align="center"><img src="';
echo $pictures[$i];
echo '"width="100" height="100"></td>'; }
?>
</tr>
</table>
</center>
</body>
</html>

Visualizar Archivo con


Matriz

Hasta el momento hemos caragado


los archivos con la funcion fopen(),
pero tambien lo podemos hacer
desde una Matriz, pero para ello
vamos a usar la funcion File() que
carga el archivo entero en una matriz.
Cada linea del archivo se convierte en
un elemento de la matriz.
Tambien se va a utilizar la funcion
Count() para comprobar el numero de
elementos que contiene la matriz.

Demo - verordenes.php
<?php
$orden= file("c:\orders.txt");
$num_de_orden = count($orden);
if ($num_de_orden == 0) {
echo '<p>No Hay Ordenes
Pendientes.....
Por Favor Intentelo
Luegor....</p>'; }
for ($i=0; $i<$num_de_orden; $i+
+) {
echo $orden[$i].'<br />';

Otra Forma vOrdenes2.php

<html>
<head> <title>Contrabando Auto Parts - Ordenes de
Clientes</title></head>
<body>
<h1>Contrabando Auto Parts</h1> <h2>Ordenes de Cliente</h2>
<?php
//Leer el archivo Completo Cada pedido se convierte en un elemento de la
matriz
$orden= file("c:\orders.txt");
$num_de_orden = count($orden); // cuenta el numero de pedidos de la
matriz
if ($num_de_orden == 0) {
echo '<p>No existen Pedidos Pendientes... Intentelo Mas
tarde........</p>'; }
echo "<table border=1>\n";
echo '<tr><th bgcolor="#CCCCFF">Fecha de Orden</th>
<th bgcolor="#CCCCFF">Llantas</th> <th
bgcolor="#CCCCFF">Aceite</th>
<th bgcolor="#CCCCFF">Aros</th> <th
bgcolor="#CCCCFF">Total</th>
<th bgcolor="#CCCCFF">Direccion</th> <tr>';
for ($i=0; $i<$num_de_orden; $i++) {
$linea = explode( "\t", $orden[$i] ); //divide cada linea
echo "<tr><td>$linea[0]</td>
<td align='right'>$linea[1]</td> <td
align='right'>$linea[2]</td>

Control de Acceso
Un Control de Acceso sencillo no
resulta tan dificil de implementarlo,
para ello vamos a hacer un pequeo
ejemplo de control de acceso.

Demo - Acceso.php
<?php

//creando nombres cortos para las variables


@ $name = $_POST['name'];
@ $password = $_POST['password'];
if(empty($name)||empty($password)) {
//el usuario tiene que introducir nombre y usuario... ?>
<h1>Control de Acceso</h1>
Esta Pagina es Ultra Secreta......
<form method="post" action="acceso.php">
<table border="1">
<tr>
<th> Usuario </th>
<td> <input type="text" name="name"> </td>
</tr>
<tr>
<th> Password </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Log In">
</td>
</tr>
</table>
</form>
<?php
}
else if($name=='user'&&$password=='pass')
{
// el usuario y la contrasea son correctos.......
echo '<h1>Bienvenidoooo......!</h1>';
echo 'A nuestra pagina Ultra Secreta.......';
}
else
{
// Usuario y contrasea no son correctos......
echo '<h1>Lo Sentimosss.......!</h1>';
echo 'Usted no esta autorizado a visualizar esta informacion.....';
}

Sesiones

Las variables de sesin se diferencian de las


variables clsicas en que stas residen en el
servidor, son especificas de un solo usuario
definido por un identificador y pueden ser
utilizadas en la globalidad de nuestras pginas.
Para iniciar una sesin podemos hacerlo de dos
formas distintas:
-Declaramos abiertamente la apertura de sesin
por medio de la funcin session_start(). Esta
funcin crea una nueva sesin para un nuevo
visitante o bien recupera la que est siendo
llevada a cabo.
-Declaramos una variable de sesin por medio de
la funcin session_register('variable'). Esta
funcin, adems de crear o recuperar la sesin
para la pgina en la que se incluye tambin sirve
para introducir una nueva variable de tipo
sesin.

Sesiones

Otras funciones tiles para la gestin de


sesiones son:
Session_id(), Nos devuelve el identificador
de la sesin.
Session_destroy(), Da por abandonada la
sesin eliminando variables e identificador.
Session_unregister('variable'), Abandona
una variable sesin
Las sesiones han de ser iniciadas al principio de
nuestro script. Antes de abrir cualquier etiqueta
o de imprimir cualquier cosa. En caso contrario
recibiremos un error.

Demo - sesion.php
<?php
session_register('contador');
?>
<HTML>
<HEAD>
<TITLE>sesion.php</TITLE>
</HEAD>
<BODY>
<?php
If (isset($contador)==0)
{$contador=0;}
++$contador;
echo "<a href=\"sesion.php\">Has recargado esta
pgina $contador
veces</a>";
?>
</BODY>

Demo - sesion1.php

<?php
session_start();
echo "He inicializado la sesin <br>";
echo 'La sesin actual es: '.session_id().'<br>';
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.$SID.'">Contador vale:
'.++$_SESSION['contador']. '</a><br>';
session_name('misesion');
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.SID.'">Contador vale:
'.++$_SESSION['contador'].'</a><br>';
echo 'Ahora el nombre es '.session_name().' y la sesin
'.$misesion.'<br>';
?>

Ejemplos y temas como sesiones,


usuarios, cookies
http://www.webestilo.com/php/php11b.pht

También podría gustarte