Anda di halaman 1dari 22

PROGRAMACIN CON PHP

ELABORADO POR : URIEL HERNNDEZ

MANEJO DE FORMULARIOS
encues.html

<h1 align="center">ENCUESTA DE
CIGARROS CAMEL</h1><hr>
<form action="encuesta.php"
method="get"><br>
EDAD:
<input type="text" name="edad"
maxlength="2"><br><br>
OCUPACIN:
<select name="ocupacion">
<option value="1">ESTUDIANTE
<option value="2">PROFESIONISTA
<option value="3" selected>COMERCIANTE
<option value="4">DESEMPLEADO
</select><br><br>
CONSUME CIGARROS CAMEL:<br><br>
<input type="radio" name="camel" value="si"
checked>SI
<input type="radio" name="camel"
value="no">NO<br><br>
SELECCIONE QUE OTROS TIPOS DE
CIGARRO CONSUME:<br><br>
<input type="checkbox" name="otrasmarcas"
value="marlboro">MARLBORO
<input type="checkbox" name="otrasmarcas"
value="benson">BENSON

<input type="checkbox" name="otrasmarcas"


value="montana">MONTANA
<input type="checkbox" name="otrasmarcas"
value="alitas">ALITAS
<br><br>
DE LA SIGUIENTE LISTA SELECCIONE
CUALES ELEMENTOS FAVORECEN SU
PREFERENCIA POR
NUESTRO PRODUCTO(PUEDE
SELECCIONAR MS DE
UNO):<br><br><center>
<select name="producto" multiple>
<option value="presentacion">POR SU
PRESENTACIN
<option value="promociones">POR SUS
PROMOCIONES
<option value="sabor">POR SU SABOR
<option value="cajetilla">POR SU CAJETILLA
</select>
</center>
<input type="submit" value="ENVIAR
ENCUESTA">
</form>

ACCESOS RESTRINGIDOS

Se puede realizar validacin de usuarios a


