sábado, 28 de julio de 2012

Función Mail()

Enviar correo con un formulario desde PHP

Respondiendo a la inquietud que presentaron en clase mis estudiantes en clase les dejo un pequeño escript que les permitirá enviar información que capturen en un formulario html hacia un correo electrónico (hotmail o gmail).

Para comenzar el script es un php, pero lo trabajaremos de la siguiente manera:

Escribimos el código dentro las etiquetas <body> y </body>.  En este caso iniciamos con la creación de una tabla (la tabla aportará orden a nuestro formulario).
 
<body>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
  <tr>
    <td>



Luego iniciamos con la etiqueta <form> y la configuramos de la siguiente manera:

    <form action="<? $HTTP_POST_VARS ?>" method="post">


Ahora iniciamos php, este código evaluará si el formulario contiene o no datos, en caso que no contenga mostrará el formulario.

    <?
            if (!$HTTP_POST_VARS){
        ?>


Escribimos el formulario dentro de otra tabla para que se vea más bonito:

        <h1 align="center" class="titulo1">Envíenos un correo</h1>
      <table width="542" border="0" align="center">
      <tr>
        <th width="480" class="Estilo20" scope="row">
            <div align="right">
              Nombre:
              <input name="nombre" type="text" size="40" />
              <br />
              Email:
              <input name="email" type="text" size="40" />
              <br />
              Asunto:
              <input name="asunto" type="text" size="40" />
              <br />
              Comentarios:
              <textarea name="comentario" cols="40" rows="10"></textarea>
              <br />
              <input name="submit" type="submit" value="Enviar correo" />
            </div>
        </form>
        <div align="center" class="Estilo2"><br />
Los comentarios enviados serán recibidos directamente en mi correo y te responderé en cuanto pueda.</div>



Después del formulario volvemos a abrir php y en este espacio contruimos el cuerpo del correo electrónico usando los datos del formulario:

        <?
            }
            else {
            //Estoy recibiendo el formulario, compongo el cuerpo
            $cuerpo = "
Correo enviado desde mi sitio web\n";
            $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
            $cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
            $cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
            $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";
        


Por ultimo envío el correo doy las gracias y cierro todas las etiquetas que antes había abierto:

            mail("limacruzjuancarlos@hotmail.com","Formulario recibido desde mi sitio web",$cuerpo);
            echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
        }
        ?>

        </th>
  </tr>
</table>
    </td>
  </tr>
</table>
</body>


Bien eso es todo, solamente debo aclarar que la función mail() funcionará unicamente en un servidor en línea y no en una de prueba.  Como siempre les dejo el código completo para que lo prueben y lo mejoren.

<body>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
  <tr>
    <td>
    <form action="<? $HTTP_POST_VARS ?>" method="post">
    <?
            if (!$HTTP_POST_VARS){
    ?>
     <h1 align="center" class="titulo1">Envíenos un correo</h1>
     <table width="542" border="0" align="center">
     <tr>
        <th width="480" class="Estilo20" scope="row">

            <form action="libro_vis2.php" method="post">
            <div align="right">
              Nombre:<input name="nombre" type="text" size="40" />
              <br />
              Email: <input name="email" type="text" size="40" />
              <br />
              Asunto:<input name="asunto" type="text" size="40" />
              <br />
              Comentarios:<textarea name="comentario" cols="40" rows="10"></textarea>
              <br />
              <input name="submit" type="submit" value="Enviar correo" />
            </div>
        </form>
        <div align="center" class="Estilo2"><br />
Los comentarios enviados serán recibidos directamente en mi correo y te responderé en cuanto pueda.</div>
        <?
            }
            else {
            //Estoy recibiendo el formulario, compongo el cuerpo
            $cuerpo = "Correo enviado desde mi sitio web\n";
            $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
            $cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
            $cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
            $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";
       
            //mando el correo...
            mail("limacruzjuancarlos@hotmail.com","Formulario recibido desde mi sitio web",$cuerpo);
       
            //doy las gracias por el envío
            echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
        }
        ?>

        </th>
  </tr>
</table>
    </td>
  </tr>
</table>
</body>


Aquí un ejemplo del formulario, envíame un comentario.

jueves, 24 de mayo de 2012

Control de Acceso - Inicio de Sesión

Sesiones

Las sesiones en PHP permiten al programador de páginas web prolongar el uso de información de un usuario a través de accesos subsiguientes, esto permite la creación de páginas web más personalizadas y atractivas, al usuario que accede a nuestro sitio web se le asigna un único nombre de identificación que puede ser almacenado en una cookie y propagado por toda la dirección de nuestro sitio.

