Manual de PHP
Manual de PHP
<?php
echo "Apache PHP MySQL<br>";
echo "Una gran alternativa";
?>
<script language="PHP">
echo "Zend Studio<br>";
echo "Una gran herramienta";
</script>
11. Ejemplo que muestra que las variables que estan dentro de la cadena son reemplazadas
por su valor
<font face="Verdana">
<?php
$a = 5;
$b = 9;
$c = $a * $b;
echo "Variables dentro de una cadena se expanden<br>";
echo "\$a = $a<br>";
echo "\$b = $b<br>";
echo "\$c = $c<br>";
?>
</font>
12. Ejemplo que muestra que se puede insertar codigo HTML dentro de una cadena
<?php
echo "<font face=\"Verdana\">";
echo "<H2>Software Libre</H2>";
echo "<H3>Es la Alternativa</H3>";
echo "</font>";
?>
13. Ejemplo que muestra que para concatenar dos cadenas se utiliza punto.
<font face="Helvetica">
<?php
$s1 = "<b>Software Libre</b><br>";
$s2 = "Es una muy buena alternativa<br>";
$s3 = "para Desarrollar Soluciones<br>";
$s4 = "Empresariales Seguras y Confiables";
echo $s1 . $s2 . $s3 . $s4;
?>
</font>
ESTRUCTURAS DE CONTROL
ESTRUCTURA DE CONTROL IF
Ejemplo1:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,10);
echo "El valor sorteado es $valor<br>";
if ($valor<=5)
{
echo "Es menor o igual a 5";
}
else
{
echo "Es mayor a 5";
}
?>
</body>
</html>
Ejemplo2:
<?php
$a=10;
$b=5;
if ($a > $b)
print "a es mayor que b";
?>
Ejemplo3:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,100);
echo "El valor sorteado es $valor<br>";
if ($valor<=9)
{
echo "Tiene un dgito";
}
else
{
if ($valor<100)
{
echo "Tiene 2 dgitos";
}
else
{
echo "Tiene 3 dgitos";
}
}
?>
</body>
</html>
Ejemplo4:
<?php
$a=5;
$b=10;
if ($a > $b) {
print "a es mayor que b";
}
else {
print "a no es mayor que b";
}
?>
Ejemplo5:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=100;//rand(1,100);
echo "El valor sorteado es $valor<br>";
if ($valor<=9)
{
echo "Tiene un dgito";
}
elseif ($valor<100)
{
echo "Tiene 2 dgitos";
}
else
{
echo "Tiene 3 dgitos";
}
?>
</body>
</html>
Ejemplo6:
<?php
$a=5;
$b=5;
if ($a > $b) {
print "a es mayor que b";
}
elseif ($a == $b) {
print "a es igual que b";
}
else {
print "a no es mayor que b";
}
?>
Ejemplo8:
<?php
for($i = 2; $i <= 10; $i += 2)
{
echo "......................\n";
//contando nmeros pares
echo "i vale: " . $i . "\n";
//sus cuadrados
echo "i^2: " . $i*$i . "\n";
//y sus inversos
echo "1/i: " . 1/$i . "\n";
}
?>
Ejemplo11:
<?php
$num = 1;
while ($num < 5) {
echo " $num ";
if ($num == 3) {
echo "Aqu paramos";
break;
}
$num++;
}
?>
Ejemplo12:
<?
$a = 3;
while ($a <= 7){
echo $a++;
} // el contenido de While entre llaves
?>
Ejemplo13:
<?php
$i = 1;
while($i <= 5):
echo "\$i = $i" . "\n";
$i += 1;
endwhile;
?>
Ejemplo14:
<?php
$valor=rand(1,100);
$inicio=1;
while($inicio<=$valor)
{
echo $inicio;
echo "<br>";
$inicio++;
}
?>
</body>
</html>
Ejemplo15:
<html>
<head>
<title>Problema</title>
</head>
<body>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
//Mostramos los nmeros de los das del 1 a la fecha actual;
$dia=date("d");
$inicio=1;
while($inicio<=$dia)
{
echo $inicio."<br>";
$inicio++;
}
?>
</body>
</html>
Ejemplo16:
<?php
$n = 1;
$i = 1;
while(true){
$i = $i + 1;
$n = $n * $i;
if ($n > 100) break;
}
echo "i = " . $i;
echo "<nowiki><br/></nowiki>n = " . $n;
?>
Ejemplo17:
<?php
$n = 1;
$i = 50;
$mensaje = "No hay mltiplos de 11 entre " "50 y 100. (no hay?)";
while($i < 100){
if ($i % 11 == 0)
{
$mensaje = "El primer mltiplo de 11 " .
"entre 50 y 100 es: " . $i;
break;
}
$i += 1;
}
echo $mensaje;
?>
Ejemplo18:
<body bgcolor="#D2EBF7">
<?php
echo "<h4>Ejemplo de BREAK</h4>";
$k = 1;
while ($k <= 10) {
echo "\$k = $k <br>";
if( $k == 5) { break; }
$k++;
}
?>
</body>
Ejemplo19:
<?php
$x=0;
while($x<300){
$x=$x+1;
if($x==2)
continue;
echo "X vale $x <br>";
if($x==4)
break;
}
?>
ESTRUCTURA DO WHILE
Ejemplo20:
<?php
$i=0;
do
{
$i++;
echo "$i<br>";
}
while ($i<5);
?>
Ejemplo21:
<?php
$i = 5;
$n = 1;
do {
$n = $n * $i;
$i -= 1;
}while($i > 1);
echo "5! es igual a: " . $n
?>
ESTRUCTURA FOREACH
Ejemplo22:
<?
$moneda=array("Espaa"=> "Peseta","Francia" => "Franco","USA" => "Dolar");
Foreach ($moneda as $clave=>$valor)
{
echo "Pais: $clave Moneda: $valor<br>";
}
?>
Ejemplo23:
<body bgcolor="#D2EBF7">
<?php
echo "<h4>Recorrido de un Array Asociativo</h4>";
$a = array(
"Chiclayo" => "Amistad",
"Trujillo" => "Primavera",
"Cuzco" => "Machu Picchu",
"Arequipa" => "Ciudad Blanca"
);
<html>
<body>
<?php
$SalarioTrabajador = 3500;
$Impuesto = 20; // Porcentaje
$SueldoReal = $SalarioTrabajador - (($SalarioTrabajador /
100) * $Impuesto);
echo "Sueldo del trabajador sin impuesto: $SalarioTrabajador<BR>";
echo "Con el impuesto :$SueldoReal";
?>
</body >
</html>
<?php
$Base=15;
$Altura=12;
$Area = ($Base * $Altura)/2;
printf ("El area del triangulo es: $Area");
?>
Programa que dados 2 nmeros calcule la suma, resta, multiplicacin, divisin, y modulo
usando printf
La suma de 8 y 5 es: 13
La resta de 8 y 5 es: 3
La multiplicacin de 8 y 5 : 40
La division de 8 y 5: 1.60
El modulo de 8 y 5 es 3.0
<?php
$Num1=8;
$Num2=5;
printf("La suma de $Num1 y $Num2 es: <b>%d</b><br>", $Num1 + $Num2 );
printf("La resta de $Num1 y $Num2 es: <b>%d</b><br>", $Num1 - $Num2 );
printf("La multiplicacin de $Num1 y $Num2 : <b>%d</b><br>", $Num1 * $Num2 );
printf("La division de $Num1 y $Num2: <b>%0.2f</b><br>", $Num1 / $Num2 );
printf("El modulo de $Num1 y $Num2 es <b>%0.1f</b><br>", $Num1 % $Num2 );
?>
<HTML>
<HEAD>
<TITLE> Mi Pagina </TITLE>
</HEAD>
<BODY>
<CENTER>
PROGRAMACION PHP <BR>
</CENTER>
<?
$numero1=15; $numero2=30;
$mayor=0;
if ($numero1 > $numero2)
$mayor=$numero1;
else
$mayor=$numero2;
PROGRAMACION PHP
TABLA DE MULTIPLICAR
5 X 1 =5
5 X 2 =10
5 X 3 =15
5 X 4 =20
5 X 5 =25
5 X 6 =30
5 X 7 =35
5 X 8 =40
5 X 9 =45
5 X 10 =50
<HTML>
<HEAD><TITLE> Tabla de multiplicar </TITLE> </HEAD>
<BODY>
<CENTER> <H2> INSTITUTO SUPERIOR TECNOLOGICO
METROPOLITANO</H2>
PROGRAMACION PHP <BR>
TABLA DE MULTIPLICAR <BR>
</CENTER>
<?
$tabla=5;
for($x=1;$x<=10;$x++)
echo "$tabla X $x =". $tabla * $x."<BR>";
?>
</BODY>
</HTML>
TERCERA PRACTICA DE PHP
El proceso para el manejo de FORMULARIOS requiere generalmente dos pginas, una que
implementa el formulario y otra que procesa los datos cargados en el formulario.
La estructura mnima de un formulario es la siguiente: para la entrada de un nombre de persona, un
objeto text y un botn para el envo del dato al servidor:
<html>
<head>
<title>Formulario de entrada del dato</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese su nombre:
<input type="text" name="nombre">
<br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
Esta pgina est completamente codificada en HTML, es decir un formulario contiene marcas
HTML puras.
La marca <form> y </form> nos permite definir un formulario en la pgina. La marca FORM tiene
dos propiedades que debemos inicializar obligatoriamente: action y method. La propiedad action
indica el nombre del archivo que recibir los datos ingresados por el operador en el formulario y
que sern enviados al servidor cuando se presione el botn (submit). La propiedad method indica
como se organizan esos datos para enviarlos al servidor, pudiendo ser mediante los mtodos post o
get (normalmente los datos de un formulario se envian mediante el mtodo post).
Para crear un cuadro de texto para el ingreso del nombre debemos definir un objeto de tipo "text" y
darle un nombre:
<input type="text" name="nombre">
La propiedad type nos permite definir el tipo de control y con la propiedad name indicamos el
nombre del control.
Por ltimo todo formulario tiene un botn de tipo submit:
<input type="submit" value="confirmar">
Tambin utilizamos la marca input pero en la propiedad type indicamos que se trata de un botn de
envio de datos. En la propiedad value indicamos el texto que queremos que aparezca en el botn.
Ahora necesitamos una pgina con un pequeo programa en PHP que procese los datos ingresados
en el formulario:
<html>
<head>
<title>Captura de datos del form</title>
</head>
<body>
<?php
echo "El nombre ingresado es:";
echo $_REQUEST['nombre'];
?>
</body>
</html>
Para acceder al dato en PHP se cuenta con un vector llamado $_REQUEST indicando como
subndice el nombre del cuadro de texto que definimos en el formulario (dicho nombre es sensible a
maysculas y minsculas)
En nuestro problema slo mostramos por pantalla el valor ingresado en la pgina anterior:
echo $_REQUEST['nombre'];
Ejemplo1:
Pagina1.php
<html>
<head>
<title>Formulario de entrada del dato</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese su nombre:
<input type="text" name="nombre">
<br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
Pgina2.php
<html>
<head>
<title>Captura de datos del form</title>
</head>
<body>
<?php
echo "El nombre ingresado es:";
echo $_REQUEST['nombre'];
?>
</body>
</html>
Ejemplo2:
Pgina3.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese primer valor:
<input type="text" name="valor1">
<br>
Ingrese segundo valor:
<input type="text" name="valor2">
<br>
<input type="radio" name="radio1" value="suma">sumar
<br>
<input type="radio" name="radio1" value="resta">restar
<br>
<input type="submit" name="operar">
</form>
</body>
</html>
Pagina4.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if ($_REQUEST['radio1']=="suma")
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
}
else
{
if ($_REQUEST['radio1']=="resta")
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
}
?>
</body>
</html>
Ejemplo3:
Pagina5.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina6.php" method="post">
Ingrese primer valor:
<input type="text" name="valor1">
<br>
Ingrese segundo valor:
<input type="text" name="valor2">
<br>
<input type="checkbox" name="check1">sumar
<br>
<input type="checkbox" name="check2">restar
<br>
<input type="submit" name="operar">
</form>
</body>
</html>
Pagina6.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if (isset($_REQUEST['check1']))
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma."<br>";
}
if (isset($_REQUEST['check2']))
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
?>
</body>
</html>
Ejemplo4:
Pagina7.php
<html>
<head>
<title>Problema</title>
</head>
<body>
</body>
</html>
Pagina8.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
if ($_REQUEST['operacion']==suma)
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
}
else
{
if ($_REQUEST['operacion']==resta)
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "La resta es:".$resta;
}
}
?>
</body>
</html>
Ejemplo5
Pagina9.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina10.php" method="post">
Ingrese nombre:<input type="text" name="nombre"><br>
Ingrese su curriculum:<br>
<textarea name="curriculum"></textarea>
<br>
<input type="submit" value="Confirmar">
</form>
</body>
</html>
Pagina10.php
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
echo "El nombre ingresado:".$_REQUEST['nombre'];
echo "<br>";
echo "El curriculum:".$_REQUEST['curriculum'];
?>
</body>
</html>
Ejemplo6:
Pagina11.php
<body bgcolor="#D2EBF7">
<h1>Clculo de Sueldo</h1>
<form method="post" action="pagina12.php">
<b>Dias Trabajados:</b><input type="text" name="dt"><br>
<b>Horas por Da:</b><input type="text" name="hd"><br>
<b>Costo por Hora:</b><input type="text" name="ch"><br>
<input type="submit" value="Enviar">
<input type="reset" value="Limpiar">
</form>
</body>
Pagina12.php
<body bgcolor="#D2EBF7">
<?php
$total = $_POST["dt"] * $_POST["hd"] * $_POST["ch"];
$ir = $total * 0.10; # Impuesto a la renta
$is = $total * 0.017; # Impuesto de solidaridad
$neto = $total - $ir - $is;
?>
<h1>Clculo de Sueldo</h1>
<table border=1 width=400>
<tr>
<th align=center colspan=2 border=0>Datos</th>
</tr>
<tr>
<td width=70%><b>Das trabajados</b></td>
<td><?php echo $_POST["dt"] ?></td>
</tr>
<tr>
<td><b>Horas por da</b></td>
<td><?php echo $_POST["hd"] ?></td>
</tr>
<tr>
<td><b>Costo por hora</b></td>
<td><?php echo $_POST["ch"] ?></td>
</tr>
<tr>
<th align=center colspan=2 border=0>
Resultado
</th>
</tr>
<tr>
<td><b>Total</b></td>
<td><?php echo $total ?></td>
</tr>
<tr>
<td><b>Impuesto Renta</b></td>
<td><?php echo $ir ?></td>
</tr>
<tr>
<td><b>Impuesto Solidaridad</b></td>
<td><?php echo $is ?></td>
</tr>
<tr>
<td><b>Neto</b></td>
<td><?php echo $neto ?></td>
</tr>
</table>
<input type="button" value="Back" onClick="history.back()">
</body>
Ejemplo7:
Pagina13.php
<body bgcolor="#D2EBF7">
<form method=post action="pagina14.php">
<b>Nombre:</b>
<input type="text" name="nombre" size="20" maxlength="20" ><br>
<b>Email:</b>
<input type="text" name="email" size="20" maxsize="20"><br>
<input type="submit" value="Enviar">
<input type="reset" value="Limpiar">
</form>
</body>
Pagina14.php
<body bgcolor="#D2EBF7">
<?php
echo "<b>Su nombre es:</b> $nombre<br>";
echo "<b>Su Email:</b> $email<br>";
?>
<input type="button" value="Back" onClick="history.back()">
</body>
Ejemplo8:
Pagina15.php
<html>
<title> Suma de dos numeros </title>
<body>
<form action="pagina16.php" method="post">
<center>
<h1> Suma de dos numeros </h1>
<p> Numero 1 <input type="text" align="LEFT" name="numero1" />
<p> Numero 2 <input type="text" align="LEFT" name="numero2" />
<br> <br>
<input type="submit" src="obtenersuma.php" name="enviar" value="Enviar" />
</center>
</form>
</body>
</html>
Ejemplo9
Pagina16.php
<html>
<body>
<?php
if($enviar){
$resultado=$numero1 + $numero2;
echo "Resultado= $resultado";
}
?>
</body>
</html>
Ejemplo10:
Pagina17.php
<html>
<title> Probar script </title>
<body>
<center>
<p> Numero 1 <input type="text" align="LEFT" name="numero1" />
<p> Numero 2 <input type="text" align="LEFT" name="numero2" />
<p> Total Suma <input type="text" value="0" align="LEFT"
name="total" readonly="readonly"/>
<br> <br>
<input type="button" value="Sumar"
name="suma" onclick="sumar_datos(numero1.value,numero2.value,total)"/>
<input type="button" value="Limpiar"
name="borrar" onclick="limpiar(numero1,numero2,total)"/>
</center>
</body>
<script languaje="javascript">
function sumar_datos(n1,n2,inputtext){
var numero1=parseInt(n1);
var numero2=parseInt(n2);
inputtext.value= numero1 + numero2;
}
function limpiar(num1,num2,tot){
num1.value="";
num2.value="";
tot.value="";
tot.focus;
}
</script>
</html>
Ejemplo11:
Pagina18.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["control"])){
?>
<h3>Calculo del Area de de Triangulo</h3>
<form method="post" action="pagina18.php">
<input type="hidden" name="control" value="12345">
Base:<input type="text" name="base"><br>
Altura:<input type="text" name="altura"><br>
<input type="submit" value="Enviar">
</form>
<?php
}
else {
$base = $_POST["base"];
$altura = $_POST["altura"];
$area = $base * $altura / 2;
echo "<h3>Resultado</h3>";
echo "\$base = $base <br>";
echo "\$altura = $altura <br>";
echo "\$area = $area <br>";
echo "<a href='pagina18.php'>Nuevo Calculo</a>";
}
?>
</body>
Ejemplo12
Pagina19.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h3>Ingrese un Nmero Entero</h3>
<form method = "post" action = "pagina19.php">
<b>Nmero:</b>
<input type="text" name="n" size="3" maxlength="3"><br>
<input type="hidden" name="seguro" value="alianza">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
$n = $_POST["n"];
if(!is_numeric($n)){
$msg = "El dato ingresado no es un nmero";
}
else{
if((float)$n != (int)$n){
$msg = "El nmero ingresado no es un entero";
}
else{
$n = (int)$n;
$r = $n % 2;
if($r==0){
$msg = "Es un nmero PAR";
}
else{
$msg = "Es un nmero IMPAR";
}
$msg = "\$n = $n<br>" . $msg;
}
}
echo $msg . "<br>";
echo "<a href=pagina19.php>Nueva Prueba</a>";
}
?>
</body>
Ejemplo13
Pagina20.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h3>Calculo de Promedio</h3>
<form method = "post" action = "pagina20.php">
<b>Nota 1:</b>
<input type="text" name="n1" size="2" maxlength="2"><br>
<b>Nota 2:</b>
<input type="text" name="n2" size="2" maxlength="2"><br>
<input type="hidden" name="seguro" value="alianza">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
// Datos
$n1 = (float)$_POST["n1"];
$n2 = (float)$_POST["n2"];
// Proceso
$pr = ($n1 + $n2) / 2;
if($pr >= 18){ $cond = "Excelente"; }
elseif($pr >= 15){ $cond = "Bueno"; }
elseif($pr >= 11){ $cond = "Regular"; }
elseif($pr >= 6){ $cond = "Malo"; }
else{$cond = "Psimo"; }
// Reporte
echo "Nota 1: $n1<br>";
echo "Nota 2: $n2<br>";
echo "Promedio: $pr<br>";
echo "Condicin: $cond<br>";
echo "<a href='pagina20.php'>Otros Datos</a>";
}
Ejemplo14
Pagina21.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["ciudad"])){
?>
<h3>Conoce el Per</h3>
<form method = "post" action = "pagina21.php">
<b>Ciudad a visitar:</b>
<select size="1" name="ciudad">
<option value="1">Chiclayo</option>
<option value="2">Trujillo</option>
<option value="3">Cajamarca</option>
<option value="4">Iquitos</option>
<option value="5">Huaraz</option>
<option value="6">Huancayo</option>
<option value="7">Arequipa</option>
<option value="8">Cuzco</option>
</select>
<br><input type="submit" value="Enviar">
</form>
<?php
}
else{
$ciudad = $_POST["ciudad"];
echo "Ciudad seleccionada: $ciudad<br>";
switch($ciudad){
case 1:
echo "Chiclayo, ciudad de la amistad.";
break;
case 2:
echo "Trujillo, ciudad de la eterna primavera.";
break;
case 3:
echo "Cajamarca, simplemente una ciudad espectacular.";
break;
case 4:
echo "Iquitos, no te podras olvidar de sus encantos";
break;
case 5:
echo "Huaraz, sus nevados son impresionantes.";
break;
case 6:
echo "Huancayo, ciudad INCONTRASTABLE.";
break;
case 7:
echo "Arequipa, lo mejor es su gente.";
break;
case 8:
echo "Cuzco, quedaras encantado.";
break;
}
echo "<br><a href='pagina21.php'>Nueva Seleccin</a>";
}
?></body>
Ejemplo15
Pagina22.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h3>Dos Nmeros Enteros</h3>
<form method = "post" action = "pagina22.php">
N1: <input type="text" name="n1" size="3"> <br>
N2: <input type="text" name="n2" size="3"> <br>
<input type="hidden" name="seguro" value="12345">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
$n1 = $_POST["n1"];
$n2 = $_POST["n2"];
echo "<table border='1' width='200'>";
echo "<tr>";
echo "<th>Nmero</th>";
echo "<th>Mltiplo de 3</th>";
echo "</tr>";
while ($n1 <= $n2){
echo "<tr>";
echo "<td>$n1</td>";
if($n1%3 == 0){ echo "<td>Si</td>"; }
else{ echo "<td>No</td>"; }
echo "</tr>";
$n1++;
}
echo "</table>";
echo "<br><a href='pagina22.php'>Nueva Prueba</a>";
}
?>
</body>
Ejemplo16
Pagina23.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h2>Tabla de Multiplicar</h2>
<form method = "post" action = "pagina23.php">
Nmero <input type="text" name="n" size="2">
<input type="hidden" name="seguro" value="12345">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
$n = $_POST["n"];
$k = 1;
echo "<table>";
do{
$r = $n * $k;
echo "<tr>";
echo "<td>$n<td>";
echo "<td>*<td>";
echo "<td>$k<td>";
echo "<td>=<td>";
echo "<td>$r<td>";
echo "<tr>";
} while ($k++ < 12);
echo "</table>";
echo "<a href='pagina23.php'>Nueva Prueba</a>";
}
?>
</body>
Ejemplo17
Pagina24.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h2>Calculo de Factorial</h2>
<form method = "post" action = "pagina24.php">
Nmero <input type="text" name="n" size="2" maxlength="2">
<input type="hidden" name="seguro" value="12345">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
$n = $_POST["n"];
for ($i = 2, $f = 1; $i <= $n; $i++ ) {
$f *= $i;
};
echo "Nmero: $n <br>";
echo "Factorial: $f <br>";;
echo "<a href='pagina24.php'>Nueva Prueba</a>";
}
?>
</body>
Ejemplo18
Pagina25.php
<body bgcolor="#D2EBF7">
<?php
if(!isset($_POST["seguro"])){
?>
<h2>Nmero Primo</h2>
<form method = "post" action = "pagina25.php">
Nmero <input type="text" name="n" size="2" maxlength="2">
<input type="hidden" name="seguro" value="12345">
<input type="submit" value="Enviar">
</form>
<?php
}
else{
$n = (int)$_POST["n"];
$esPrimo = 1;
$k = 2;
while ($k < $n And $esPrimo == 1) {
if (($n % $k) == 0) { $esPrimo = 0; }
$k ++;
}
if ($esPrimo == 1){ $msg = "Primo"; }
else { $msg = "No es Primo"; }
echo "Nmero: $n <br>";
echo "Condicin: $msg <br>";
echo "<a href='pagina25.php'>Nueva Prueba</a>";
}
?>
</body>
Ejemplo19
Pagina26.php
<body bgcolor="#D2EBF7">
<h2>Serie de Fibonacci</h2>
<table>
<tr>
<td valign="top" width = "100">
<form method = "post" action = "pagina26.php">
N <input type="text" name="n" size="2" maxlength="2"><br>
<input type="submit" value="Enviar">
</form>
</td>
<td valign="top" width="250">
<?php
if( isset($_POST["n"]) ) {
$n = $_POST["n"];
if ($n <= 2){ echo "Debe ingresar un nmero mayor que 2."; }
else {
$cad = "0 1"; $a = 0; $b = 1;
for( $k = 3; $k <= $n; $k++ ) {
$c = $a + $b;
$cad .= " $c";
$a = $b;
$b = $c;
}
echo "N: $n <br>";
echo "Serie: <br>";
echo "<textarea name='resultado' rows='4' cols='20' readonly='true'>";
echo $cad;
echo "</textarea>";
}
}
?>
</td>
</tr>
</table>
</body>
Ejemplo20
Pagina27.php
<body bgcolor="#D2EBF7">
<?php
if( isset($_POST["saldo"]) ){
$saldo = (double)$_POST["saldo"];
$tipo = $_POST["tipo"];
$importe = (integer)$_POST["importe"];
$msg = "Saldo Actual: $saldo <br>";
$msg .= "Tipo: $tipo <br>";
$msg .= "Importe: $importe <br>";
if( $tipo == "D"){
$saldo += $importe;
$msg .= "Nuevo Saldo: $saldo<br>";
}
else{
if( ($saldo - $importe) < 0 ){
$msg = "Operacin no es posible. <br>";
$msg .= "No tiene fondos suficientes. <br>";
}
else{
$saldo -= $importe;
$msg .= "Nuevo Saldo: $saldo<br>";
}
}
}
else{ $saldo = 5000.0; }
?>
<h3>Movimiento Bancario</h3>
Saldo: <?php echo $saldo; ?><br>
<form method = "post" action = "pagina30.php">
Tipo:
<select name="tipo" size="1">
<option value="D">Depsito</option>
<option value="R">Retiro</option>
</select><br>
Importe <input type="text" name="importe" size="4" maxlength="4"><br>
<input type="hidden" name="saldo" value="<?php echo $saldo; ?>">
<input type="submit" value="Enviar">
<input type="reset" value="limpiar">
</form>
<hr size="2">
<?php
if( isset($msg) ) {
echo $msg;
echo "<hr size='2'>";
}
?>
Ejemplo21
Pagina28.php
<body bgcolor="#D2EBF7">
<h3>Divisores de un Nmero</h3>
<table>
<tr>
<td valign="top" width = "100">
<form method = "post" action = "pagina28.php">
N <input type="text" name="n" size="3" maxlength="3"><br>
<input type="submit" value="Enviar">
</form>
</td>
<td valign="top" width="250">
<?php
if( isset($_POST["n"]) ) {
$n = $_POST["n"];
$msg = "";
for( $j = 2; $j < $n; $j++ ) {
if( ($n % $j) == 0 ) { $msg .= "$j "; }
}
if( $msg == "") { $msg = "Es un nmero primo."; }
echo "N: $n <br>";
echo "Divisores: <br>";
echo "<textarea name='resultado' rows='4' cols='20' readonly='true'>";
echo $msg;
echo "</textarea>";
}
?>
</td>
</tr>
</table>
</body>
Ejemplo22
Pagina29.php
<body bgcolor="#D2EBF7">
<h3>Palndromos</h3>
<table>
<tr>
<td valign="top" width = "250">
<form method = "post" action = "pagina33.php">
Cadena <br>
<input type="text" name="cad" size="30" maxlength="30"><br>
<input type="submit" value="Enviar">
</form>
</td>
</tr>
<tr>
<td valign="top" width="250">
<?php
if( isset($_POST["cad"]) ) {
$cad = $_POST["cad"];
$cadinv = ""; // Cadena invertida
for( $j = 0; $j < strlen($cad); $j++ ) {
$cadinv = substr( $cad, $j, 1) . $cadinv;
}
if( $cad == $cadinv) { $msg = "Se trata de un palndromo."; }
else{ $msg = "No es un palndromo"; }
echo "Cadena: $cad <br>";
echo "Resultado: $msg";
}
?>
</td>
</tr>
</table>
</body>
CONTROLES EN FORMULARIOS
El programa que recibe los datos los guarda automticamente en la matriz $_REQUEST. Mediante
la orden print_r($_REQUEST) se puede mostrar el contenido de la matriz $_REQUEST.
El siguiente ejemplo muestra lo que escribira el programa PHP (ejemplo.php) si recibiera la
informacin del formulario anterior (ejemplo.html).
Print_r : Funcin que muestra informacin sobre una variable en el modo que es ledo por las
personas.
<?php
print_r($_REQUEST);
?>
CAJA DE TEXTO, CAJA DE CONTRASEA Y AREA DE TEXTO
CASILLA DE VERIFICACION
Este control se enva solamente si se marca la casilla. El valor enviado es "on" si la casilla no tiene
definido el atributo value o el valor del atributo value si ste est definido.
Cdigo fuente Control $_REQUEST
BOTON RADIO
Este control se enva solamente si se marca alguno de los botones radio que forman el control. El
valor enviado es "on" si el botn marcado no tiene definido el atributo value o el valor del atributo
value si ste est definido.
MENU
Este control enva siempre la opcin elegida. El valor enviado es el contenido de la etiqueta option
elegida si la opcin elegida no tiene definido el atributo value o el valor del atributo value si ste
est definido.
Si el men admite seleccin mltiple, entonces el nombre del men debe acabar con corchetes ([]) y
se enva como una matriz, de tantos elementos como opciones se hayan elegido.
Cdigo fuente Control $_REQUEST
<select name="menu1">
<option
selected="selected"></option> Array ( [menu1] => )
<option></option>
</select>
<select name="menu2">
<option selected="selected">Opcin
1</option>
Array ( [menu2] =>
<option>Opcin 2</option> Opcin 1 )
</select>
<select name="menu3">
<option selected="selected"
value="Uno">Opcin 1</option>
<option value="Dos">Opcin Array ( [menu3] => Uno )
2</option>
</select>
<select name="menu4[]" size="3"
multiple="multiple">
<option selected="selected">Opcin Array ( [menu4] => Array
1</option> ( [0] => Opcin 1 [1] =>
<option>Opcin 2</option> Opcin 3 ) )
<option>Opcin 3</option>
(Marcados 1 y 3)
</select>
CONTROL OCULTO
Este control se enva siempre y el valor enviado es el valor del atributo value.
Cdigo fuente Control $_REQUEST
<input type="hidden" name="oculto1" /> Array ( [oculto1] => )
<input type="hidden" name="oculto2" Array ( [oculto2] =>
value="Cualquier cosa" /> Cualquier cosa
IMAGEN
El control de tipo imagen inserta una imagen que funciona como un botn. Al hacer clic en un
punto de la imagen es como si se hubiera pulsado a un botn submit y se envan las coordenadas del
punto en el que se ha hecho clic
Cdigo fuente Control $_REQUEST
RECOGIDA DE DATOS
Matriz $_REQUEST
Cuando se enva un formulario, PHP almacena la informacin recibida en una matriz llamada
$_REQUEST. El nmero de valores recibidos y los valores recibidos dependen tanto del
formulario como de la accin del usuario.
Cualquier control se enva solamente si est establecido su atributo name. El atributo name del
control puede contener cualquier carcter (nmeros, acentos, guiones, etc), pero si contiene
espacios, los espacios se sustituyen por guiones bajos (_). Cada control crea un elemento de la
matriz $_REQUEST, que se identifica como $_REQUEST[valor_del_atributo_name] y que
contiene el valor entregado por el formulario (en su caso).
El siguiente ejemplo muestra un ejemplo de formulario:
<form action="ejemplo.php">
<p>Nombre: <input type="text" name="nombre" /></p>
<p><input type="submit" value="Enviar" /></p>
</form>
Mientras se est programando, para comprobar que el fichero php est recibiendo la informacin
enviada por el control, lo ms fcil es utilizar la funcin print_r($matriz) para mostrar el contenido
de la matriz $_REQUEST. Una vez se ha comprobado que la informacin llega correctamente, la
lnea se debe comentar o eliminar.
Ejemplo de print_r($matriz)
<pre>
<?php
$a = array ('a' => 'manzana', 'b' => 'banano', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>
El siguiente ejemplo muestra lo que escribira el programa PHP si recibiera la informacin del
formulario anterior.
<?php Array
Nombre: print "<pre>"; (
print_r($_REQUEST); [nombre] => Pepito
print "</pre>\n"; Conejo
print "<p>Tu nombre es )
$_REQUEST[nombre]</p>";
?>
Tu nombre es Pepito Conejo
Conviene colocar etiquetas <pre> alrededor del print_r($_REQUEST) para facilitar la lectura de
los valores.
Al hacer referencia a los elementos de la matriz $_REQUEST, hay que tener en cuenta si la
referencia se encuentra dentro de una cadena o fuera de ella.
Si se hace referencia dentro de una cadena al control de nombre "nombre", se debe escribir
$_REQUEST[nombre] (sin comillas). Si se escribe $_REQUEST['nombre'] (con comillas)
se produce un error.
<?php
print "<p>Tu nombre es $_REQUEST[nombre]</p>"; Tu nombre es Pepito Conejo
?>
COMPROBACION DE EXISTENCIA
La mayora de controles aparecen en la matriz $_REQUEST aunque el usuario no escriba nada en el
formulario. El valor almacenado es una cadena vaca, pero est definida. Si el programa supone que
se ha introducido algn valor, el resultado puede confundir al usuario .
<?php Array (
Nombre: print "<pre>"; [nombre] =>
print_r($_REQUEST); print )
"</pre>\n";
Tu nombre es
print "<p>Tu nombre es
$_REQUEST[nombre]</p>";
?>
Por lo que conviene incluir una estructura if ... else que considere la posibilidad de que no se haya
escrito nada en el formulario:
<?php Array (
Nombre: print "<pre>"; [nombre] =>
print_r($_REQUEST); print )
"</pre>\n";
No has escrito ningn nombre
if
($_REQUEST['nombre']=="")
{
print "<p>No has
escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre
es
$_REQUEST[nombre]</p>";
}
?>
Sin embargo, las casillas de verificacin y los botones radio solamente estn definidos en la matriz
$_REQUEST si se han marcado en el formulario. Por ejemplo, si en el siguiente formulario:
<form action="ej.php"> Deseo recibir
<p>Deseo recibir informacin: <input type="checkbox"
name="acepto" /></p> informacin:
<p><input type="submit" value="Enviar" /></p>
</form>
Este problema se resuelve comprobando que el ndice est definido antes de hacer referencia a l,
utilizando la funcin isset($variable), que admite como argumento una variable y devuelve 1
(Verdadero) si existe y 0 (Falso) si no existe.
Deseo recibir informacin: <?php No deseas recibir informacin
if
(isset($_REQUEST['acepto']))
{
print "<p>Deseas recibir
informacin</p>";
} else {
print "<p>No deseas
recibir informacin</p>";
}
?>
En realidad es conveniente efectuar siempre la verificacin de existencia, para prevenir los casos en
que un usuario intente acceder a la pgina php sin pasar por el formulario.
Para evitarlo, se puede utilizar la funcin strip_tags($cadena), que elimina todas las etiquetas html,
como en el siguiente ejemplo.
Nombre: <?php Array (
print "<pre>"; print_r($_REQUEST); print [nombre] =>
"</pre>\n"; Pepito Conejo
print "<p>Tu nombre )
es".strip_tags($_REQUEST['nombre'])."</p>";
?>
Tu nombre es Pepito
Conejo
Otra funcin que conviene aplicar a cualquier entrada de formulario es la funcin trim($cadena),
que elimina los espacios en blanco iniciales y finales y devuelve la cadena sin esos espacios.
Por ejemplo, si en el ejemplo siguiente, el usuario introduce varios espacios en blanco en vez de su
nombre, la comprobacin no servira para nada ya que la cadena con espacios en blanco no es una
cadena vaca
<?php Array (
Nombre: print "<pre>"; [nombre] =>
print_r($_REQUEST); print )
"</pre>\n";
if ($_REQUEST['nombre']
Tu nombre es
== "") {
print "<p>No has
escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre
es
$_REQUEST[nombre]</p>";
}
?>
Sin embargo, si se aplica la funcin trim(), la cadena introducida queda reducida a la cadena vaca y
la comprobacin la detecta:
<?php Array (
Nombre: print "<pre>"; print_r($_REQUEST); [nombre] =>
print "</pre>\n"; )
if (trim($_REQUEST['nombre']) ==
"") {
No has escrito ningn
print "<p>No has escrito ningn nombre
nombre</p>";
} else {
print "<p>Tu nombre es
".trim($_REQUEST['nombre'])."</p>";
}
?>
Aunque actualmente se desaconseja su uso, muchos servidores (por ejemplo, XAMPP) tienen
activada la extensin magic_quotes_gpc. Cuando esta extensin est activada, PHP aade
automticamente caracteres de escape (\) delante de las comillas que se escriban en un campo de
formulario. Para eliminar esos caracteres de escape en los programas, es necesario comprobar si
estn activadas las comillas mgicas y eliminar los caracteres de escape aadidos.
El ejemplo siguiente muestra lo que ocurrira si estn activadas las comillas mgicas
(magic_quotes_gpc = On)
<?php Has escrito: Me llamo
Nombre: if ($_REQUEST['nombre'] == \"Pepe\"
"") {
print "<p>No has escrito
ningn nombre</p>";
} else {
print "<p>Has escrito:
".$_REQUEST['nombre']."</p>";
}
?>
Para eliminar los caracteres de escape, se puede utilizar la funcin get_magic_quotes_gpc() para
detectar si la extensin est activada y la funcin stripslashes() para eliminarlas.
<?php
Nombre: if ($_REQUEST['nombre'] == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Has escrito: ";
if (get_magic_quotes_gpc()) {
print
stripslashes($_REQUEST['nombre']);
} else {
print $_REQUEST['nombre'];
}
print "</p>";
}
?>
UTILIZACION DE VARIABLES
Si aplicamos las medidas mnimas de seguridad comentadas en el punto anterior, cualquier
referencia a $_REQUEST[control] debera sustituirse por trim(strip_tags($_REQUEST[control])).
Si adems queremos comprobar si el control est definido, el cdigo se complica.
Una solucin es guardar los valores de la matriz $_REQUEST en variables y realizar todas las
comprobaciones al definir esas variables. En el resto del cdigo basta con utilizar la variable en vez
del elemento de la matriz $_REQUEST.
<?php Array (
Nombre: print "<pre>"; print_r($_REQUEST); [nombre] =>
print "</pre>\n"; )
if (isset($_REQUEST['nombre'])) {
No has escrito ningn
$nombre = nombre
trim(strip_tags($_REQUEST['nombre']));
} else {
$nombre = "";
}
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre es
$nombre</p>";
}
?>
Nombre: <?php Array (
print "<pre>"; print_r($_REQUEST); [nombre] =>
print "</pre>\n"; Pepito Conejo
)
if (isset($_REQUEST['nombre'])) {
$nombre =
Tu nombre es Pepito
trim(strip_tags($_REQUEST['nombre'])); Conejo
} else {
$nombre = "";
}
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre es
$nombre</p>";
}
?>
La asignacin de la variable se puede realizar en una sola lnea, utilizando la notacin abreviada:
(condicin) ? verdadero : falso;:
<?php
Nombre: print "<pre>"; print_r($_REQUEST);
print "</pre>\n";
$nombre = (isset($_REQUEST['nombre']))
? trim(strip_tags($_REQUEST['nombre']))
: "";
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre es
$nombre</p>";
}
?>
SALIDA DE DATOS
Si los datos recogidos se escriben luego en una pgina web, hay que tener cuidado en algunos casos
especiales.
Si el usuario escribe en una entrada el carcter & (ampersand, entidad de carcter &), si esa
cadena se escribe en una pgina, la pgina se ver correctamente en el navegador, pero la pgina no
ser vlida (el xhtml ser invalido).
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre es
$nombre</p>";
}
?>
El motivo por el que la pgina es invlida es que el carcter & indica el comienzo de una entidad de
carcter. Como en nuestro caso no hay una entidad de carcter, la pgina no es vlida.
La solucin es sustituir el carcter & por su entidad de carcter correspondiente (&). Eso se
puede hacer con la funcin str_replace()
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Tu nombre es
$nombre</p>";
}
?>
Si el usuario escribe en una entrada el carcter " (comillas, entidad de carcter "), si esa
cadena se escribe dentro de otras comillas (por ejemplo, en el atributo value de una etiqueta input),
la pgina no se ver correctamente y adems no ser vlida.
<?php Corrige:
Nombre: $nombre =
(isset($_REQUEST['nombre'])) ?
trim(strip_tags($_REQUEST['nombre']))
: "";
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Corrige: <input
type=\"text\" value=\"$nombre\"
/></p>";
}
?>
Como en el caso anterior, la solucin es sustituir el carcter " por su entidad de carcter
correspondiente ("). Eso se puede hacer con la funcin str_replace()
<?php
Nombre: $nombre = Corrige:
(isset($_REQUEST['nombre'])) ?
trim(strip_tags($_REQUEST['nombre']))
: "";
$nombre = str_replace('"', '"',
$nombre);
if ($nombre == "") {
print "<p>No has escrito ningn
nombre</p>";
} else {
print "<p>Corrige: <input
type=\"text\" value=\"$nombre\"
/></p>";
}
?>
Para tener en cuenta todos los aspectos comentados en los puntos anteriores, es conveniente definir
funciones para la recogida de datos:
La funcion recoge() del ejemplo siguiente tiene como argumento el nombre del control que
se quiere recibir y devuelve el valor recibido o una cadena vaca si el control no se ha
recibido.
Al comienzo del programa el dato recibido se almacena en una variable.
En el resto del programa se trabaja con la variable.
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
$nombre = recoge('nombre');
if ($nombre == "") {
print "<p>No has escrito ningn nombre</p>";
} else {
print "<p>Tu nombre es $nombre</p>";
}
?>
La funcin recoge() del apartado anterior se puede modificar para definir un valor predeterminado
(es decir, que si el dato no existe, la funcin devuelve el valor predeterminado enviado como
segundo argumento).
<?php
function recoge($var, $var2='')
{
$tmp = (isset($_REQUEST[$var])&&($_REQUEST[$var]!='')) ?
trim(strip_tags($_REQUEST[$var])) : trim(strip_tags($var2));
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
Si un formulario enva los datos en forma de matriz, como en el ejemplo siguiente, la funcin
recoge() del punto anterior no servira.
<form action="ejemplo.php"> Nombre:
<p>Nombre: <input type="text" name="nombre[1]" /></p>
<p>Apellido: <input type="text" name="nombre[2]" /></p> Apellido:
<p><input type="submit" value="Enviar" /></p>
</form>
Hay que hacer otra funcin que recoja y trate los datos en forma de matriz.
La funcion recogeMatriz() del ejemplo siguiente tiene como argumento el nombre del
control que se quiere recibir (que debe ser una matriz de una dimensin, no sirve para
matrices de dos o ms dimensiones) y devuelve una matriz con los valores recibidos o una
matriz vaca si el control no se ha recibido.
Al comienzo del programa los datos recibidos se almacenan en una matriz.
En el resto del programa se trabaja con la matriz.
<?php
function recogeMatriz($var)
{
$tmpMatriz = array();
if (isset($_REQUEST[$var]) && is_array($_REQUEST[$var])) {
foreach ($_REQUEST[$var] as $indice => $valor) {
$tmp = trim(strip_tags($indice));
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
$indiceLimpio = $tmp;
$tmp = trim(strip_tags($valor));
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
$valorLimpio = $tmp;
$tmpMatriz[$indiceLimpio] = $valorLimpio;
}
}
return $tmpMatriz;
}
$nombre = recogeMatriz('nombre');
if ($nombre[1]=="") {
print "<p style=\"color:red\">No has escrito tu nombre.</p>\n";
} else {
print "<p>Tu nombre es <strong>$nombre[1]</strong>.</p>\n";
}
if ($nombre[2]=="") {
print "<p style=\"color:red\">No has escrito tu apellido.</p>\n";
} else {
print "<p>Tu apellido es <strong>$nombre[2]</strong>.</p>\n";
}
?>
COMPROBACION DE DATOS
Una vez recibido un dato normalmente es necesario comprobar si el dato es del tipo esperado
(nmero, texto, etc.) para procesarlo sin error. PHP ofrece varios conjuntos de funciones para
realizar estas comprobaciones. A continuacin se explican algunas de estas funciones:
Funciones is_
Funciones ctype_
Funciones is_
Las funciones is_ son un conjunto de funciones booleanas que devuelven si el argumento es o no de
un tipo de datos determinado
alias (funciones
Funcin Tipo de datos
equivalentes)
isset($valor) definida
is_null($valor) NULL
is_bool($valor) booleano
nmero (puede tener signo,
parte decimal y estar
is_numeric($valor) expresado en notacin
decimal, exponencial o
hexadecimal).
is_integer($valor),
is_int($valor) entero
is_long($valor)
is_double($valor),
is_float($valor) float
is_real($valor)
is_string($valor) cadena
is_binary($valor) cadena binaria
is_buffer($valor) cadena unicode o binaria
is_unicode($valor) cadena unicode
escalar (entero, float,
is_scalar($valor)
cadena o booleano)
is_array($valor) matriz
is_callable($valor) funcin
is_object($valor) object
is_resource($valor) recurso
if (is_int($edad)) {
print "<p>Tu edad es
$edad</p>";
} else {
print "<p>NO has
escrito un nmero entero
en tu edad.</p>";
}
?>
Funciones ctype_
Las funciones ctype_ son un conjunto de funciones booleanas que devuelven si todos los caracteres
de una cadena son de un tipo determinado, de acuerdo con el juego de caracteres local. Estas
funciones son las mismas que las que proporciona la biblioteca estndar de C ctype.h.
Funcin Tipo de datos
ctype_alnum($valor) Alfanumricos
ctype_alpha($valor) alfabticos (maysculas o minsculas, con acentos, , , etc)
ctype_cntrl($valor) caracteres de control (salto de lnea, tabulador, etc)
ctype_digit($valor) Digitos
ctype_graph($valor) caracteres imprimibles (excepto espacios)
ctype_lower($valor) Minsculas
ctype_print($valor) caracteres imprimibles
signos de puntuacin (caracteres imprimibles que no son
ctype_punct($valor)
alfanumricos ni espacios en blanco)
ctype_space($valor) espacios en blanco (espacios, tabuladores, saltos de lnea, etc)
ctype_upper($valor) Maysculas
ctype_xdigit($cvalor) dgitos hexadecimales
El ejemplo siguiente muestra el uso de la funcin ctype_digit().
<?php Array (
Edad: print "<pre>"; [edad] => 2.5
print_r($_REQUEST); print )
"</pre>\n";
$edad =
NO has escrito un nmero
$_REQUEST['edad']; entero en tu edad
if (ctype_digit($edad)) {
print "<p>Tu edad es
$edad</p>";
} else {
print "<p>NO has
escrito un nmero entero
en tu edad.</p>";
}
?>
EJERCICIOS CONTROLES EN FORMULARIOS
Archivo: controles_formularios_1.htm
<table cellspacing="5">
<tbody>
<tr>
<td><strong>Nombre:</strong><br />
<input type="text" name="nombre" size="20" maxlength="20" /></td>
<td><strong>Apellidos:</strong><br />
<input type="text" name="apellidos" size="20" maxlength="20" /></td>
<td><strong>Edad:</strong><br />
<select name="edad">
<option selected="selected"></option>
<option value="1">Menos de 20 aos</option>
<option value="2">Entre 20 y 39 aos</option>
<option value="3">Entre 40 y 59 aos</option>
<option value="4">60 aos o ms</option>
</select>
</td>
</tr>
<tr>
<td><strong>Peso:<br />
</strong><input type="text" name="peso" size="3" maxlength="3" />
kg</td>
<td><strong>Sexo:</strong><br />
<input type="radio" name="sexo" value="hombre" />Hombre <input
type="radio" name="sexo" value="mujer" />Mujer</td>
<td><strong>Estado Civil:</strong><br />
<input type="radio" name="estadoCivil" value="soltero" /> Soltero
<input type="radio" name="estadoCivil" value="casado" /> Casado
<input type="radio" name="estadoCivil" value="otro" /> Otro</td>
</tr>
</tbody>
</table>
<table cellspacing="5">
<tbody>
<tr>
<td rowspan="2" class="borde"><strong>Aficiones:</strong></td>
<td><input type="checkbox" name="cine" /> Cine</td>
<td><input type="checkbox" name="literatura" /> Literatura</td>
<td><input type="checkbox" name="tebeos" /> Tebeos</td>
</tr>
<tr>
<td><input type="checkbox" name="deporte" /> Deporte</td>
<td><input type="checkbox" name="musica" /> Msica</td>
<td><input type="checkbox" name="television" /> Televisin</td>
</tr>
</tbody>
</table>
<p class="der">
<input type="submit" value="Enviar" />
<input type="reset" value="Borrar" name="Reset" /></p>
</fieldset>
</form>
</body>
</html>
Archivo: controles_formularios_1.php
<body>
<h1>Datos personales (Resultado)</h1>
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
$nombre = recoge('nombre');
$apellidos = recoge('apellidos');
$edad = recoge('edad');
$peso = recoge('peso');
$sexo = recoge('sexo');
$estadoCivil = recoge('estadoCivil');
$cine = recoge('cine');
$deporte = recoge('deporte');
$literatura = recoge('literatura');
$musica = recoge('musica');
$tebeos = recoge('tebeos');
$television = recoge('television');
if ($nombre=="") {
print "<p style=\"color:red\">No has escrito tu nombre.</p>\n";
} else {
print "<p>Tu nombre es <strong>$nombre</strong>.</p>\n";
}
if ($apellidos=="") {
print "<p style=\"color:red\">No has escrito tus apellidos.</p>\n";
} else {
print "<p>Tus apellidos son <strong>$apellidos</strong>.</p>\n";
}
if ($edad=="1") {
print "<p>Tienes <strong>menos de 20 aos</strong>.</p>\n";
} elseif ($edad=="2") {
print "<p>Tienes <strong>entre 20 y 39 aos</strong>.</p>\n";
} elseif ($edad=="3") {
print "<p>Tienes <strong>entre 40 y 59 aos</strong>.</p>\n";
} elseif ($edad=="4") {
print "<p>Tienes <strong>60 o ms aos</strong>.</p>\n";
} else {
print "<p style=\"color:red\">No has indicado tu edad.</p>\n";
}
if ($peso=="") {
print "<p style=\"color:red\">No has escrito tu peso.</p>\n";
} elseif (!is_numeric($peso)) {
print "<p style=\"color:red\">No has escrito tu peso como nmero.</p>\n";
} elseif ($peso<0) {
print "<p style=\"color:red\">Has ecrito un peso negativo.</p>\n";
} else {
print "<p>Tu peso es de <strong>$peso</strong> Kg.</p>\n";
}
if ($sexo=="hombre") {
print "<p>Eres un <strong>hombre</strong>.</p>\n";
} elseif ($sexo=="mujer") {
print "<p>Eres una <strong>mujer</strong>.</p>\n";
} else {
print "<p style=\"color:red\">No has marcado tu sexo.</p>\n";
}
if ($estadoCivil=="soltero") {
print "<p>Tu estado civil es <strong>soltero</strong>.</p>\n";
} elseif ($estadoCivil=="casado") {
print "<p>Tu estado civil es <strong>casado</strong>.</p>\n";
} elseif ($estadoCivil=="otro") {
print "<p>Tu estado civil no es <strong>ni soltero ni casado</strong>.</p>\n";
} else {
print "<p style=\"color:red\">No has marcado tu estado civil.</p>\n";
}
Archivo: mclibre_php_soluciones.css
body {
background-color: #F6F6FF;
font-family: sans-serif;
padding: 0 20px;
}
h1 {
margin: 10px;
font-size: 140%;
text-align: center;
text-transform: uppercase;
}
fieldset {
background-color: #E6E6FF;
border: #8686FF 3px solid;
padding: 10px 20px 20px;
}
legend {
background-color: white;
border: #8686FF 3px solid;
font-size: 120%;
padding: 0px 10px;
}
input {
font-family: monospace;
}
.der {
text-align: right;
margin: 10px 0px;
}
VALIDACION DE FORMULARIO
1. Escribe un programa que valide un nombre, un nmero de telfono y una direccin de correo y
que conste de una nica pgina.
La pgina solicita los datos y los valida (por ejemplo, que el nombre slo tenga letras, que el
nmero sean 9 nmeros, que la direccin de correo contenga la @, un punto y letras
inglesas, etc).
Si los datos no son vlidos, se solicitan de nuevo indicando los datos no vlidos.
Si los datos son vlidos, los datos se muestran.
Para que el atributo action del formulario o el enlace a la pgina apunte a s mismo,
independientemente de la ubicacin del archivo o de su nombre, se puede utilizar la variable
predefinida $_SERVER[PHP_SELF].
Para no repetir la cabecera tres veces, se puede crear una funcin cabecera($titulo), cuyo
argumento se utilice en <title> y <h1>.
Solucin
Archivo: validacion1_php
<?php
function cabecera($texto)
{ print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<title>$texto. Validacin. Ejercicios. PHP. Bartolom Sintes Marco</title>
<link href=\"mclibre_php_soluciones.css\" rel=\"stylesheet\" type=\"text/css\"
title=\"Color\" />
</head>\n\n<body>\n<h1>$texto</h1>\n";
}
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
define('FORM_METHOD', 'get');
define('TAM_NOMBRE', 40);
define('TAM_TELEFONO', 9);
define('TAM_CORREO', 40);
$nombre = recoge('nombre');
$telefono = recoge('telefono');
$correo = recoge('correo');
$nombrePatron = '/^[[:alpha:]]+$/';
$telefonoPatron = '/^[0-9]{9}$/';
$correoPatron = '/^[[:alnum:]._-]+@[a-z]+(\.[a-z]+){1,2}$/';
$nombreOk = preg_match($nombrePatron, $nombre);
$telefonoOk = preg_match($telefonoPatron, $telefono);
$correoOk = preg_match($correoPatron, $correo);
?>
Archivo: mclibre_php_soluciones
body {
background-color: #F6F6FF;
font-family: sans-serif;
padding: 0 20px;
}
h1 {
margin: 10px;
font-size: 140%;
text-align: center;
text-transform: uppercase;
}
fieldset {
background-color: #E6E6FF;
border: #8686FF 3px solid;
padding: 10px 20px 20px;
}
legend {
background-color: white;
border: #8686FF 3px solid;
font-size: 120%;
padding: 0px 10px;
}
input {
font-family: monospace;
}
.der {
text-align: right;
margin: 10px 0px;
}
EJERCICIO
Clculos estadsticos
Archivo: repaso.htm
<body>
<h1>Calculos estadsticos (Formulario)</h1>
<p class="der">
<input type="submit" value="Enviar" />
<input type="reset" value="Borrar" name="Reset" /></p>
</fieldset>
</form>
</body>
</html>
Archivo: repaso_3a.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<h1>Clculos estadsticos (Resultado 1)</h1>
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
define('FORM_METHOD', 'get');
define('NUM_MINIMO', 1);
define('NUM_MAXIMO', 20);
$numero = recoge('numero');
$numeroOk = FALSE;
if ($numero=="") {
print "<p style=\"color: red\">No ha escrito el nmero de valores.</p>\n";
} elseif (!is_numeric($numero)) {
print "<p style=\"color: red\">No ha escrito el nmero de valores.</p>\n";
} elseif (!ctype_digit($numero)) {
print "<p style=\"color: red\">No ha escrito el nmero de valores "
."como nmero entero positivo.</p>\n";
} elseif (($numero<NUM_MINIMO)||($numero>NUM_MAXIMO)) {
print "<p style=\"color: red\">El nmero de valores debe estar entre "
.NUM_MINIMO." y ".NUM_MAXIMO.".</p>\n";
} else {
$numeroOk = TRUE;
}
if ($numeroOk) {
print "<p>Escriba todos los valores y marque las casillas correspondientes "
."a los clculos que quiere.</p>\n";
print "<form action=\"repaso_3b.php\" method=\"".FORM_METHOD."\">\n";
print " <table>\n <tbody>\n";
for ($i=1; $i<=$numero; $i++) {
print " <tr>\n <td><strong>Nmero $i</strong>:</td>
<td><input type=\"text\" name=\"n[$i]\" size=\"6\" maxlength=\"4\" /></td>\n";
print " </tr>\n";
}
print " </tbody>\n </table>
<p><input type=\"checkbox\" name=\"suma\" />Suma - <input type=\"checkbox\"
name=\"media\" />Media - <input type=\"checkbox\" name=\"maximo\" />Mximo
- <input type=\"checkbox\" name=\"minimo\" />Mnimo</p>
<p class=\"der\">
<input type=\"submit\" value=\"Contar\" />
<input type=\"reset\" value=\"Borrar\" />\n</form>\n";
}
print "<p><a href=\"repaso.htm\">Volver al formulario.</a></p>\n";
?>
</body>
</html>
Archivo: repaso_3b.php
<body>
<h1>Clculos estadsticos (Resultado 2)</h1>
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
return $tmp;
}
function recogeMatriz($var)
{
$tmpMatriz = array();
if (isset($_REQUEST[$var]) && is_array($_REQUEST[$var])) {
foreach ($_REQUEST[$var] as $indice => $valor) {
$tmp = trim(strip_tags($indice));
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
$indiceLimpio = $tmp;
$tmp = trim(strip_tags($valor));
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
$tmp = str_replace('&', '&', $tmp);
$tmp = str_replace('"', '"', $tmp);
$valorLimpio = $tmp;
$tmpMatriz[$indiceLimpio] = $valorLimpio;
}
}
return $tmpMatriz;
}
define('FORM_METHOD', 'get');
define('NUM_MINIMO', 1);
define('NUM_MAXIMO', 20);
$numeros = recogeMatriz('n');
$numerosOk = FALSE;
$suma = (recoge('suma')=='on');
$media = (recoge('media')=='on');
$maximo = (recoge('maximo')=='on');
$minimo = (recoge('minimo')=='on');
$numerosRecibidos = count($numeros);
$numerosOk = TRUE;
foreach ($numeros as $valor) {
if (!is_numeric($valor)) {
$numerosOk = FALSE;
}
}
if (!$numerosOk) {
print "<p style=\"color:red\">Los datos recibidos no son correctos.</p>\n";
} elseif ($numerosRecibidos==0) {
print "<p>No ha indicado ningn valor.</p>";
} elseif ($numerosRecibidos>NUM_MAXIMO) {
print "<p style=\"color:red\">El nmero de valores debe estar entre "
.NUM_MINIMO." y ".NUM_MAXIMO.".</p>\n";
} else {
$sumaTotal = 0;
print "<p>Ha introducido $numerosRecibidos valores: <strong>";
foreach ($numeros as $valor) {
print "$valor ";
$sumaTotal += $valor;
}
print "</strong></p>\n";
if ($suma) {
print "<p>La suma de los valores es <strong>$sumaTotal</strong>.</p>\n";
}
if ($media) {
print "<p>La media de los valores es <strong>"
.round($sumaTotal/$numerosRecibidos, 2)."</strong>.</p>\n";
}
if ($maximo) {
print "<p>El valor ms grande es <strong>".max($numeros)."</strong>.</p>\n";
}
if ($minimo) {
print "<p>El valor ms pequeo es <strong>".min($numeros)."</strong>.</p>\n";
}
}
FUNCIONES EN PHP
$v1=16;
$v2=18;
$p=retornarpromedio($v1,$v2);
echo $p;
?>
mensajecentrado("Primer recuadro");
echo "<br>";
mensajecentrado("Segundo recuadro");
?>
</body>
3. Realizar una funcin en php que retorne el factorial del numero 1 al numero 5
RECURSIVIDAD EN PHP
<?php
function comprobarEntero($numero){
if ($numero > 1 ){
return comprobarEntero($numero-1);
return comprobarEntero((-1)*$numero-1);
} else {
}
echo "Es 0 un entero?".comprobarEntero(0)."<br>";
echo "Es 7 un entero?".comprobarEntero(7)."<br>";
echo "Es 2.7 un entero?".comprobarEntero(2.7)."<br>";
echo "Es -7 un entero?".comprobarEntero(-7)."<br>";
?>
PARAMETROS DE LAS FUNCIONES
say( $cad );
La funcin fn_suma() puede recibir varios parmetros luego internamente realiza la suma de todos
ellos y retorna el resultado.
Hacer una funcin que calcula el IGV y que recibe dos parmetros. Uno el valor sobre el que se
calcula y el otro el porcentaje a aplicar. Si no se indica el porcentaje de IGV se entiende que es el
19%.
<body>
<?
function igv($base,$porcentaje=19){
return $base * $porcentaje /100;
}
echo igv(1000) . "<br>";
echo igv(1000,16) . "<br>";
echo igv(10,0) . "<br>";
?>
</body>
Devolviendo valores
Funcin fn_mayor que recibe tres nmeros enteros y devuelve el mayor de ellos
$a = rand(1,100);
$b = rand(1,100);
$c = rand(1,100);
$m = fn_mayor( $a, $b, $c );
ARREGLOS EN PHP
1. Almacenar los nombres de los das de la semana en un vector y luego imprimirlos uno
debajo de otro.
<html>
<title> Ejmeplo 1 </title>
<body>
<?PHP
// Inicializacion del Vector
$dia[0] = "Domingo";
$dia[1] = "Lunes";
$dia[2] = "Martes";
$dia[3] = "Mircoles";
$dia[4] = "Jueves";
$dia[5] = "Viernes";
$dia[6] = "Sbado";
Nota: Aqu se observa que los nombres fueron cargados en posiciones aleatorias. Con la funcin
reset(), se logra llevar el puntero al principio del vector y para poder encontrar la posicin de un
elemento se utiliza la funcin key(), la cual acepta como parmetro el vector y devuelve la
posicin. Luego para poder obtener el contenido en esa posicin se utiliza la funcin current(),
que acepta el vector y devuelve el valor almacenado. La funcin next() avanza el puntero a la
posicin siguiente, si se ha llegado al final del vector, esta funcin devuelve false.
5. Cargar Legajos de personas con sus respectivos Nombres
<html>
<title> Ejemplo5.php </title>
<body>
<?Php
// Inicializacion del Vector
$Nombre[100] = "Javier";
$Nombre[200] = "Cintia";
$Nombre[150] = "Ricardo";
$Nombre[350] = "Ral";
$Nombre[120] = "Guillermo";
// Impresion del vector
reset($Nombre);
echo "<H2>"."Vector de Nombres";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Nombre))
{
echo "Legajo: " . $i . " - ";
echo "Nombre: " . $Valor;
echo "<Br>";
}
?>
</body>
</html>
Nota: La funcin list(), almacena en los parmetros ($i, $Valor), el ndice y el valor devuelto
por la funcin each(), que tiene como parmetro el vector puesto en juego. Adems, la funcin
list(), avanza automticamente el puntero al siguiente elemento del vector, y en caso de que el
vector haya llegado al final, la funcin devuelve false.
6. Cargar en un vector algunas ciudades del mundo, de manera que el ndice del vector
contenga los tres primeros caracteres de la ciudad almacenada.
<html>
<title> Ejemplo 6.php </title>
<body>
<?Php
// Inicializacion del Vector
$Ciudad = array("Par" => "Paris",
"Lon" => "Londres",
"Ate" => "Atenas",
"Ber" => "Berlin",
"Lim" => "Lima");
Funcin sort()
Esta funcin permite ordenar los elementos de un arreglo (vector) de menor a mayor, en orden
numrico o alfabtico, con el siguiente orden:
Primero se ordenarn los nmeros, luego los signos de puntuacin y por ltimo las letras.
Nota:
Si se utiliza la funcin sort() con ndices de texto, se observa que, una vez ordenado, ha
cambiado los ndices de texto por nmeros, comenzando de cero en adelante. Para salvar este
inconveniente se utiliza la funcin asort().
Funcin asort()
Esta funcin permite ordenar arreglos con ndices de texto, manteniendo el valor de sus ndices.
Tiene como parmetro el vector, y el ordenamiento es de menor a mayor.
8. Ordenar alfabticamente de menor a mayor el vector de ciudades del mundo del ejemplo
Nro. 6.
<html>
<title> Ejemplo2-Asort..php </title>
<body>
<?Php
// Inicializacion del Vector
$Ciudad = array("Par" => "Paris",
"Lon" => "Londres",
"Ate" => "Atenas",
"Ber" => "Berlin",
"Lim" => "Lima");
asort($Ciudad);
Funcin rsort()
Es la inversa de la funcin sort(). Permite ordenar un vector pasado como parmetro en forma
descendente, es decir de mayor a menor.
while (list($i,$Valor)=each($Nombres))
{
echo "Posicin: " . $i . " - ";
echo "Contenido: " . $Valor;
echo "<Br>";
}
?>
</body>
</html>
SESIONES EN PHP
Archivo: inicio.html
<html>
<head>
<title>Inicio de Sesin</title>
</head>
<body bgcolor="#D2EBF7" style="font-family: Tahoma;">
<h1>Inicio de Sesin</h1>
<form method="post" action="inicio.php" >
<table width="200">
<caption><strong>Ingrese sus Datos</strong></caption>
<tr>
<td>Nombre:</td>
<td><input type="text" name="nombre" size="15" maxlength="15"></td>
</tr>
<tr>
<td>Apellido:</td>
<td><input type="text" name="apellido" size="15" maxlength="15"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="submit" type="submit" value="Enviar">
</td>
</tr>
</table>
</form>
</body>
</html>
Archivo: inicio.php
<?php
session_start();
if( !isset( $_POST["nombre"] ) or !isset( $_POST["apellido"] ) ) {
header( "location: inicio.html" );
}
else {
$_SESSION["nombre"] = $_POST["nombre"];
$_SESSION["apellido"] = $_POST["apellido"];
$_SESSION["carrito"] = array();
header( "location: carrito.php" );
}
?>
Archivo: carrito.php
<?php
session_start();
?>
<body bgcolor="#D2EBF7" style="font-family: Tahoma;">
<?php
echo "<h2>Usuario: " . $_SESSION["nombre"] . " " . $_SESSION["apellido"] . "</h2>";
if (count($_SESSION["carrito"]) == 0) {
echo "<h3>Carrito Vacio</h3>";
}
else {
echo "<table width='400' border='1'>";
foreach( $_SESSION["carrito"] as $articulo => $cantidad ) {
echo "<tr>";
echo "<td>$articulo</td>";
echo "<td>$cantidad</td>";
echo "</tr>";
}
echo "</table>";
}
?>
<a href="agregararticulo.php">Agregar Artculo</a>
<a href="cerrarsesion.php">Cerrar Sesin</a>
</body>
Archivo: agregararticulo.php
<?php
session_start();
if( !isset( $_POST["clave"] ) ) {
?>
<body bgcolor="#D2EBF7" style="font-family: Tahoma;">
<?php echo "<h2>Usuario: " . $_SESSION["nombre"] . " " . $_SESSION["apellido"] . "</h2>"; ?>
<form name="form1" method="post" action="agregararticulo.php">
<input type="hidden" name="clave" value="123456">
<table width="200">
<tr>
<td>Artculo</td>
<td><input type="text" name="articulo" size="30" maxlength="30"></td>
</tr>
<tr>
<td>Cantidad</td>
<td><input type="text" name="cantidad" size="3" maxlength="3"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="Enviar">
</td>
</tr>
</table>
</form>
</body>
<?php
}
else {
$articulo = $_POST["articulo"];
$cantidad = $_POST["cantidad"];
$_SESSION["carrito"][$articulo] = $cantidad;
header( "location: carrito.php" );
}
?>
Archivo: cerrarsesion.php
<?php
session_start();
session_unset();
session_destroy();
header( "location: inicio.html" );
?>
SEPTIMA PRACTICA DE PHP
INSERT INTO clientes VALUES (1, 'Jose Martin Valdes', 'Av. Lima 452', 5);
INSERT INTO clientes VALUES (2, 'Mely Urtado', 'Jr. Cercado 500', 6);
INSERT INTO clientes VALUES (3, 'Michael Accher', 'Av. Marina 458', 6);
INSERT INTO clientes VALUES (4, 'Alan Wong', 'Calle ica 452', 3);
INSERT INTO clientes VALUES (5, 'Elmer Paz', 'Jr. Puno 859', 2);
INSERT INTO clientes VALUES (6, 'Daniel Villar', 'Av. Pardo 890', 5);
INSERT INTO clientes VALUES (7, 'Marcos Aguilar', 'Av. Mariscal 480', 4);
INSERT INTO clientes VALUES (9, 'Ruben Antonio', 'Av. Lima NA 458 int 89', 9);
INSERT INTO clientes VALUES (10, 'Jhon Michael', 'Av. Julio 459', 12);
INSERT INTO clientes VALUES (11, 'Juan Jose Alvares', 'Jr. Ayacucho 4589', 7);
INSERT INTO clientes VALUES (12, 'Juan Jose Alvares', 'Jr. Ayacucho 4589', 7);
INSERT INTO clientes VALUES (13, 'Andres Alvarado', 'Jr. Tacna 478', 3);
INSERT INTO descripcion VALUES (32, 'Con este libro usted aprendera a trabajar con paginas
HTML, PHP, MySQL');
INSERT INTO descripcion VALUES (59, 'Demostracion 100');
INSERT INTO libros VALUES (1, 'Aplique Programacion en Visual Basic 6.0', 16.104, 1);
INSERT INTO libros VALUES (2, 'Aplique Programacion con Visual C++ 6.0', 40.26, 2);
INSERT INTO libros VALUES (4, 'Base de Datos con SQL Server 2000', 16.104, 1);
INSERT INTO libros VALUES (5, 'Modelamiento de Base de Datos con Erwin 3.5', 16.1051, 7);
INSERT INTO libros VALUES (6, 'Excel 2002 XP Paso a Paso', 48.3153, 10);
INSERT INTO libros VALUES (7, 'Dreamweaver 4.0', 40.2628, 11);
INSERT INTO libros VALUES (8, 'Active Server Pages 3.0', 39.6, 1);
INSERT INTO libros VALUES (9, 'Programacion en Java 2', 16.1051, 1);
INSERT INTO libros VALUES (10, 'Ingrese al mundo de Internet', 48.3153, 10);
INSERT INTO libros VALUES (11, 'Office XP 2002', 48.3153, 1);
INSERT INTO libros VALUES (12, 'Ensamble y Repare Pentium I II III IV', 48.3153, 1);
INSERT INTO libros VALUES (13, 'HTML Para todo el Mundo', 48.3153, 1);
INSERT INTO libros VALUES (14, 'Power Point XP 2002 Paso a Paso', 48.3153, 11);
INSERT INTO libros VALUES (15, 'Visual Basic 6.0 Como debe ser', 48.3153, 13);
INSERT INTO libros VALUES (16, 'Corel Draw 10', 48.312, 9);
INSERT INTO libros VALUES (17, 'Power Builder 8.0 Como debe ser', 48.3153, 13);
INSERT INTO libros VALUES (18, 'Flash MX', 48.3153, 11);
INSERT INTO libros VALUES (19, 'Visio 2002 XP', 48.3153, 15);
INSERT INTO libros VALUES (20, 'Programacion con C++ Builder 5', 48.3153, 1);
INSERT INTO libros VALUES (21, 'Desarrollo de aplicaciones con Delphi 6', 48.312, 10);
INSERT INTO libros VALUES (22, 'La cara oculta del Linux', 48.3153, 11);
INSERT INTO libros VALUES (23, 'El mundo de Autocad 2002', 32.2102, 8);
INSERT INTO libros VALUES (24, 'Pascal 7.0', 32.2102, 10);
INSERT INTO libros VALUES (25, 'Front Page XP 2002', 32.2102, 11);
INSERT INTO libros VALUES (26, 'Gui-a Visual de Excel XP 2002', 32.2102, 6);
INSERT INTO libros VALUES (27, 'Gui-a Visual de Access XP 2002', 32.2102, 6);
INSERT INTO libros VALUES (28, 'Gui-a Visual de Power Ponit XP 2002', 32.2102, 11);
INSERT INTO libros VALUES (29, 'Guia Visual de Windows XP 2002', 32.2102, 6);
INSERT INTO libros VALUES (30, 'Razonamiento Verbal', 32.2102, 16);
INSERT INTO libros VALUES (31, 'Photoshop 7.0', 32.2102, 11);
INSERT INTO libros VALUES (32, 'Dreamweaver MX', 32.2102, 11);
INSERT INTO libros VALUES (33, 'Guia Practica de Autocad 2002', 32.2102, 14);
INSERT INTO libros VALUES (34, 'Programacion C++', 32.2102, 10);
INSERT INTO libros VALUES (35, 'Photoshop con KPTs', 32.2102, 12);
INSERT INTO libros VALUES (36, 'Programacion en Excel con Aplicaciones VB', 32.2102, 6);
INSERT INTO libros VALUES (37, 'Corel Draw 11', 32.208, 12);
INSERT INTO libros VALUES (38, 'Ms Project 2002', 32.2102, 15);
INSERT INTO libros VALUES (39, 'Programacion en Lenguaje C', 32.2102, 10);
INSERT INTO libros VALUES (40, 'Visual Basic .NET', 32.2102, 5);
INSERT INTO libros VALUES (41, 'Aplicaciones Teorico Practico SAP 2000', 32.208, 8);
INSERT INTO libros VALUES (42, 'Guia Practica Autocad 2004', 32.2102, 8);
INSERT INTO libros VALUES (43, 'Diseo Web', 32.2102, 11);
INSERT INTO libros VALUES (44, 'Algoritmos y Diagramas de Flujo', 48.312, 10);
INSERT INTO libros VALUES (45, 'Power Builder 9.0 Full Data Base', 48.3153, 13);
INSERT INTO libros VALUES (46, 'UML con Rational Rose', 48.3153, 7);
INSERT INTO libros VALUES (47, 'DHTML JavaScript y Aplicaciones ASP.NET', 48.3153, 6);
INSERT INTO libros VALUES (48, 'S10 Costos y Presupuestos', 48.3153, 8);
INSERT INTO libros VALUES (49, 'Visual FoxPro 8.0 Full DataBase', 48.3153, 7);
INSERT INTO libros VALUES (50, 'Desarrolle Aplicaciones con DELPHI 7', 48.312, 10);
INSERT INTO libros VALUES (51, 'Oracle 9i', 48.3153, 4);
INSERT INTO libros VALUES (52, 'Macromedia Flash MX 2004', 48.3153, 11);
INSERT INTO libros VALUES (53, 'Word 2002 XP Paso a Paso', 48.3153, 1);
INSERT INTO libros VALUES (54, 'Aprenda y Domine Excel 2000', 48.312, 1);
INSERT INTO libros VALUES (55, 'Access 2002 XP', 15.4, 1);
INSERT INTO libros VALUES (56, 'Introduccion a la Computacion', 48.3153, 1);
INSERT INTO libros VALUES (57, 'Gui-a Visual de Power Point XP 2002', 48.3153, 6);
INSERT INTO libros VALUES (58, 'xxx', 0, 1);
Archivo: conection.php
<?php
/* Creamos la conexin con el servidor MySQL
notemos que sea agregado dos validaciones, que cuando
no se haya conectado correctamente a la base de datos el nombre
de la base de datos no existe, mostrara un mensaje.
*/
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("editorial1",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>
Archivo: datos.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
Archivo: datos_avanzado.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tablas libros y autor, con
"$sql .=" se puede separar la consulta en 2 lneas a mas
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
Mostramos los registros
noten que para ejemplo se esta utilizando HTML
*/
?>
<tr>
<td><? echo $row[0]; ?></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo buscar_form1.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="form1" method="post" action="buscar_resultado1.php">
Buscar Libro:
<input name="libro" type="text" id="libro">
<input type="submit" name="Submit" value="Buscar">
</form>
</body>
</html>
Archivo: buscar_resultado1.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tablas libros y autor, con
"$sql .=" se puede separar la consulta en 2 lneas a mas,
este tipo de consulta es para buscar un dato exacto
en la base de datos "where libros.titulo = '$libro'"
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$sql .=" where libros.titulo = '$libro'";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
Con "$row" mostramos los datos y
mostramos los registros
*/
?>
<tr>
<td><? echo $row[0]; ?></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo: buscar_form2.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="form1" method="post" action="buscar_resultado2.php">
Buscar Libro:
<input name="libro" type="text" id="libro">
<input type="submit" name="Submit" value="Buscar">
</form>
</body>
</html>
Archivo: buscar_resultado2.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
$libro = $_POST['libro'];
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tablas libros y autor, con
"$sql .=" se puede separar la consulta en 2 lneas a mas,
este tipo de consulta es para buscar un dato que tenga algn
tipo de similitud en la base de datos "where libros.titulo like '%$libro%'"
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$sql .=" where libros.titulo like '%$libro%'";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
Con "$row" mostramos los datos y
mostramos los registros
*/
?>
<tr>
<td><? echo $row[0]; ?></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo: buscar_form3.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="form1" method="post" action="buscar_resultado3.php">
Buscar Libro:
<input name="libro" type="text" id="libro">
<br>
Precio
<input name="precio" type="text" id="precio">
<br>
<input type="submit" name="Submit" value="Buscar">
</form>
</body>
</html>
Archivo: buscar_resultado3.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tables libros y autor, con
"$sql .=" se puede separar la consulta en 2 lineas a mas,
este tipo de consulta es para buscar dos datos que tenga algn
tipo de similitud en la base de datos "where libros.titulo like '%$libro%' and libros.precio like
'%$precio%'"
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$sql .=" where libros.titulo like '%$libro%' and libros.precio like '%$precio%'";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
Con "$row" mostramos los datos
*/
?>
<tr>
<td><? echo $row[0]; ?></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo: insertar_datos_form.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="guardar_datos.php">
<table width="335" border="1" cellspacing="2" cellpadding="2">
<tr>
<td width="76">Libro:</td>
<td width="239"><input name="titulo" type="text" id="titulo" /></td>
</tr>
<tr>
<td>Precio:</td>
<td><input name="precio" type="text" id="precio" /></td>
</tr>
<tr>
<td>Autor ID:</td>
<td><input name="autorID" type="text" id="autorID" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Guardar" /></td>
</tr>
</table>
</form>
</body>
</html>
Archivo: insertar_datos_avanzado_form.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="guardar_datos.php">
<table width="335" border="1" cellspacing="2" cellpadding="2">
<tr>
<td width="76">Libro:</td>
<td width="239"><input name="titulo" type="text" id="titulo" /></td>
</tr>
<tr>
<td>Precio:</td>
<td><input name="precio" type="text" id="precio" /></td>
</tr>
<tr>
<td>Autor:</td>
<td>
<select name="autorID" id="autorID">
<?
/*
Realizamos una consulta ala tabla autor
para mostrar los datos en un combo
*/
$link=Conectarse();
$sql = "select autorID, nombre from autor order by nombre";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
Archivo: guardar_datos.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
Archivo: actualizar_pro1.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tables libros y autor, con
"$sql .=" se puede separar la consulta en 2 lneas a mas
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre, libros.libroID from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
con "$row" mostramos los datos
notemos que se incluido un enlace con el ID
del registro.
*/
?>
<tr>
<td><a href="Actualizar_pro2.php?libroID=<? echo $row[3]; ?>"><? echo $row[0]; ?></a></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo: actualizar_pro2.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<?
/*
Realizamos nuevamente la consulta pero esta vez
solo mostramos los datos exclusivamente del ID
seleccionado
*/
$link=Conectarse();
$sql = "select titulo, precio, autorID, libroID from libros where libroID = $libroID";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
Almacenamos los datos en variables
para luego mostrarlos en el formulario
*/
$titulo = $row[0];
$precio = $row[1];
$autorID = $row[2];
$libroID = $row[3];
$link=Conectarse();
$sql = "select autorID, nombre from autor order by nombre";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
?>
<option value=<? echo $row[0]; ?> <? if ($autorID == $row[0]){?> selected <? } ?>><? echo
$row[1] ?></option>
<?
} while ($row = mysql_fetch_array($result));
} else {
echo "No se encontraron resultados!";
}
?>
</select>
</td>
</tr>
<tr>
<td> </td>
<td>
<!--
En un campo oculto almacenamos el
ID del libro para identificar el registro
que se esta actualizando
-->
<input type="submit" name="Submit" value="Guardar" />
<input name="libroID" type="hidden" value="<? echo $libroID;?>"></td>
</tr>
</table>
</form>
</body>
</html>
Archivo: actualizar_pro3.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
Archivo: borrar_pro1.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
?>
<table width="700" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>Titulo</td>
<td>Precio</td>
<td>Autor</td>
</tr>
<?
/*
Realizamos la consulta a la base datos
note que estamos trabajando con "inner join"
para relacionar 2 tablas libros y autor, con
"$sql .=" se puede separar la consulta en 2 lneas a mas
*/
$link=Conectarse();
$sql = "select libros.titulo, libros.precio, autor.nombre, libros.libroID from libros ";
$sql .=" inner join autor on libros.autorID = autor.autorID";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {
/*
con "$row" mostramos los datos
notemos que se incluido un enlace con el ID
del registro.
*/
?>
<tr>
<td><a href="Borrar_pro2.php?libroID=<? echo $row[3]; ?>"><? echo $row[0]; ?></a></td>
<td><? echo $row[1]; ?></td>
<td><? echo $row[2]; ?></td>
</tr>
<?
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>
</table>
Archivo: borrar_pro2.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
include("conection.php");
/* Y eliminamos el Registro */
$link=Conectarse();
$sql = "DELETE FROM libros WHERE libroID = $libroID ";
$result = mysql_query($sql);
echo "Registro Eliminado!";
?>
OCTAVA PRACTICA DE PHP
INSERT INTO datos VALUES (1, 'Programacin Web', 'PHP', 'ASP', 'ASPX', 'JSP', 35, 13, 4, 16,
68);
Archivo: config.php
<?
/* Conexin con la Base de Datos MySQL 5*/
$servidor ="localhost";
$usuario ="root";
$password ="";
$base ="encuestas";
$SQLid = mysql_connect($servidor,$usuario,$password);
?>
Archivo: index.php
<?
/* Generamos un consulta
en la base de datos mysql, donde se mostraran
los datos de la encuesta, en la tabla Datos
podemos almacenar diversos tipos de encuestas y cada uno tendr
su propio ID de identificacin, para este ejemplo
sera "encid = 1"
*/
mysql_select_db($base,$SQLid);
$query = "SELECT encid, encprg, encrpt1, encrpt2, encrpt3, encrpt4 FROM datos where encid =
1";
$result = mysql_query($query,$SQLid);
$row = mysql_fetch_array($result);
/*
A continuacin mostramos los datos con "$row"
donde "0" es el ID, "1" el titulo y del 2 al 5
los nombres de la encuesta
?>
<html>
<head>
<title>Encuestas</title>
</head>
<body>
<form name="form1" method="post" action="encuesta.php">
<input type=hidden name="encid" value="<? echo $row[0] ?>">
<br>
<table width="300" border="0" align="center" cellpadding="2" cellspacing="0"
bgcolor="#CCCCCC">
<tr>
<td colspan="2" bgcolor="#666666"><div align="center">
<font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
Encuestas
</font>
</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<strong>
<? echo $row[1]?>
</strong>
</font>
</div></td>
</tr>
<tr>
<td width="20"><input name="voto" type="radio" value="1" checked="checked" /></td>
<td width="272"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<? echo $row[2]?></font></td>
</tr>
<tr>
<td><input type="radio" name="voto" value="2" /></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<? echo $row[3]?>
</font></td>
</tr>
<tr>
<td><input type="radio" name="voto" value="3" /></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<? echo $row[4]?>
</font></td>
</tr>
<tr>
<td><input type="radio" name="voto" value="4" /></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<? echo $row[5]?>
</font></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Enviar" />
</div></td>
</tr>
</table>
</form>
</body>
</html>
Archivo: encuesta.php
<?
/* Incluimos el fichero de conexin
a la base de datos mysql */
require('config.php');
$voto = $_POST["voto"];
$encid = $_POST["encid"];
mysql_select_db($base,$SQLid);
$SQLquery = "UPDATE datos SET encval$voto = encval$voto+1, enctot = enctot+1 where
encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
/* Luego de actualizar los datos de la votacin
mostraremos la estadstica de la encuesta.
*/
?>
<html>
<head>
<title>Encuestas</title>
</head>
<body>
<center>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<strong>
RESULTADOS DE LA ENCUESTA
<br>
<? echo $row["encprg"] ?>
</strong>
</font>
</body>
</html>
NOVENA PRACTICA DE PHP
CREACION DE UN FORO
INSERT INTO foro VALUES (1, 'Joel De la Cruz', '[email protected]', 'PHP y MySQL 5',
'Información de PHP 5 y MySQL 5', '2006-02-27 11:49:45', 2, 0, '2006-02-27 11:50:57');
INSERT INTO foro VALUES (2, 'Carol Mejia', '[email protected]', 'Re: PHP y MySQL 5',
'[citar]Información de PHP 5 y MySQL 5[/citar] Sobre PHP 5 en www.php.net', '2006-02-
27 11:50:23', 0, 1, '2006-02-27 11:50:23');
INSERT INTO foro VALUES (3, 'Carmen Mejia', '[email protected]', 'Re: PHP y MySQL 5',
'[citar]Información de PHP 5 y MySQL 5[/citar] Sobre MySQl 5 en www.mysql.com',
'2006-02-27 11:50:57', 0, 1, '2006-02-27 11:50:57');
Archivo: config.php
<?php
/* Conexin con la Base de Datos MySQL 5*/
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "foro";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>
Archivo: cabecera_de_pagina.html
<html>
<head>
<title>Foro</title>
<style type="text/css">
<!--
a{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #0066FF;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #0065FF;
}
a:hover {
text-decoration: none;
color: #0065FF;
}
a:active {
text-decoration: none;
color: #0065FF;
}
.Estilo3 {font-size: 18px}
-->
</style></head>
<body>
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td bgcolor="#E5E5E5">
<font face="Verdana, Arial, Helvetica, sans-serif" size="5">
Foro </font>
<div align="right">
<a href="index.php"><strong>Home</strong></a>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">l</font>
<a href="respuesta.php"><strong>Nuevo Tema</strong></a>
</div>
</td>
</tr>
</table>
Archivo: pie_de_pagina.html
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2"
bgcolor="#E5E5E5">
<tr>
<td align="center">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">Foro de Programacin</font>
</td>
</tr>
</table>
</body>
</html>
Archivo: formulario.html
<table width="700" border="0" cellspacing="2" cellpadding="2">
<form name="f" action="agregar.php" method="post">
<input type="hidden" name="identificador" value="<?=$id?>">
<tr>
<td width="30%" align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Autor</font> </td>
<td><input type="text" name="autor"></td>
</tr>
<tr>
<td width="30%" align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Titulo</font></td>
<td><input type="text" name="titulo" value="<?=$titulo?>"></td>
</tr>
<tr>
<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Email</font></td>
<td><input name="email" type="text" id="email" /></td>
</tr>
<tr>
<td width="30%" align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Mensaje</font></td>
<td><textarea name="mensaje" cols="50" rows="5"><?=$mensaje?></textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="Enviar Mensaje"> </td>
</tr>
</form>
</table>
Archivo: cuerpo_de_mensaje.html
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2">
<tr bgcolor="<?=$color?>">
<td width="25%" valign="top">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<b><a name="<?=$id?>"><?=$autor?></a></b><br>
Email: <a href="mailto:<?=$email?>"><?=$email?></a><br>
Enviado el : <?=$enviado?>
</font>
</td>
<td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<strong>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<?=$titulo?>
</font>
</strong>
</td>
<td width="10%" align="right">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
[ <a href="respuesta.php?id=<?=$id?>&citar=1">CITAR</a>]
</font>
</td>
</tr>
</table>
<hr align="center" width="100%" size="2" noshade>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<?=$mensaje?>
</font>
</td>
</tr>
<tr>
<td colspan="2" height="5"></td>
</tr>
</table>
Archivo: cabecera_de_registros.html
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2"
bgcolor="#B8D6EB">
<tr>
<td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Título </font></td>
<td width="15%" align="center"> <font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Autor</font></td>
<td width="15%" align="center"> <font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Respuestas</font></td>
<td width="15%" align="center"> <font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Últ. Mensaje</font></td>
</tr>
</table>
Archivo: titulo_de_mensajes.html
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2"
bgcolor="#B8D6EB">
<tr align="center">
<td width="25%"> <font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Usuario</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Mensaje</font></td>
</tr>
</table>
Archivo: temas.html
<table width="700" border="0" align="center" cellpadding="2" cellspacing="2"
bgcolor="<?=$color?>">
<tr>
<td>
<a href="foro.php?id=<?=$id?>"><b><?=$titulo?></b></a>
</td>
Archivo: index.php
<?php
/* Incluimos el fichero de conexin
a la base de datos mysql */
require('config.php');
Archivo: foro.php
<?php
/* Incluimos el fichero de conexin
a la base de datos mysql */
require('config.php');
if(mysql_num_rows($rs)>0)
{
/* Si citar es igual a 1
se procede al siguiente proceso */
if($citar==1)
{
$sql = "SELECT titulo, mensaje, identificador AS id FROM foro WHERE id='$id'";
$rs = mysql_query($sql, $con);
if(mysql_num_rows($rs)==1) $row = mysql_fetch_assoc($rs);
$row["titulo"] = "Re: ".$row["titulo"];
$row["mensaje"] = "[citar]".$row["mensaje"]."[/citar]";
if($row["id"]==0) $row["id"]=$id;
}
Archivo: funciones.php
<?php
/* mostrarTemplate ()
La funcin mostrarTemplate toma el
contenido de la plantilla y un array asociativo con los
valores a reemplazar. La funcin de PHP extract()
se encarga de pasar estos valores a la funcin.
Por lo que si tenemos un arreglo del
tipo $a = array("clave" => "valor"), al ejecutar
extract($a), entonces pasaremos a tener una variable
disponible, de nombre $variable y con "valor" como
contenido. Luego, la funcin eval() se encarga de ejecutar
todo el cdigo de la plantilla.
*/
function mostrarTemplate($tema, $variables)
{
//var_dump($variables);
extract($variables);
eval("?>".$tema."<?");
}
/* parsearTags ()
Dentro de esta funcin, se puede aplicar
diversas modificaciones al mensaje del foro. En el ejemplo,
se muestra el uso de un tag propio, [citar].
El mismo, dentro de la funcin, ser reemplazado por el
cdigo HTML necesario para destacar el citado de un mensaje.
*/
function parsearTags($mensaje)
{
$mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size='2'>", $mensaje);
$mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></blockquote>", $mensaje);
return $mensaje;
}
?>