PHP

INSTALAR PHP Y MYSQL EN IIS




COMPRENDER EL FUNCIONAMIENTO DE PHP





PRIMERA PÁGINA CON PHP



<HTML LANG="ES">

<HEAD>
   <TITLE>PHP y HTML</TITLE>
</HEAD>

<BODY>

<H1>PHP y HTML</H1>

<P>Éste es el párrafo 1, escrito desde HTML</P>


<?PHP

   print ("<P>Éste es el párrafo 2, escrito desde PHP</P>\n");

?>

<P>Éste es el párrafo 3, escrito nuevamente desde HTML</P>

<?PHP

   echo ("<P>Y éste es el párrafo 4, escrito desde PHP</P>\n");

?>

</BODY>
</HTML>


MANEJO DE VARIABLES



DECLARACIÓN DE UNA VARIABLE NUMERICA Y CREACIÓN DE CICLOS CON "FOR"
<HTML LANG="ES">

<HEAD>
   <TITLE>Tabla de multiplicar</TITLE>
</HEAD>

<BODY>

<H1>Tabla de multiplicar</H1>

<?PHP



   $n = 7;

   echo("<P>La tabla de multiplicar del $n es:</P>\n");


   for ($i=1; $i<=10; $i++) {

      echo("$n x $i = " . $n*$i . "<BR>\n");

}

?>

</BODY>
</HTML>

DECLARACIÓN DE UNA VARIABLE DE TEXTO Y USO DE FUNCIONES DE TEXTO


<HTML>
<HEAD>
<TITLE>SITIO WEB TUTORIAL PHP INTRODUCCION</TITLE>
</HEAD>
<BODY>
<?php

#Todo en Minusculas
$variable="eSTA eS UnA pruEbA";

$resultado= strtolower($variable);

echo ("$resultado <BR> \n");

# Todo en mayusculas
$resultado= strtoupper($variable);

echo ("$resultado <BR>\n");

# primera letra mayuscula
$variable="esta es una prueba";

$resultado= ucwords($variable);

echo ("$resultado <BR>\n");

# quitar los espacios de a la izquierda
$variable="                     esta es una prueba";

$resultado= ltrim($variable);

echo ("<Pre>\n");

echo ("$resultado <BR>\n");

echo ("$variable <BR>\n");

echo ("</Pre>\n");

?>

</BODY>
</HTML>

INSTRUCCIÓN INCLUDE
<HEAD>
<TITLE>SITIO WEB TUTORIAL PHP INTRODUCCION</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=1 WIDTH=100%>
<TR>
<TD COLSPAN=2>
<!-- comentario en HTML-->
<?php

#Comentario en PHP de una linea



/* Uso de variable de Texto */



$variable="Programacion 4";

echo ("<H1> EMPOTRADO para  ".$variable." </H1>\n");



?>

</TD>
</TR>
<TR>
<TD><ul>
<?php

/* Creacion de un ciclo */

for ($i = 1; $i <= 10; $i++) {

echo ("<LI>Tema $i");

}

?>

</ul> </TD>
<TD>
<?php

/* permite cargar una página dentro de otra */

include ("contenido.php");

?>
</TD>

</TR>

<TR>
</TR>
</TABLE>
</BODY>
</HTML>

USO DE WHILE, VARIABLES DE SERVIDOR, IF

<HTML>
<HEAD>
<TITLE>Tercera Clase </Title>
</HEAD>
<BODY>
<H1>CICLO CON WHILE </H1><HR>

<?php
/* While repite el ciclo mientras la condicion no se cumpla */


$iteracion = 0;

while ($iteracion<=10)
{
$iteracion++;
echo "Valor de iteracion es". $iteracion." </br>";
}

?>

<H1>CICLO CON FOR</H1><HR>

<?php
/* For repite un ciclo un numero exacto de veces */

for ($iteracion=1;$iteracion<=10;$iteracion++)
{
echo "Valor de iteracion es". $iteracion." </br>";
}

?>
<H1>VARIABLES DE SERVIDOR</H1><HR>
<?php
/* Nombre del servidor */

echo "Nombre del Servidor:".$_SERVER['SERVER_NAME']. "</br>";
echo "Direccion Ip del cliente:".$_SERVER['REMOTE_ADDR']. "</br>";
echo "Idioma del cliente:".$_SERVER['HTTP_ACCEPT_LANGUAGE']. "</br>";