Antes de continuar con este documento, es necesario que aclare que el uso de este recurso está ampliamente expuesto en el sitio oficial de PHP o manual en línea de PHP, la dirección es: http://www.php.net/manual/es/book.session.php y es importante que cada programador que desea hacer uso de ésta herramienta consulte este magnifico documento.

Para esta entrada voy a crear un formulario para solicitar al usuario que proporcione su correo electrónico (que en este caso será su ID) y un password ambos datos estarán guardados en una tabla de la base de datos llamada usuarios.  Bien como siempre ire explicando paso a paso las partes que componen el código.

Primera parte:  se evalua si el formulario esta vacio, si es así se muestra el formulario.

<?
if(!$_POST) {
?>

Segunda parte: se configura el formulario y como notamos en el parámetro action se establece el uso de la variable $_POST (Un array asociativo de variables pasadas al script actual a través del método HTTP POST.), el método a usar es POST y en Target usamos _parent para que el resultado del proceso del formulario quede en la misma pestaña o ventana del navegador.

<form action="<? $_POST ?>" method="post" target="_parent">
Tercera parte: se crea el formulario en una tabla con un ancho de 500px, un borde 0 y centrada, notemos que en color anaranjado he puesto el código correspondiente a CSS que da estilo y color al formulario, de color verde estan los campos del formulario y de color azúl esta el código HTML.
<table width="500" border="0" align="center">
  <tr>
    <td colspan="2" style="font-family:Arial; font-size:18px; color:#333333; text-align:center;">Por favor identificate</td>
  </tr>
  <tr>
    <td width="40%" style="font-family:Arial; font-size:18px; color:#333333; text-align:right;">Correo electronico:</td>
    <td width="60%"><input name="email" type="text" size="50" maxlength="100"></td>
  </tr>
  <tr>
    <td style="font-family:Arial; font-size:18px; color:#333333; text-align:right;">Password:</td>
    <td><input name="password" type="password" size="50" maxlength="15"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="" type="submit" value="Entrar"></td>
  </tr>
</table>
</form>
Cuarta parte: al accionar el botón Entrar del formulario se hará uso de la siguiente parte del código, en esta sección veremos el paso de los datos de la variable $_POST a variales PHP definidas por el programador.
<?
} else {
    $email = $_POST['email'];
    $password = $_POST['password'];
Quinta parte: esta sección como vimos en una lección anterior validamos el formulario.  Lo que pretendemos es evaluar que el usuario escriba su correo y su password, en caso contrario se mostrará el mensaje "Debe llenar los campos Correo Electrónico y Password" y el comando exit terminará el script en este punto.
   
    if(!$email || !$password) {
        echo "Debe llenar los campos Correo Electronico y Password";
        exit;
    }
Sexta parte: conectamos con el servidor y seleccionamos la base de datos.
   
    $db = mysql_connect("localhost","root","123456");
    mysql_select_db("esfuerzo");

Septima parte: Consultamos la tabla usuarios buscando en la en la misma que el usuario y el password coincidan con alguno de los registros, esto a través de WHERE.

    $buscar = "SELECT * FROM usuarios WHERE usuario='$email' and password='$password'"; 
    $resultado = mysql_query($buscar, $db);
   
Octava parte: Evaluamos con el condicional IF que los resultados sean positivos, es decir que el numero de registros encontrados sea diferente de 0.

    if (mysql_num_rows($resultado)!= 0){

Novena parte: Si el usuario y la contraseña son validos se define el inicio de la sesión y guardo los datos que posteriormente usaré para validar al usuario al accesar al resto de las páginas de mi sitio.

        session_start();
        session_register("registrado");
        $registrado = "SI";

Decima parte: Redirecciono el acceso a la página principal de mi sitio web en mi caso es esfuerzo.php.

        header ("Location: esfuerzo.php");

Onceava parte: En caso de que el usuario o la contraseña sean erroneos se mostrará nuevamente el formulario

    }else {
        header("Location: index.php?errorusuario=si target: _self");
    }

Doceava parte: libero toda la memoria asociada con el identificador del resultado, termino la conexión con el servidor y cierro PHP.

    mysql_free_result($resultado);
    mysql_close($db);
}
?>

A continuación les dejo el código completo del script para que lo puedan usar y seguido tambien un ejemplo de como validar la sesión en una de las páginas del sitio.