travs de 2 variables de servidor:
{

$_SERVER[PHP_AUTH_USER]
Nombre de usuario introducido
$_SERVER[PHP_AUTH_PW]
Contrasea introducida

Esto slo funciona si PHP se instalocono


mdulo de Apache.

acceso.php

<?
if($_SERVER[PHP_AUTH_USER]!="Uriel" ||
$_SERVER[PHP_AUTH_PW]!='CALABAZA'){
header('WWW-Authenticate: Basic
realm="Adonde crees que vas"');
header('HTTP/1.0 401 Unauthorized');
echo "Acceso Denegado";
exit;
}
echo "Acceso Concedido";
?>

acceso2.php

<?
if(!isset($_SERVER[PHP_AUTH_USER])){
header('WWW-Authenticate: Basic realm="Adonde crees que vas"');
header('HTTP/1.0 401 Unauthorized');
echo "Acceso Denegado";
exit;
}
$valido=false;
$archivo="autorizacion.txt";
$usuarios=file($archivo);
foreach($usuarios as $valor){
$sdividir=explode(":",$valor);
if(($_SERVER[PHP_AUTH_USER]==$sdividir[0]) && ($_SERVER[PHP_AUTH_PW]==chop($sdividir[1]))){
$valido=true;
break;
}
}
if(!$valido){
header('WWW-Authenticate: Basic realm="Adonde crees que vas"');
header('HTTP/1.0 401 Unauthorized');
echo "Acceso Denegado";
exit;
}
echo "Bienvenido : " . $sdividir[0];
?>

FALTA DE ESTADO EN LA
WEB

El protocolo HTTP es stateless (sin estado), por lo


que no se almacena informacin acerca de las
conexiones, si se quiere conservar el estado se
tiene que implementar alguna solucin.
{

A travs de la cadena de consulta.


http://132.248.75.122/pagina1.php?usuario=uriel
Hacer uso de campos ocultos en formularios.
<input type=hidden name=usuario value=<? $usuario ?>>

{
{

Almacenar la informacin en el servidor(Sesiones).


Almacenar la informacin en los equipos cliente(Cookies).

COOKIES

Se manejan a travs del arreglo asociativo


$_COOKIE[]
Son archivos de texto que almacenan informacin
con la estructura clave=valor
Su tamao es pequeo, no mayor a 4Kb.
Se utilizan para almacenar poca informacin por
periodos prolongados de tiempo.
Las cookies son almacenadas en los equipos
cliente.
Cuando se van a establecer o borrar cookies debe
de realizarse antes de mandar cualquier salida al
cliente, de lo contrario marcar error.

COOKIES

CREACIN DE COOKIES
int setcookie(string nombre [,string valor] [,int caducidad]
[,string ruta] [,string dominio] [,int seguro])
Donde :

nombre nombre de la cookie


valor valor que almacenar la cookie en el cliente
caducidad indica la hora en que se eliminar la cookie,
generalmente se utiliza time() + N segundos de duracion, para
especificar la duracin de la cookie.
ruta subdirectorio en donde tiene valor la cookie.
dominio dominio en donde tiene valor la cookie.
secure indica si la cookie se transmitir slo a travs de un
canal SSL.
ELIMINACIN DE COOKIES
setcookie(nombre_cookie)

cookies.php

<?
$iaccesos=1;
if(isset($_COOKIE['accesos'])){
$iaccesos=$_COOKIE['accesos'];
$iaccesos++;
}
setcookie("accesos",$iaccesos,time()+100);
?>
<html>
<head>
<title>RECONOCER AL USUARIO CON COOKIES</title>
</head>
<body bgcolor="#3399cc">
<h1 align="center">RECONOCER AL USUARIO CON COOKIES</h1><hr>
<?
if($iaccesos==1)
echo "Gracias por visitar por primera vez nuestra pgina";
else
echo "Cliente asiduo nos ha visitado : $iaccesos";
?>
</body>
</html>

cookies2.html

<html>
<head>
<title>ESTABLECER PREFERENCIAS CON COOKIES</title>
</head>
<body bgcolor="#3399cc">
<h1 align="center">ESTABLECER PREFERENCIAS CON COOKIES</h1><hr>
<form action="cookies2.php" method="get">
NOMBRE:
<input type="text" name="usuario"><br><br>
SELECCIONA LA PROMOCIN QUE TE INTERESE<br>
DEPORTES :
<input type="radio" name="preferencia" value="1"><br>
COMPUTACIN :
<input type="radio" name="preferencia" value="2"><br>
LICORES :
<input type="radio" name="preferencia" value="3"><br>
<input type="submit" value="enviar">
</form>
</body>
</html>

cookies2.php

<?
if($_GET){
$usuario=$_GET['usuario'];
$preferencia=$_GET['preferencia'];
setcookie("usuario",$usuario,time()+3600);
setcookie("preferencia",$preferencia,time()+3600);
}
?>
<?
if(isset($_COOKIE['usuario']))
$usuario=$_COOKIE['usuario'];

if(isset($_COOKIE['preferencia']))
$preferencia=$_COOKIE['preferencia'];

switch($preferencia){
case 1:
$promocion="deportes.jpg";
break;
case 2:
$promocion="computacion.jpg";
break;
case 3:
$promocion="licores.jpg";

break;
default:
$promocion="d.jpg";
}
?>
<html>
<head>
<title>PROCESAR COOKIE</title>
</head>
<body>
<h1 align="center">PROCESAR
COOKIE</h1><hr>
<?
if($usuario!="")
echo "<center>BIENVENIDO
<b>$usuario</b></center><br>";
else
echo "<center>BIENVENIDO POR PRIMERA
VEZ A NUESTRA WEB</center>";
echo "<center>PROMOCIN DE LA
SEMANA<br>";
echo "<img src='" .$promocion . "'></center>";
?>
</body>
</html>

SESIONES

Se manejan a travs del arreglo asociativo


$_SESSION[]
Una sesin es el tiempo que transcurre
desde que el usuario se conecta a un
servidor hasta que sale de la aplicacin,
cierra el navegador o permanece un lapso
de tiempo sin interactuar con la aplicacin.
Las variables de sesin se almacenan en el
servidor, cada una est vinculada a una
nica sesin/usuario a travs de un
identificador de sesin nico.

SESIONES

Para iniciar sesin:


session_start()
Para obtener el id de la sesin:
session_id([string id])
Para obtener el nombre de la sesin:
session name([string nombre])
Creacin de variables de sesin:
$_SESSION[nombre_variable]=valor;
Eliminar variables de sesin:
unset($_SESSION[nombre_variable]);

SESIONES

Directivas de php.ini involucradas:


{

session.auto_start=0
Si se pone el valor a 1 las sesiones inician al
ingresar un nuevo usuario.
session.name=PHPSESSID
Especifica el nombre de la sesin que se usa
como nombre de la cookie
Session.gc_maxlifetime=1440
Nmero de segundos tras los cuales son
eliminados los datos si no se hace una peticin
al servidor.

sesiones.php

<?
session_start();
if(isset($_SESSION['contador']))
$_SESSION['contador']++;
else
$_SESSION['contador']=0;
?>
<html>
<head>
<title>SESIONES</title>
</head>
<body bgcolor="#3399cc">
<h1 align="center">SESIONES</h1><hr>
<?
echo "ID DE LA SESIN : " . session_id() . "<br>";
echo "NOMBRE DE LA SESIN : " . session_name() . "<br>";
echo "NMERO DE VECES QUE HA INGRESADO A LA PGINA EN ESTA SESIN " .
$_SESSION['contador'];
?>
</body>
</html>

sesiones2.php

<?
session_start();
$costo=0;
if($_POST){
$_SESSION['costototal']+=$_POST['producto'
];
}
if(!isset($_SESSION['costototal']))
$_SESSION['costototal']=$costo;
else
$costo=$_SESSION['costototal'];
?>
<html>
<head>
<title>SESIONES</title>
</head>
<body bgcolor>
<h1 align="center">SESIONES</h1><hr>
<center>

<form action="sesiones2.php"
method="post">
SELECCIONE EL ARTCULO A COMPRAR
</center><br><center>
<select name="producto">
<option value="30">pantalones
<option value="25">camisas
<option value="20">zapatos
<option value="10">gorras
</select><br><br>
<input type="submit" value="comprar">
</center>
</form>
<h2 align="center">COSTO TOTAL DE SU
COMPRA:
<? echo $costo; ?>
</h2>
</body>
</html>

FILE UPLOADS

Para subir archivos al servidor se utiliza el array $_FILES[]


El formulario debe de utilizar el mtodo post.
Al pulsar el botn enviar el archivo se copia en el direcorio
definido en la directiva upload_tmp_dir de forma temporal, al
terminar el usuario su sesin se eliminan dichos archivos.
Caractersticas de los archivos:
{
{
{
{
{

name Nombre del archivo transmitido


tmp_name Nombre del archivo temporal
Size Tamao en bytes
Type tipo mime del archivo
Error Cdigo de error(0 es sin errores)

El array asociativo es de la siguiente forma:


$_FILES[archivo_adjunto][name]

FILE UPLOADS

Directivas de php.ini involucradas:


{
{

file_uploads=on
Upload_tmp_dir
Direcorio donde se almacenan de manera
temporal los archivos que se han subido
Upload_max_filesize=2M
Tamao mximo de un archivo
Post_max_size=8M
Tamao mximo de los datos que pueden
enviarse va POST.

FILE UPLOADS

Para subir archivos al servidor se crear el


siguiente formulario:

<html>
<head>
<title>SELECCIONE EL ARCHIVO A SUBIR</title>
</head>
<body>
<h1 align="center">SELECCIONE EL ARCHIVO A SUBIR</h1><hr>
<form action="upload.php" method="post" enctype="multipart/form-data">
ADJUNTAR ARCHIVO :<br>
<input type="file" name="archivo">
<br>
<input type="submit" value="Subir archivo">
</form>
</body>
</html>

FILE UPLOADS

Y el siguiente script de php:

<html>
<head>
<title>UPLOAD DE ARCHIVOS</title>
</head>
<body>
<h1 align="center">UPLOAD DE ARCHIVOS</h1><hr>
<?
$archivo_temp=$_FILES['archivo']['tmp_name'];
$tam=$_FILES['archivo']['size'];
echo "TAMAO DEL ARCHIVO : $tam BYTES<br>";
$ruta="/correo/usuario";
$nombre_archivo=$_FILES['archivo']['name'];
$archivo_destino="$ruta/$nombre_archivo";
echo "NOMBRE DEL ARCHIVO ORIGINAL : $nombre_archivo<br>";
echo "NOMBRE DEL ARCHIVO DESTINO : $archivo_destino<br>";
echo "NOMBRE DEL ARCHIVO TEMPORAL : $archivo_temp<br>";
copy($archivo_temp,$archivo_destino) or die("No se pudo copiar $nombre_archivo");
echo "Archivo recibido";
?>
</body>
</html>

uploadvarios.html

<html>
<head>
<title>SELECCIONE EL ARCHIVO A SUBIR</title>
</head>
<body>
<h1 align="center">SELECCIONE EL ARCHIVO A SUBIR</h1><hr>
<form action="uploadvarios.php" method="post" enctype="multipart/form-data">
ADJUNTAR ARCHIVOS :<br>
<input type="file" name="archivo1"><br>
<input type="file" name="archivo2"><br>
<input type="file" name="archivo3"><br>
<br><br>
<input type="submit" value="Subir archivo">
</form>
</body>
</html>

<html>
<head>
<title>UPLOAD DE VARIOS ARCHIVOS</title>
</head>
<body>
<h1 align="center">UPLOAD DE VARIOS
ARCHIVOS</h1><hr>
<?
echo "<h2 align='center'>NMERO MXIMO DE
ARCHIVOS ADJUNTOS : " . count($_FILES) .
"</h2>";
$inum=0;
for($i=1;$i<=count($_FILES);$i++)
{
$archivo="archivo$i";
$archivo_temp=$_FILES[$archivo]['tmp_name'];
if(!is_uploaded_file($archivo_temp))
echo "ERROR " . $_FILES[$archivo]['error'];
if($archivo_temp=="")
break; echo "<h3> ARCHIVO $i</h3>";
foreach($_FILES[$archivo] as $key => $value)
echo "$key = $value<br>";
echo "<hr>";
$inum++;

$tam=$_FILES[$archivo]['size'];
echo "TAMAO DEL ARCHIVO : $tam
BYTES<br>";
$ruta="/correo/varios";
$nombre_archivo=$_FILES[$archivo]['name'];
$archivo_destino="$ruta/$nombre_archivo";
echo "NOMBRE DEL ARCHIVO ORIGINAL :
$nombre_archivo<br>";
echo "NOMBRE DEL ARCHIVO DESTINO :
$archivo_destino<br>";
echo "NOMBRE DEL ARCHIVO TEMPORAL :
$archivo_temp<br>";
copy($archivo_temp,$archivo_destino) or die("No
se pudo copiar $nombre_archivo");
echo "Archivo recibido<br>";
}
echo "<h3 align='center'>ARCHIVOS
ADJUNTADOS : $inum </h3>";
?>
</body>
</html>