$idioma=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
echo "Idioma Normal:".$idioma. "</br>";
echo "Idioma Mayusculas:". strtoupper($idioma). "</br>";

if ($idioma=="es") {
echo " Guatemala (náhuatl: Quauhtlemallan, 'lugar de muchos árboles' )?4 —oficialmente, República de Guatemala— es un país situado en América Central, en su extremo noroccidental, con una cultura autóctona producto de la herencia maya y la influencia española durante la época colonial.</br>";
}
else
{
echo "Guatemala (Nahuatl: Quauhtlemallan 'place of many trees')? 4-officially Republic of Guatemala is a country located in Central America, in its northwestern corner, with an indigenous culture, heritage product of Maya and Spanish influence during the colonial era.</br>";
}


?>

</BODY>
</HTML>









ARREGLOS EN PHP (Vectores y Matrices)


<HTML>
<head><title>Arreglos en PHP</title></head>
<body>
<h1>Arreglo</h1><hr>
<?php

 //UNIDIMENSIONAL
$arreglo = array(1,2,3,4,5);

foreach ($arreglo as $value)
{
                echo "El número del arreglo es ". $value ."</br>\n";
}
?>
<h1>Arreglo</h1><hr>
<?php
 //BIDIMENCIONAL
$arreglo = array("persona" => array(
"Nombre" => "Victor",
"Apellido" => "Cardenas",
"Sexo" => "Masculino",
"Edad" => "35"
));

echo $arreglo ["persona"]["Nombre"];
echo $arreglo ["persona"]["Apellido"];
echo $arreglo ["persona"]["Sexo"];
echo $arreglo ["persona"]["Edad"];


foreach ($arreglo as $value)
{
                foreach ($arreglo["persona"] as $value2)
                echo "El valor del arreglo es ". $value2 ."</br>\n";
}
?>


</body>
</HTML>

CREANDO SESIONES (Archivo sesion.php)

<?php

session_start();

if (isset($_POST['Enviar']))
{
$usuario= $_POST['usuario'];
$contrasena= $_POST['contrasena'];

                if ($usuario=="Victor" && $contrasena="Cardenas")
                {
                $_SESSION['estado']="Logeado";
                $_SESSION['usuario']=$usuario;
                }
                else
                {
                $_SESSION['estado']="NoLogeado";
                $_SESSION['usuario']="";
                }

}

?>

<HTML>
<HEAD><Title>Welcome</Title></HEAD>
<BODY>


<TABLE BORDER=1 width=100%>
<TR> <TD colspan=2> <h1>Universidad Galileo</h1>

<?php

if (isset($_SESSION['estado']) && $_SESSION['estado']=="Logeado")
{
echo "<h3> Usuario : ". $_SESSION['usuario']. "</h3>\n";
}

?>

<TR> <TD>
<A href="galileo.php">Mas informacion   VISOAL, S.A.</A><br>
<P>La Visoal, s.a. fundamenta sus actividades en el individuo como ser humano; reconoce la necesidad de apoyar el desarrollo de los guatemaltecos en general y esta plenamente consciente que la principal herramienta para el crecimiento de las personas es la educación.
<P>
Cree en los maestros como el más importante factor de cambio de nuestra sociedad, concibiendo la urgente necesidad de ofrecer opciones educativas para aceptar y participar en los procesos de reingeniería de la educación, así como en la formación eficiente de las nuevas generaciones.
<P>
Cree en la urgente necesidad de mejorar las condiciones de nuestro medio ambiente, para crear un entorno ecológico apropiado para las futuras generaciones, nos hace pensar en proyectos de impacto nacional en esta disciplina. También cree en que las condiciones ecológicas de nuestro país y nuestra posición geográfica nos invita a asumir un liderazgo en Latinoamérica.
<TD>
<Form method="Post" Action="sesion.php">
<Table Border=1>
<TR><TD colspan=2><h3>Login</h3>
<TR><TD>Usuario:<TD>
<Input type=text name=usuario>
<TR><TD>Contrasena:<TD>
<Input type=password name=contrasena>
<TR><TD colspan=2><input type=submit name=Enviar value="Entrar">
</Table>
</Form>
<TR> <TD colspan=2>

</TABLE>
</BODY>
</HTML>