<?
if(!$_POST) {
?>

<form action="<? $_POST ?>" method="post" target="_parent">
<table width="500" border="0" align="center">
  <tr>
    <td colspan="2" style="font-family:Arial; font-size:18px; color:#333333; text-align:center;">Por favor identificate</td>
  </tr>
  <tr>
    <td width="40%" style="font-family:Arial; font-size:18px; color:#333333; text-align:right;">Correo electronico:</td>
    <td width="60%"><input name="email" type="text" size="50" maxlength="100"></td>
  </tr>
  <tr>
    <td style="font-family:Arial; font-size:18px; color:#333333; text-align:right;">Password:</td>
    <td><input name="password" type="password" size="50" maxlength="15"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="" type="submit" value="Entrar"></td>
  </tr>
</table>
</form>
<?
} else {
    $email = $_POST['email'];
    $password = $_POST['password'];
   
    if(!$email || !$password) {
        echo "Debe llenar los campos Correo Electronico y Password";
        exit;
    }
   
    $db = mysql_connect("localhost","root","123456");
    mysql_select_db("esfuerzo");
   
    $buscar = "SELECT * FROM usuarios WHERE usuario='$email' and password='$password'"; 
    $resultado = mysql_query($buscar, $db);
   
    if (mysql_num_rows($resultado)!= 0){
        session_start();
        session_register("registrado");
        $registrado = "SI";
        header ("Location: esfuerzo.php");
    }else {
        header("Location: index.php?errorusuario=si target: _self");
    }
    mysql_free_result($resultado);
    mysql_close($db);
}
?>

Ejemplo de validación de inicio de sesión en paginas del sitio web, en caso de no estar validado correctamente llamará una aplicación con un mensaje de error, en este caso yo la nombre como recuerdo.php.

<?
session_start();
session_register("registrado");
if ($registrado == "SI") {
?>
<html>
<head>
<title>Ferreteria "El Esfuerzo"</title>
<link href="esfuerzo_estilos.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="fondo">
    <div id="encabezado">
        Ferreteria "El Esfuerzo"
    </div> <!-- Fin de encabezado -->
    <div id="capamenu">
        <ul id="menu">
            <li><a href="bienvenido.php" target="contenido">Inicio</a></li>
            <li><a>Consulta</a></li>
            <li><a>Proforma</a></li>
            <li><a>Facturar</a></li>
            <li><a href="add-productos.php" target="contenido">Agregar</a></li>
        </ul>
    </div> <!-- Fin de capamenu -->
    <div id="contenido">
        <iframe width="100%" height="580" frameborder="0" name="contenido"
        src="bienvenido.php" scrolling="auto"></iframe>
    </div>
</div> <!-- Fin de la capa de fondo -->

</body>
</html>
<?
} else {
    include('recuerdo.php');
}
?>

Bien hazta aquí con este documento, espero que les sirva y cuaquier duda o sugerencia será bien recibida.

jueves, 29 de marzo de 2012

Catorceava Clase

Formulario para restringir el acceso a páginas

Este formulario es importante sobre todo cuando queremos que cierta página no sea accesada por caulquier usuario, en esta ocación lo haremos de forma sencilla y en una proxima clase veremos como trarbajar con inicios de sesión.

Es bueno aclarar que el código HTML esta azúl, el código PHP esta en rojo y los comentarios en color verde.

Iniciamos PHP y evaluamos que el formulario no contenga datos, se deja abierto el if para mostrar el formulario que esta escrito en HTML.

<?
if(!$_POST) {
?>

Escribimos el código HTML para el formulario que tendrá dos campos de texto una para Usuario y otro para Password.

En mi estructura de tabla he hecho una modificación, agregue un campo usuario para este programa, les dejo la imagen para que puedan hacer este cambio tambien.




<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
  <tr>
    <td colspan="2" align="center"><h3>LOGIN</h3></td>
  </tr>
  <tr>
    <td>Usuario:</td>
    <td><input name="usuario" type="text" size="15" maxlength="15"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input name="password" type="password" size="15" maxlength="10"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
  </tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y al inicio de else.

<?
} else {

Estas dos líneas de código asignan los valores de los datos capturados en el formulario a dos  variables que usaremos para consultar en la tabla.

$usuario = $_POST['usuario'];
$password = $_POST['password'];

Validamos el formulario.

if(!$usuario || !$password) {
    echo "Debe ingresar los datos en todos los campos.";
    exit;
}

Conectamos con el servidor.

$db = mysql_connect("localhost", "root", "123456")
           or die ("No se puede conectar con LOCALHOST");

Seleccionamos la base de datos.

mysql_select_db("colegioprueba")
          or die ("No se puede abrir la base de datos COLEGIOPRUEBA");

Realizamos la consulta.  En este caso condicionamos usando WHERE que el campo Usuario sea igual a la variable $usuario.

$consultar = "select * from datos where Usuario = '$usuario'";

Ejecutamos la consulta.

$resultado = mysql_query($consultar);

Asignamos al array $reg el contenido de la tabla.

$reg = mysql_fetch_array($resultado);

Con este código evaluamos si la consulta falló, de ser así mostramos un mensaje y luego un link (este esta escrito en código javascript) para volver atrás.

if($reg['Usuario'] != $usuario){
    echo "Nombre de usuario incorrecto <br>";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
    exit;
}

En este código evaluamos que el password que ingreso el usuario sea igual al password registrado en la tabla, de ser así se le da acceso directo a la pagina llamada formulario.php (el redireccionamiento esta escrito en javascript) en caso contrario se da un mensaje y un link para regresar atrás (este link tambien esta escrito en javascript)

if($password == $reg['Password']) {
    ?>
    <script language="javascript">
        location.href = "formulario.php";
    </script>
<?
} else {
    echo "Password Incorrecto";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
}

Finalizamos el if inicial.

}

