PHP - Variables de Sesión
PHP - Variables de Sesión
PHP - Variables de Sesión
Es otro mtodo para hacer que variables estn disponibles en mltiples pginas sin tener que
pasarlas como parmetro.
ara identificar al usuario que gener las variables de sesin, el servidor genera una clave nica que
es enviada al navegador y almacenada en una cookie. Luego, cada vez que el navegador solicita
otra pgina al mismo sitio, enva esta cookie (clave nica) con la cual el servidor identifica de qu
navegador proviene la peticin y puede rescatar de un archivo de texto las variables de sesin que
se han creado. Cuando han pasado 20 minutos sin peticiones por parte de un cliente (navegador)
las variables de sesin son eliminadas automticamente (se puede configurar el entorno de PHP
para variar este tiempo)
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese nombre de usuario:
<input type="text" name="campousuario"><br>
Ingrese clave:
<input type="password" name="campoclave"><br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
Lo que podemos recalcar es que, cuando en un cuadro de texto queremos ingresar una
clave y no queremos que aparezcan los caracteres tipeados en pantalla, debemos utilizar
el control de tipo password:
$_SESSION['usuario']=$_REQUEST['campousuario'];
$_SESSION['clave']=$_REQUEST['campoclave'];
Es decir, tenemos el vector asociativo $_SESSION que almacena las variables de sesin.
La ltima pgina de este ejemplo tiene por objetivo acceder a las variables de sesin:
<?php
session_start();
?>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
echo "Nombre de usuario recuperado de la variable de sesin:".$_SESSION['usuario'];
echo "<br><br>";
echo "La clave recuperada de la variable de sesin:".$_SESSION['clave'];
?>
</body>
</html>
Para mostrar las variables de sesin, las accedemos por medio del vector asociativo
$_SESSION:
Tengamos en cuenta que en cualquier otra pgina del sitio tenemos acceso a las variables
de sesin slo con llamar inicialmente a la funcin session_start().
La funcin date retorna un string con una fecha y hora, o partes de ella segn un string de
formato que le pasamos como parmetro. Se obtiene la fecha y hora del servidor.
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
echo "La fecha de hoy es:";
$fecha=date("d/m/Y");
echo $fecha;
echo "<br>";
echo "La hora actual es:";
$hora=date("H:i:s");
echo $hora;
echo "<br>";
?>
<a href="pagina2.php">Siguiente problema</a>
</body>
</html>
Los caracteres de formato utilizados en las dos llamadas de la funcin date son:
Los otros caracteres que disponemos al llamar a la funcin date, son retornados sin
cambios, en este caso la barra y los dos puntos.
Los caracteres de formato que veamos son los ms comunes, pero tenemos otras
variantes posibles. Si queremos los das y meses sin el cero delante y el ao con dos
dgitos tenemos entonces:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
echo "La fecha de hoy es:";
$fecha=date("j/n/y");
echo $fecha;
echo "<br>";
?>
<a href="pagina3.php">Siguiente problema</a>
</body>
</html>
Pero la extensin mysqli nos suministra dos formas de comunicarnos con la base de datos
MySQL, una interfaz procedimental que es la que hemos visto en conceptos anteriores y
una interfaz orientada a objetos.
Ahora vamos a ver la sintaxis si queremos utilizar la extensin mysqli pero mediante esta
interfaz orientada a objetos.
Clases
mysqli
mysqli_result
Para conectarnos con el motor de base de datos y seleccionar una base de datos debemos
crear un objeto de la clase mysqli:
$mysql=new mysqli("localhost","root","","base1");
La variable $mysql almacena la referencia del objeto que se acaba de crear de la clase
mysqli.
if ($mysql->connect_error)
die('Problemas con la conexion a la base de datos');
$mysql es un objeto de la clase mysqli y mediante este objeto accedemos a la propiedad
connect_error, si el if se verifica falso es que la propiedad connect_error almacena un
NULL ya que no hay un error en la conexin al servidor y base de datos indicado cuando
creamos el objeto.
Para ejecutar una consulta la clase mysqli tiene un mtodo llamado query, la sintaxis para
llamar a este mtodo tendr una estructura similar a:
Al mtodo query le pasamos como referencia un string con el comando SQL que
queremos que se ejecute, si hay algn error en el comando SQL el mtodo query retorna
un false y se ejecuta el comando seguido al operador or.
Con la funcin die detenemos la ejecucin del programa y accedemos a la propiedad error
que almacena el error generado al tratar de ejecutar el comando SQL.
$mysql->close();
Problema
Desde el PhpMyAdmin procedemos a crear las dos tablas, primero indicamos el nombre
de la tabla:
y seguidamente indicamos la estructura de la tabla rubros:
La primer pgina es el formulario donde ingresamos por teclado la descripcin del rubro a
cargar:
<!doctype html>
<html>
<head>
<title>Alta de rubros</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese la descripcin del rubro:
<input type="text" name="descripcion" size="50" required>
<br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
<!doctype html>
<html>
<head>
<title>Alta</title>
</head>
<body>
<?php
$mysql=new mysqli("localhost","root","","base1");
if ($mysql->connect_error)
die('Problemas con la conexion a la base de datos');
$mysql->close();
$mysql=new mysqli("localhost","root","","base1");
Llamamos al mtodo query componiendo un string con el comando SQL necesario para
efectuar el insert en la tabla rubros, si el mtodo query retorna false se ejecuta el
comando seguido al operador or donde mostramos la propiedad error del objeto $mysql:
$mysql->close();