EJERCICIO PHP, CREACIÓN DE UNA CALCULADORA CON SESIONES.

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
if (isset($_POST['Nueve']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."9";
}

if (isset($_POST['Ocho']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."8";
}
if (isset($_POST['Siete']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."7";
}
if (isset($_POST['Seis']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."6";
}
if (isset($_POST['Cinco']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."5";
}
if (isset($_POST['Cuatro']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."4";
}
if (isset($_POST['Tres']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."3";
}
if (isset($_POST['Dos']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."2";
}
if (isset($_POST['Uno']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."1";
}
if (isset($_POST['Cero']))
{
$_SESSION['Acumulador']= $_SESSION['Acumulador']."0";
}
if (isset($_POST['Suma']))
{
$_SESSION['Cantidad1']=$_SESSION['Cantidad1']+$_SESSION['Acumulador'];
$_SESSION['Operador']="+";
$_SESSION['Acumulador']="";
}
if (isset($_POST['Resta']))
{
$_SESSION['Cantidad1']=$_SESSION['Cantidad1']-$_SESSION['Acumulador'];
$_SESSION['Operador']="-";
$_SESSION['Acumulador']="";
}
if (isset($_POST['Multiplicacion']))
{
$_SESSION['Cantidad1']=$_SESSION['Cantidad1']*$_SESSION['Acumulador'];
$_SESSION['Operador']="*";
$_SESSION['Acumulador']="";
}
if (isset($_POST['Division']))
{
$_SESSION['Cantidad1']=$_SESSION['Cantidad1']/$_SESSION['Acumulador'];
$_SESSION['Operador']="/";
$_SESSION['Acumulador']="";
}
if (isset($_POST['Esc']))
{
 // descoloco todas la variables de la sesión
 session_unset();
 // Destruyo la sesión
 session_destroy();
}
if (isset($_POST['Igual']))
{
$_SESSION['Cantidad2']=$_SESSION['Acumulador'];
               
                if ($_SESSION['Operador']=="+")
                {             
                               $_SESSION['Acumulador']= $_SESSION['Cantidad1'] + $_SESSION['Cantidad2'];
                }             

                if ($_SESSION['Operador']=="-")
                {             
                               $_SESSION['Acumulador']= $_SESSION['Cantidad1'] - $_SESSION['Cantidad2'];
                }             

                if ($_SESSION['Operador']=="*")
                {             
                               $_SESSION['Acumulador']= $_SESSION['Cantidad1'] * $_SESSION['Cantidad2'];
                }             

                if ($_SESSION['Operador']=="/")
                {             
                               $_SESSION['Acumulador']= $_SESSION['Cantidad1'] / $_SESSION['Cantidad2'];
                }             
}
?>
<h1>Calculadora</h1>
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="calculadora.php">
  <table width="272" border="1">
    <tr>
      <td colspan="5"><label for="Mostrar"></label>
        <input name="Mostrar" type="text" id="Mostrar" size="40" / value="<?php echo $_SESSION['Acumulador'] ?>"></td>
    </tr>
    <tr>
      <td width="50"><input type="submit" name="Siete" id="Siete" value="   7   " /></td>
      <td width="47"><input type="submit" name="Ocho" id="Ocho" value="   8   " /></td>
      <td width="47"><input type="submit" name="Nueve" id="Nueve" value="   9   " /></td>
      <td width="49"><input type="submit" name="Suma" id="Suma" value="   +   " /></td>
      <td width="45" rowspan="4"><input type="submit" name="Esc" id="Esc" value="  ESC  " /><input type="submit" name="Igual" id="Igual" value="    =    " /></td>
    </tr>
    <tr>
      <td><input type="submit" name="Cuatro" id="Cuatro" value="   4   " /></td>
      <td><input type="submit" name="Cinco" id="Cinco" value="   5   " /></td>
      <td><input type="submit" name="Seis" id="Seis" value="   6   " /></td>
      <td><input type="submit" name="Resta" id="Resta" value="   -    " /></td>
    </tr>
    <tr>
      <td><input type="submit" name="Uno" id="Uno" value="   1   " /></td>
      <td><input type="submit" name="Dos" id="Dos" value="   2   " /></td>
      <td><input type="submit" name="Tres" id="Tres" value="   3   " /></td>
      <td><input type="submit" name="Multiplicacion" id="Multiplicacion" value="   *   " /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="Cero" id="Cero" value="          0          " /></td>
      <td><input type="submit" name="Punto" id="Punto" value="   .   " /></td>
      <td><input type="submit" name="Division" id="Division" value="   /    " /></td>
    </tr>
  </table>
  <p id="form1">&nbsp;</p>
</form>
</body>
</html>



Abriendo y Cerrando Archivos de Texto con PHP


Abriendo y Cerrando Archivos

La función fopen () se utiliza para abrir los archivos y devuelve un descriptor de fichero asociado con el archivo abierto. La función por lo general toma dos argumentos: nombre de archivo y el modo. El nombre del archivo, obviamente, se refiere al archivo que desea abrir. La notación de ruta depende de la ubicación del archivo se encuentra en la estructura de directorios. Esto se puede indicar mediante una ruta absoluta o una ruta relativa. Una ruta absoluta identifica la ubicación del archivo relativo a la raíz del sistema de archivos y comienza con un /. Una ruta relativa identifica la ubicación del archivo con respecto a la ubicación del script que se está abriendo el archivo. Algunos puntos a tener en cuenta cuando se utiliza una ruta relativa:

.               se refiere a el directorio en el que se encuentra el script
..              se refiere a el directorio inmediatamente superior a donde se encuentra el script

Value
How file can be used
r
Abre el archive solamente de lectura. The file position indicator is placed at the beginning of the file.
r+
Abre el archive para lectura y escritura. The file position indicator is placed at the beginning of the file.
w
Abre el archive para escritura. Any data already in the file will be lost. If the file does not exist, PHP will attempt to create it. The file position indicator is placed at the beginning of the (now empty) file.
w+
Abre el archive para lectura y escritura. Any data already in the file will be lost. If the file does not exist, PHP will attempt to create it. The file position indicator is placed at the beginning of the (now empty) file.
a
Abre el archive para agregar solamente. The file position indicator is placed at the end of the file, so data is written to the end of the file. If the file does not exist, PHP will attempt to create it.
a+
Abre el archive para leer y agregar. The file position indicator is placed at the end of the file, so data is written to the end of the file. If the file does not exist, PHP will attempt to create it.

Para abrir un archive orientado a líneas (texto)

$fp = fopen ("hit.txt", "r");

Para abrir un archivo binario (que no está orientado a líneas) como una imagen .jpg

$fp = fopen ("mountains.jpg", "rb");

Para verificar si un archivo está abierto o no, usamos el siguiente código:

$fp = fopen("./hit.txt", "w+");
if(!$fp) die ("Cannot open the file");


Leyendo y escribiendo en archivos

$fp = fopen ("myfile.txt", "r");
if ( ! $fp) die ("Can't open myfile.txt");
while ($line = fgets ($fp, 200)) {
echo $line;
}
fclose ($fp);


$fp = fopen ("myoutput.txt", "w");
if ( ! $fp) die ("Can't open myoutput.txt for writing");
if ( ! fputs ($fp, "This is a line of text.\n"))
die ("Can't write line to myoutput.txt");
fclose ($fp);

Copiando, Renombrando y Borrando archivos

PHP provee de funciones para copiar, renombrar y borrar archivos estas son: copy(), rename() y unlink() respectivamente.

if(!copy("./hit.txt", "count.txt")) die ("Unable to copy the file");

if(!rename("./hit.txt", "count.txt")) die ("Unable to rename the file");.

if(!unlink("./hit.txt")) die ("Unable to delete the file");.

Acceso a Directorio

$dp = opendir ("/Windows/Temp/");

closedir($dp);

readdir()

is_dir()

is_file()


Conjunto de Script para Insertar y Mostar Imagenes en MYSQL con PHP

Este código permite agregar imagenes a MYSQL a través de PHP y luego mostrar las imagenes en una página de PHP

Creación de Tabla en MYSQL
CREATE TABLE archivos (

id int(10) unsigned NOT NULL auto_increment,

archivo_binario blob NOT NULL,

archivo_nombre varchar(255) NOT NULL default '',

archivo_peso varchar(15) NOT NULL default '',

archivo_tipo varchar(25) NOT NULL default '',

descripcion text,

autor varchar(200),

PRIMARY KEY (id)

)
Página de Formulario de Ingreso a la base de datos INGRESO.php
<HTML>

<HEAD>

<TITLE>Binario a BD</TITLE>

</HEAD>

<BODY>

<FORM enctype="multipart/form-data" method="post" action="insertar.php">

<table width="200" border="1">

<tr>

<td colspan="2"><h4>Entrada de Blog</h4></td>

</tr>

<tr>

<td>Imagen:</td>

<td><input type="file" name="archivo" size="30"></td>

</tr>

<tr>

<td>Comentario:</td>

<td><label>

<textarea name="comentario" id="comentario" cols="45" rows="5"></textarea>

</label></td>

</tr>

<tr>

<td>Autor:</td>

<td><label>

<input type="text" name="autor" id="autor">

</label></td>

</tr>

</table>

<p>:

<INPUT type="submit" name="submit" value="Enviar Entrada">

</p>

</FORM>

</BODY>

</HTML>
Pagina de PHP que se conecta a MYSLQ para agregar los datos.
<?php

//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:

// No se comprueba aqui si se ha subido correctamente.

if (empty($_FILES['archivo']['name'])){

header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..

exit;

}
//establece una conexión con la base de datos.

$conexion = mysql_connect("Servidor","root","Contraseña") or die("<B>No se pudo realizar la conexion con el servidor.</B> Intentelo de nuevo, <A href=ingreso.php> haga click para regregar</A>");

mysql_select_db("Base de Datos",$conexion) or die("<B>No se puede seleccionar</B> BD Intentelo de nuevo, <A href=ingreso.php> haga click para regregar</A>"); // tu_bd es el nombre de la Base de datos .. por siaca.
// archivo temporal (ruta y nombre).

$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;
// leer del archvio temporal .. el binario subido.

// "rb" para Windows .. Linux parece q con "r" sobra ...

$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.

$binario_nombre=$_FILES['archivo']['name'];

$binario_peso=$_FILES['archivo']['size'];

$binario_tipo=$_FILES['archivo']['type'];

$comentario = $_POST['comentario'];

$autor = $_POST['autor'];
//insertamos los datos en la BD.

$consulta_insertar = "INSERT INTO archivos (archivo_binario, archivo_nombre, archivo_peso, archivo_tipo, descripcion, autor) VALUES ( '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo', '$comentario', '$autor')";

mysql_query($consulta_insertar,$conexion) or die("<B> No se pudo insertar los datos en la base de datos.</B> Intentelo de nuevo, <A href=ingreso.php> haga click para regregar</A>");

echo ("Se inserto correctamente la imagen"); // si ha ido todo bien

exit;

?>
Página que visualiza las imagenes Normales

<?php

if(isset($_GET['id'])) {
// you may have to modify login information for your database server:

$conexion=mysql_connect("localhost","root","sanedrac") or die ("no se ha podido conectar a la BD");
mysql_select_db("sitio") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_nombre,archivo_binario,archivo_tipo,archivo_peso,descripcion,autor FROM archivos WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$datos = mysql_result($consulta,0,"archivo_binario");

$tipo = mysql_result($consulta,0,"archivo_tipo");

$nombre = mysql_result($consulta,0,"archivo_nombre");

$peso = mysql_result($consulta,0,"archivo_peso");

$author = mysql_result($consulta,0,"autor");

$comentario=mysql_result($consulta,0,"descripcion");
header("Content-type: $tipo");

header("Content-length: $peso");

header("Content-Disposition: inline; filename=$nombre");

echo "$datos prueba prueba";

echo $datos;

}

?>

Página que Visualiza las imagenes en miniatura

<?php
// OJO, sólo funciona con imagnes en formato JPEG ...
if(isset($_GET['id'])) {
// you may have to modify login information for your database server:

$conexion=mysql_connect("localhost","root","sanedrac") or die ("no se ha podido conectar a la BD");
mysql_select_db("sitio") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_nombre, archivo_binario, archivo_tipo, archivo_peso, descripcion, autor FROM archivos WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);

$imagen = mysql_result($consulta,0,"archivo_binario");
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG

header ("Content-type: image/jpeg");
// Generar el thumbnail:
// Se crea la imagen desde el campo binario de la BD

$img = imagecreatefromstring($imagen);
// Tamaño del Thumbanil (de la imagen a generar ..)

$picsize = 123;



// Se obtienen los datos del ancho y alto de la imagen.

$new_w = imagesx($img);

$new_h = imagesy($img);
// Se calcula la relación alto/ancho

$aspect_ratio = $new_h / $new_w;



// Se ajusta al nuevo tamaño

$new_w = $picsize;

$new_h = abs($new_w * $aspect_ratio);
// Se crea la mascara de la imagen nueva

$dst_img = imagecreateTrueColor($new_w,$new_h);
// Se copia y reajusta el nuevo tamaño en la nueva imagen.

imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG

// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.

imagejpeg($dst_img,'',100);

}