Finalizamos PHP.

?> 

Como siempre les dejo el código completo para que lo prueben y comenten sus resultados.

<?
if(!$_POST) {
?>
<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
  <tr>
    <td colspan="2" align="center"><h3>LOGIN</h3></td>
  </tr>
  <tr>
    <td>Usuario:</td>
    <td><input name="usuario" type="text" size="15" maxlength="15"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input name="password" type="password" size="15" maxlength="10"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
  </tr>
</form>
</table>
<?
} else {
$usuario = $_POST['usuario'];
$password = $_POST['password'];

if(!$usuario || !$password) {
    echo "Debe ingresar los datos en todos los campos.";
    exit;
}

$db = mysql_connect("localhost", "root", "123456")
           or die ("No se puede conectar con LOCALHOST");

mysql_select_db("colegioprueba")
          or die ("No se puede abrir la base de datos COLEGIOPRUEBA");

$consultar = "select * from datos where Usuario = '$usuario'";
$resultado = mysql_query($consultar);

$reg = mysql_fetch_array($resultado);

if($reg['Usuario'] != $usuario){
    echo "Nombre de usuario incorrecto <br>";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
    exit;
}

if($password == $reg['Password']) {
    ?>
    <script language="javascript">
        location.href = "formulario.php";
    </script>
<?
} else {
    echo "Password Incorrecto";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
}
}
?>

miércoles, 28 de marzo de 2012

Treceava Clase

Formulario de Búsqueda

En la doceava clase estudiamos como consultar datos en la tabla de datos, en esta lección aprenderemos como crear un formulario de búsqueda, siempre haciendo una consulta en la tabla, pero de forma más selectiva.

Como siempre el código PHP está de color rojo, el código HTML de color azúl y los comentarios de color verde.

Iniciamos PHP y evaluamos que el formulario no contenga datos, se deja abierto el if para mostrar el formulario que esta escrito en HTML.

<?
if(!$_POST) {
?>

Escribimos el código HTML para el formulario que tendrá dos campos una tipo select y otro tipo texto, ambos campos estarán estructurados en una tabla.

<table border="2" align="center" width="400">
<form action="<? $_POST ?>" method="post">
    <tr><td align="right">Tipo de Busqueda</td>
        <td><select name="tipo">
        <option value="Nombre">Nombre</option>
        <option value="Codigo">Codigo</option>
           </select></td></tr>
    <tr><td align="right">Termino de Busqueda</td>
        <td><input name="termino" type="text" size="40" maxlength="60">
        </td></tr>
    <tr><td>&nbsp;</td><td><input name="Buscar" type="submit" value="Buscar">
    </td></tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y al inicio de else.

<?
} else {

Estas dos líneas de código asignan los valores de los datos capturados en el formulario a dos variables diferentes que usaremos para consultar en la tabla.

$tipo = $_POST['tipo'];
$termino = $_POST['termino'];

Validamos el formulario, es decir que verificamos que el usuario ingrese el término que desea buscar.  No se valida el campo tipo, porque es un campo tipo select y por ello siempre tendrá un dato aunque el usuario no lo modifique.

if(!$termino) {
    echo "Debes indicar un termino de busqueda";
    exit;
}

Conectamos con el servidor.

$db = mysql_connect("localhost", "root", "123456")
        or die ("No se pudo conectar con LOCALHOST");

Seleccionamos la base de datos.

mysql_select_db("colegiobac")
        or die ("No se puede abrir la base de datos COLEGIOBAC");

Realizamos la consulta.  En este caso vea que utilizamos WHERE para condicionar la búsqueda y esta a su vez utiliza la variable $tipo (que puede ser Nombre o bien Codigo, estos dos datos corresponden a los nombres de los campos en la tabla) la instrucción like unido al signo  % como carácter comodín cuya tarea es buscar los datos que contengan el termino de la búsqueda ($termino).

$consulta = "SELECT * FROM datos WHERE ".$tipo." like '%".$termino."%'";

Ejecutamos la consulta.

$resultado = mysql_query($consulta);

Guardamos en la variable $num_resul el número de registros encontrados.

$num_resul = mysql_num_rows($resultado);

Iniciamos el ciclo con el bucle for y este continuará mientras el contador ($i) sea menor o igual que el número de resultados ($num_resul).

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

La siguiente porción de código extrae los datos de la variable $resultado y los guarda en un array con el nombre $reg.
$registro = mysql_fetch_array($resultado);

Con el siguiente código mostramos el o los registros que resultan positivos en la consulta o búsqueda que realizamos.

    echo "No: ".$registro['IdNombre']."<br>";
    echo "<h1>Nombre: ".$registro['Nombre']."</h1>";
    echo "Edad: ".$registro['Edad']."<br>";
    echo "Codigo: ".$registro['Codigo']."<br>";
    echo "Sueldo: ".$registro['Sueldo']."<br>";
    echo "------------------------------------<br>";

Cerramos el ciclo for.

}

Cerramos el condicional if.

}

Cerramos PHP.
?>

Como en las clases anteriores les dejo el código completo sin comentarios para lo puedan probar y comenten sus resultados.

 <?
if(!$_POST) {
?>
<table border="2" align="center" width="400">
<form action="<? $_POST ?>" method="post">
    <tr><td align="right">Tipo de Busqueda</td>
        <td><select name="tipo">
        <option value="Nombre">Nombre</option>
        <option value="Codigo">Codigo</option>
           </select></td></tr>
    <tr><td align="right">Termino de Busqueda</td>
        <td><input name="termino" type="text" size="40" maxlength="60">
        </td></tr>
    <tr><td>&nbsp;</td><td><input name="Buscar" type="submit" value="Buscar">
    </td></tr>
</form>
</table>
<?
} else {

$tipo = $_POST['tipo'];
$termino = $_POST['termino'];

if(!$termino) {
    echo "Debes indicar un termino de busqueda";
    exit;
}

$db = mysql_connect("localhost", "root", "123456")
        or die ("No se pudo conectar con LOCALHOST");

mysql_select_db("colegiobac")
        or die ("No se puede abrir la base de datos COLEGIOBAC");

$consulta = "SELECT * FROM datos WHERE ".$tipo." like '%".$termino."%'";
$resultado = mysql_query($consulta);
$num_resul = mysql_num_rows($resultado);

for($i=1;$i<=$num_resul;$i++) {
$registro = mysql_fetch_array($resultado);
    echo "No: ".$registro['IdNombre']."<br>";
    echo "<h1>Nombre: ".$registro['Nombre']."</h1>";
    echo "Edad: ".$registro['Edad']."<br>";
    echo "Codigo: ".$registro['Codigo']."<br>";
    echo "Sueldo: ".$registro['Sueldo']."<br>";
    echo "------------------------------------<br>";
}
}
?>

martes, 27 de marzo de 2012

Doceava Clase

Consultar Datos de una Tabla SQL desde PHP

En la clase anterior estudiamos una de las formas que tenemos para guardar datos en una tabla SQL desde PHP, en esta clase aprenderemos como consultar esos datos y mostrarlos en el navegador, para ello vamos a crear un programita utilizando Dreamweaver como editor de PHP.

Como en las clases anteriores el código PHP estará de color rojo y los comentarios de color verde.

Iniciamos PHP
 <?

Conectamos con el servidor

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo mas tarde");

Seleccionamos la base de datos

mysql_select_db("colegioprueba") 
or die ("No se puede seleccionar la base de datos colegioprueba");

Escribimos la consulta SQL en este caso utilizamos el * porque queremos seleccionar todos los campos de la tabla que lleva el nombre datos.

$consulta = "SELECT * FROM datos";

Ejecutamos la consulta y guardamos el resultado en la variable $resultado
$resultado = mysql_query($consulta);

La siguiente porción de código dara como resultado el numero de registros que contiene la tabla datos y serán guardados en la variable $num_resul.
$num_resul = mysql_num_rows($resultado);

Para mostrar los datos consultados utilizaremos el bucle (ciclo repetitivo) for.  En la siguiente línea iniciamos la variable contador $i con valor 1, el segundo parámetro condiciona el ciclo mientras la variable contador $i sea menor o igual que el numero de registros de la tabla, ese número esta guardado en la variable $num_resul y finalmente la variable contador cambia su valor incrementando 1 al valor anterior.

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

La siguiente porción de código extrae los datos de la variable $resultado y los guarda en un array con el nombre $reg.

    $reg = mysql_fetch_array($resultado);

En las siguientes líneas mostramos el contenido de los campos en el navegador, finalizando con una línea de guiones para separar los registros uno de otro, note tambien que cada línea termina con <br> para cambiar línea después de mostrar cada campo.

    echo $reg['nombre']."<br>";
    echo $reg['codigo']."<br>";
    echo $reg['edad']."<br>";
    echo $reg['sueldo']."<br>";
    echo $reg['password']."<br>";
    echo "<br>-----------------------<br>";

Cerramos la llave del ciclo for

}

Finalizamos PHP

?>

 A continuación les dejo el código sin comentarios para que lo prueben y comenten sus resultados.

<?
$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo mas tarde");

mysql_select_db("colegioprueba") 
or die ("No se puede seleccionar la base de datos colegioprueba");

$consulta = "SELECT * FROM datos";
$resultado = mysql_query($consulta);
$num_resul = mysql_num_rows($resultado);

for($i=1;$i<=$num_resul;$i++) {
    $reg = mysql_fetch_array($resultado);
    echo $reg['nombre']."<br>";
    echo $reg['codigo']."<br>";
    echo $reg['edad']."<br>";
    echo $reg['sueldo']."<br>";
    echo $reg['password']."<br>";
    echo "<br>-----------------------<br>";
}
?>

lunes, 26 de marzo de 2012

Onceava Clase

Captura de Datos en PHP con Formularios

En esta clase aprenderemos como crear un formulario en HTML para capturar datos en la red y luego guardarlos en la tabla datos que creamos en la novena clase.

Lo primero que haremos será iniciar un nuevo documento en este caso de tipo PHP.  Es importae aclarar que este formulario puede hacer en un mismo archivo o bien en dos, para esta clase utilizaremos un solo archivo y en una proxima clase veremos como hacerlo de otra forma.

A continuación el código completo y como en clases anteriores el código PHP está en rojo y el código HTML en azúl, en este caso incluyo comentarios en color verde. 

Esta primera sección evalúa que el formulario no contenga datos, se deja abierto el if para mostrar el formulario, que esta escrito en HTML.

<?
if(!$HTTP_POST_VARS){
?>

En esta línea iniciamos configuramos la tabla con un ancho de 500 y un borde de 5.

<table width="500" border="5">

Con esta línea configuramos el formulario, note que en la acción hacemos referencia a la matriz $HTTP_POST_VARS ya que esta recibirá los datos del formulario que a su vez utiliza el metodo POST para la publicación de los datos.

<form action="<? $HTTP_POST_VARS ?>" method="post">

Luego continuamos con el resto de la tabla y los campos del formulario.

  <tr>
    <th scope="row" colspan="2" bgcolor="#000000" style="color:#FFFFFF"><H3>NUEVO USUARIO</H3></th>
  </tr>

En esta porción de código encontramos el primer campo que corresponde a nombre, note que esta en una fila "<tr>" y "</tr>", se incluye la etiqueta en una celda y el campo en otra.

  <tr>
    <th scope="row">Nombre</th>
    <td><input name="nombre" type="text" size="40" maxlength="50" /></td>
  </tr>

Al igual que el campo anterior vemos en esta porción la configurarción del campo codigo.

  <tr>
    <th scope="row">Codigo</th>
    <td><input name="codigo" type="text" size="40" maxlength="5" /></td>
  </tr>

Ahora el campos edad.

  <tr>
    <th scope="row">Edad</th>
    <td><input type="text" name="edad" size="40" maxlength="2" /></td>
  </tr>

Aquí el campo sueldo, note que este campo incluye value=0 y esto es porque este campo recibirá números.

  <tr>
    <th scope="row">Sueldo</th>
    <td><input name="sueldo" type="text" value="0" size="40" maxlength="7" /></td>
  </tr>

Finalmente el campo Password, vea que el tipo del campo es password.

  <tr>
    <th scope="row">Password</th>
    <td><input name="password" type="password" size="40" maxlength="10" /></td>
  </tr>

En esta última parte del código HTML encontramos la configuración del botón que ejecutará la acción del formulario su valor es Guardar Datos y además vemos el cierre de Form y el cierre de Table.

  <tr>
    <th scope="row">&nbsp;</th>
    <td><input name="" type="submit" value="Guardar Datos" /></td>
  </tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y el inicio de else.

<?
} else {

Estas cinco líneas de código asignan los valores de los datos capturados en el formulario a cinco diferentes variables que usaremos para guardar los datos en la tabla.

$nombre = $HTTP_POST_VARS[nombre];
$codigo = $HTTP_POST_VARS[codigo];
$edad = $HTTP_POST_VARS[edad];
$sueldo = $HTTP_POST_VARS[sueldo];
$password = $HTTP_POST_VARS[password];

Las siguiente sección corresponde a la validación del formulario, es decir verificar que el usuario haya ingresado los datos en todos los campos correspondientes, caso contrario se finalizará este programa con el mensaje:  "Debes llenar todos los campos del formulario".

if(!$nombre || !$codigo || !$edad || $sueldo == 0 || !$password) {
    echo "Debes llenar todos los campos del formulario";
    exit;
}

Ahora es necesario conectar con el servidor de prueba para que podamos tener acceso a la base de datos que creamos en la lección nueve, para ello usamos el siguiente código.  Vea que el codigo incluye el nombre del servidor "localhost", el nombre del usuario "root" y la contraseña "123456" en mi caso utilizo estos datos, tambien es importante resaltar que la instrucción or die permite enviar un mensaje de error en caso de no conectar con el servidor.

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo más tarde.");

Es momento de seleccionar la base de datos, al igual que en el código anterior si la base de datos no se puede seleccionar la instrucción or die enviará un mensaje de error.

mysql_select_db("colegioiprueba") or die ("No se pudo seleccionar la base datos colegioprueba, prueba más tarde");

Una vez seleccionada la base de datos grabamos los datos capturados en el formulario utilizando una instrucción sql.

$insertar = "insert into datos (nombre, codigo, edad, sueldo, password)
            values ('$nombre', '$codigo', '$edad', '$sueldo', '$password')";

Ejecutamos la consulta slq.

$resultado = mysql_query($insertar);

Debemos confirmar si efectivamente se guardaron los datos y en caso contrario notificar que no fue posible guardarlos.

if(!$resultado){
    echo "No se guardaron datos";
} else {
    echo "<h1>DATOS GUARDADOS CON EXITO</H1>";
}

Terminamos cerrando else con una llave y PHP.

}
?>

Bien es hora de probar si funciona nuestro programa, recuerde que primero se debe crear la base de datos, luego la tabla, luego debe configurar su sitio en Dreamweaver con su servidor (si así lo prefiere, sino puede usar el bloc de notas) y listo.

Aquí les dejo una copia del programa completo sin comentarios.

<?
if(!$HTTP_POST_VARS){
?>
<table width="500" border="5">
<form action="<? $HTTP_POST_VARS ?>" method="post">
  <tr>
    <th scope="row" colspan="2" bgcolor="#000000" style="color:#FFFFFF"><H3>NUEVO USUARIO</H3></th>
  </tr>
  <tr>
    <th scope="row">Nombre</th>
    <td><input name="nombre" type="text" size="40" maxlength="50" /></td>
  </tr>
  <tr>
    <th scope="row">Codigo</th>
    <td><input name="codigo" type="text" size="40" maxlength="5" /></td>
  </tr>
  <tr>
    <th scope="row">Edad</th>
    <td><input type="text" name="edad" size="40" maxlength="2" /></td>
  </tr>
  <tr>
    <th scope="row">Sueldo</th>
    <td><input name="sueldo" type="text" value="0" size="40" maxlength="7" /></td>
  </tr>
  <tr>
    <th scope="row">Password</th>
    <td><input name="password" type="password" size="40" maxlength="10" /></td>
  </tr>
  <tr>
    <th scope="row">&nbsp;</th>
    <td><input name="" type="submit" value="Guardar Datos" /></td>
  </tr>
</form>
</table>
<?
} else {
$nombre = $HTTP_POST_VARS[nombre];
$codigo = $HTTP_POST_VARS[codigo];
$edad = $HTTP_POST_VARS[edad];
$sueldo = $HTTP_POST_VARS[sueldo];
$password = $HTTP_POST_VARS[password];

if(!$nombre || !$codigo || !$edad || $sueldo == 0 || !$password) {
    echo "Debes llenar todos los campos del formulario";
    exit;
}

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo más tarde.");

mysql_select_db("colegioiprueba") or die ("No se pudo seleccionar la base datos colegioprueba, prueba más tarde");

$insertar = "insert into datos (nombre, codigo, edad, sueldo, password)
            values ('$nombre', '$codigo', '$edad', '$sueldo', '$password')";
$resultado = mysql_query($insertar);

if(!$resultado){
    echo "No se guardaron datos";
} else {
    echo "<h1>DATOS GUARDADOS CON EXITO</H1>";
}
}
?>

Decima Clase

Configuración del Sitio con Servidor de Prueba en Dreamweaver

Llegamos a la decima clase y es hora de aprender a configurar un servidor de prueba para que interprete nuestros programas de forma local (lo haremos en Dreamweaver CS5.5) y como en las dos lecciones anteriores me apoyaré con imagenes para pueda comprender mejor.

Paso No. 1 -  Seleccione la opción de menú sitio y luega haga clic en la opción Nuevo sito.



Paso No. 2 -  Ahora en la sección Sitio:
                       Nombre del Sitio:  programas
                       Carpeta del sitio local: C:\AppServ\www\programas


En este caso voy a utilizar en el nombre del sitio la palabra programas y la carpeta del sitio estará úbicada en la carpeta www que esta en la carpeta AppServ que corresponde al servidor de prueba que instalamos en la octava clase.



Paso No. 3 - Seleccione la opción Servidores y luego haga clic en +




Paso No. 4 - Ahora en la opción Básicas configure de la siguiente manera:


                       Nombre del servidor: localhost 
                       Conectar usando: Local/red
                       Carpeta del servidor: C:\AppServ\www\programas
                       URL Web: http://localhost/programas


Para finalizar con este paso haga clic en el botón Guardar.




Paso No. 5 - Quite el cheque de selección a la opción remoto y seleccione la opción De prueba, luego presione clic en el botón Guardar.




Ahora puede ver en la ventana de archivos que su sitio a quedado configurado con sus servidor de prueba, es decir que sus archivos serán guardados en la carpeta del servidor que instalamos en la octava clase.



Bien ahora estamos listos para empezar a programar en Dreamweaver, uno de las aplicaciones más excelentes para esta tarea.

viernes, 23 de marzo de 2012

Novena Clase

Bases de Datos

Durante esta clase aprenderemos como crear una base de datos y una tabla en el servidor de prueba que instalamos en la octava clase, para ello seguiremos algunos sencillos pasos (me ayudaré con imagenes para que se más facil).

Paso No. 1 - Debemos abrir el navegador (en realidad no importa cual este usando, en lo personal uso Mozilla FireFox) y en la barra de direcciones escribimos localhost y presionamos la techa ENTER.



Paso No. 2 - Haga un clic sobre el link phpMyAdmin Database Manager Version 2.10.3



Paso No. 3 - Escriba el nombre de usuario y la contraseña, si siguió las indicaciones de la octava lección el nombre de usuario es root y la contraseña es 123456 y luego presione ENTER.



Paso No. 4 - En el cuadro de texto Crear nueva base de datos, escriba el nombre de su base de datos, en mi ejemplo usaré colegioprueba y luego haga clic en el botón Crear.  De esta manera esta creada la base de datos ahora lo que queda es crear la o las tablas que necesita.



Paso No. 5 - Ahora podrá observar una sección denominada Crear nueva tabla en la base de datos colegioprueba, en el Campo nombre escriba el nombre de su tabla, para nuestro ejemplo el nombre es datos y en el campo Número de campos escriba 6, ahora haga clic en el botón Continuar.  Es necesario aclarar que en el número de campos escribimos 6 porque incluiremos los siguientes campos: IdDato, Nombre, Codigo, Edad, Sueldo, Password (en este momento los campos tienen poca o ninguna relación, pero más adelante verá como los iremos utilizando cada uno).



Paso No. 6 - Es tiempo de crear la estructura, como lo muestra la imagen encontraremos varios cuadros de texto que deberemos llenar con los datos que queremos en esta estructura, para nuestro ejemplo haremos los siguientes campos:

Campo             Tipo                  Long/Valores          Extra                            Propiedad
IdDato               INT                   4                               Autoincrement            Primaria
Nombre            VARCHAR      60
Codigo             INT                    5
Edad                INT                    4
Sueldo             DOUBLE         6,2
Password        VARCHAR      10

En el primer campo definimos en la propiedad Extra: Autoincrement porque será un dato que se irá modificando de manera automática, es decir que cuando se agregue un nuevo registro en este campo se aumentará un número y en la propiedad primaria la definimos así porque este campo será el que utilizaremos para relacionar esta tabla con otras tablas de la misma base de datos.

Bien al completar la estructura hacemos clic en el botón Grabar y habremos concluido con la creación de nuestra base de datos y tambien con nuestra primera tabla.