PHP Básico - Clase 5

Posteado el 26. Oct, 2013 por in Php, PHP

En la clase de hoy armaremos las secciones de Administración de usuarios, el login y el manejo básico de sesiones de usuarios para agregarle un nivel de seguridad básica que no teníamos en nuestra aplicación de blog.

Descargar el código completo

Administración de usuarios

Para crear la administración de usuarios nos basaremos en lo que ya hemos realizado con la administración de posts de la clase pasada y partiremos de la misma base de archivos creados.

Primero duplicaremos los archivos y los renombraremos para que queden asi:

  • admin/index.php -> post_admin.php
  • creamos un nuevo archivo admin/index.php
  • admin/post_ax.php -> usuarios_ax.php
  • admin/post_crear.php -> usuarios_crear.php
  • admin/post_editar.php -> usuarios_editar.php
  • duplicamos post_admin.php y renombramos la copia a usuarios_admin.php
  • duplicamos post_ax.php y renombramos la copia a log_ax.php

al final debe verse asi:

Screen Shot 2013-10-25 at 4.45.32 PM

 

en nuestro nuevo index.php crearemos el formulario de login, que permitirá que creemos una sesión y accedamos a nuestro administrador.

En bootstrap vemos el ejemplo http://getbootstrap.com/2.3.2/examples/signin.html de aqui copiaremos el HTML para poder partir de lo que ya existe y no tomar demasiado tiempo armando el esqueleto y los estilos.

Al final debe quedar de la siguiente manera:

<?php
session_start();
?>
<html>
	<head>
		<title>El blog de Frisley</title>
		<link rel="stylesheet" href="../css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="default.css">
 
		<script src="../js/jquery-2.0.3.min.js"></script>
		<script src="../js/jquery-migrate-1.2.1.min.js"></script>
		<script src="../js/bootstrap.min.js"></script>
 
		<script>
			function createPost(){
			}
 
			function editPost(id){
 
				window.location = 'http://127.0.0.1/blog/admin/post_editar.php?id='+id;
 
			}
			function deletePost(id){
				var conf = confirm('Estas seguro de querer eliminar este post?');
 
				if(conf)
				{
					$("#eliminarForm_"+id).submit();
				}
			}
		</script>
 
		<style type="text/css">
      body {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
      }
 
      .form-signin {
        max-width: 300px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
        width: 100%
      }
 
    </style>
 
    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->
 
	</head>
	<body>
	<div class="container">
 
      <form class="form-signin" method="post" action="log_ax.php">
        <h2 class="form-signin-heading">Ingreso a mi blog</h2>
        <input type="text" name="email" class="input-block-level" placeholder="Correo electrónico">
        <input type="password" name="password" class="input-block-level" placeholder="Contraseña">
        <label class="checkbox">
          <input type="checkbox" value="remember-me"> Recuerdame
        </label>
<input type="hidden" value="login" name="ax">
 <button class="btn btn-large btn-primary" type="submit">Ingresar</button> </form> </div> <!-- /container --> </body> </html>

 

ya que tenemos esto armado, vamos a insertar en nuestra base de datos un usuario para iniciar:

INSERT INTO `curso_php`.`usuarios` (`id`, `nombre`, `apellido`, `email`, `password`, `tipo`, `estatus`, `fecha_alta`) VALUES (NULL, 'TUNOMBRE', 'TUAPELIDO', 'TUEMAIL', 'TUPASSWORD', 'administrador', 'A', '2013-10-25 00:00:00');

luego de esto vamos a modificar log_ax.php y vamos a modificar los if para que sean login y logout. Dentro de Login vamos a crear la busqueda de nuestro usuario y a crear la sesión si el usuario existe y el password es correcto.

<?php
include_once('../includes/constantes.php');
session_start();
if(isset($_REQUEST['ax']) && $_REQUEST['ax'] != '')
{
 
	if($_POST['ax'] == 'login'){
 
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$email = $_POST['email'];
		$password = $_POST['password'];
 
		//INSERTAR POST
		$query = "SELECT * FROM usuarios WHERE email = '$email' AND password = '$password'";
		$res = mysql_query($query);
		$existe = mysql_affected_rows();
 
		if($existe != 0){
			while($r = mysql_fetch_assoc($res))
			{
				$_SESSION['id'] = $r['id'];
				$_SESSION['nombre'] = $r['nombre'];
				$_SESSION['apellido'] = $r['apellido'];
				$_SESSION['email'] = $r['email'];
				$_SESSION['tipo'] = $r['tipo'];	
			}
 
		}
 
		header('location: post_admin.php');
 
	}
 
	if($_GET['ax'] == 'logout'){
 
		session_destroy();
		header('location: index.php');
	}
 
}else{
	header('location: index.php?m=error');
}
 
?>

Modificaremos nuestro menu quitandolo de las paginas y poniendo un include al nuevo archivo que llamaremos admin_header.php

<!-- Static navbar -->
    <div class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="index.php">Administracion</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="../index.php">Ir al blog</a></li>
            <li><a href="post_admin.php">Posts</a></li>
            <li><a href="post_crear.php">Crear post</a></li>
            <li><a href="usuarios_admin.php">Usuarios</a></li>
          </ul>
 
          <ul class="nav navbar-nav navbar-right">
          	<?php if(isset($_SESSION['id']) && $_SESSION['id'] != ''){ ?>
            <li><a href="log_ax.php?ax=logout">Cerrar Sesion</a></li>
            <?php }else{ ?>
            <?php } ?>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>

quitamos en todos los demás archivos ( post_admin.php, post_crear.php, post_editar.php, usuarios_admin.php, usuarios_crear.php, usuarios_editar.php ) el toolbar y lo cambiamos con este código:

<?php include('admin_header.php');?>

Al finalizar el cambio en los archivos empezamos la edición en usuarios_admin.php  cambiamos la tabla de posts a usuarios, cambiamos los campos buscados por y luego quitamos el WHERE para que muestre todos y colocamos un ORDER BY nombre para que los ordene alfabeticamente.

Entre los otros cambios son el cambio del nombre de Administrar posts a Administrar usuarios, cambios en los campos que solicitamos en el loop para que quede asi:

<?php
//Este archivo contendrá todo lo relacionado a la conexion de la base de datos;
//include_once('../includes/constantes.php');
 
$mysql_host = '127.0.0.1';
$mysql_user = 'root';
$mysql_password = '';
$mysql_base = 'curso_php';
 
$con = mysql_connect($mysql_host,$mysql_user,$mysql_password);
mysql_select_db($mysql_base);
 
$query = "SELECT * FROM usuarios ORDER BY nombre ";
 
$res = mysql_query($query);
?>
<html>
	<head>
		<title>El blog de Frisley</title>
		<link rel="stylesheet" href="../css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="default.css">
 
		<script src="../js/jquery-2.0.3.min.js"></script>
		<script src="../js/jquery-migrate-1.2.1.min.js"></script>
		<script src="../js/bootstrap.min.js"></script>
 
		<script>
			function createPost(){
			}
 
			function editPost(id){
 
				window.location = 'http://127.0.0.1/blog/admin/usuarios_editar.php?id='+id;
 
			}
			function deletePost(id){
				var conf = confirm('Estas seguro de querer eliminar este post?');
 
				if(conf)
				{
					$("#eliminarForm_"+id).submit();
				}
			}
		</script>
 
	</head>
	<body>
	<?php include('admin_header.php');?>
 
		<div class="container">
			<div class="panel panel-default">
		  		<div class="panel-heading">Administrar usuarios</div>
		  		<div style="float: right; margin-top:-30px; margin-right: 10px;">
		  			<button type="button" onclick="createPost()" class="btn btn-xs btn-success">Crear nuevo</button>
		  		</div>
		  		<div class="panel-body">
		  		<table width="100%" border="0" cellpadding="0" cellspacing="0">
		  			<thead>
						<tr>
							<th>Nombre</th>
							<th>Email</th>
							<th>Estatus</th>
							<th>Tipo</th>
							<th></th>
						</tr>
					</thead>
		  		<?php 
				while($row = mysql_fetch_assoc($res)){ 
				?>
					<tr>
						<td><?php echo $row['nombre'].' '.$row['apellido'];?></td>
						<td><?php echo $row['email'];?></td>
						<td><?php if($row['estatus'] == 'A'){ echo 'Alta';}else{ echo 'Baja'; }?></td>
						<td><?php echo $row['tipo'];?></td>
						<td>
							<button style="float: left; margin-right: 10px;" type="button" onclick="editPost('<?php echo $row['id'];?>')" class="btn btn-xs btn-primary">Editar</button>
							<form style="float: left" name="eliminarForm_<?php echo $row['id']; ?>" id="eliminarForm_<?php echo $row['id']; ?>" method="post" action="usuarios_ax.php">
								<input type="hidden" name="ax" value="eliminar" />
								<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
								<button type="button" onclick="deletePost('<?php echo $row['id'];?>')" class="btn btn-xs btn-danger">Eliminar</button>
							</form>
						</td>
					</tr>
				<?php 
				} ?>
				</table>
		  		</div>
		  	</div>
		</div>
	</body>
</html>
<?php
 
mysql_close($con);
 
?>

Luego modificaremos usuarios_crea.php para tener los campos que necesitamos y usaremos los que serán: Nombre, Apellido, Email, Password, Tipo

<html>
	<head>
		<title>El blog de Frisley</title>
		<link rel="stylesheet" href="../css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="../css/jHtmlArea.css">
 
		<link rel="stylesheet" href="default.css">
 
		<script src="../js/jquery-2.0.3.min.js"></script>
		<script src="../js/jquery-migrate-1.2.1.min.js"></script>
		<script src="../js/bootstrap.min.js"></script>
		<script src="../js/jHtmlArea-0.7.5.js"></script>
		<script>
			$(function() {
			    $("textarea").htmlarea();
			});
		</script>
	</head>
	<body>
		<?php include('admin_header.php');?>
 
		<div class="container theme-showcase">
 
			<div class="panel panel-default">
  				<div class="panel-heading">
  					<h3 class="panel-title">Crear nuevo usuario</h3>
  				</div>
				<div class="panel-body">
				<div id="formularios">
 
					<form action="usuarios_ax.php" method="post" role="form" class="form-horizontal" >
						<div class="form-group">
							<label for="nombre" class="col-lg-2 control-label">Nombre:</label>
							<div class="col-lg-10">
								<input type="text" name="nombre" id="nombre" class="form-control" placeholder="Nombre" />
							</div>
						</div>
						<div class="form-group">
							<label for="apellido" class="col-lg-2 control-label">Apellido:</label>
							<div class="col-lg-10">
								<input type="text" name="apellido" id="apellido" class="form-control" placeholder="Apellido" />
							</div>
						</div>
						<div class="form-group">
							<label for="email" class="col-lg-2 control-label">Email:</label>
							<div class="col-lg-10">
								<input type="email" name="email" id="email" class="form-control" placeholder="Email" />
							</div>
						</div>
						<div class="form-group">
							<label for="password" class="col-lg-2 control-label">Password:</label>
							<div class="col-lg-10">
								<input type="password" name="password" id="password" class="form-control" placeholder="Password" />
							</div>
						</div>
 
						<div class="form-group">
							<label for="tipo" class="col-lg-2 control-label">Tipo:</label>
							<div class="col-lg-10">
								<select name="tipo" id="tipo" class="form-control" >
									<option value="administrador" selected="selected">Administrador</option>
									<option value="editor">Editor</option>
									<option value="suscriptor">Suscriptor</option>
								</select>
							</div>
						</div>
 
						<div class="form-group">
							<label for="guardar" class="col-lg-2 control-label"></label>
							<div class="col-lg-10">
								<input type="hidden" name="ax" value="crear" />
								<button type="submit" class="btn btn-success">Guardar</button>
							</div>
						</div>
 
					</form>
				</div>
			</div>
			</div>
		</div>
	</body>
</html>

Al ya tener este archivo modificado cambiaremos el de usuarios_editar.php para que también concuerde con los campos que pusimos anteriormente en crear y agregaremos el campo de estatus para poder darlo de alta o de baja. El password no lo llenaremos con la información de la base de datos por motivos de seguridad, por lo que el campo de password quedará en blanco y solo si la persona desea cambiar el password del usuario deberá ingresarlo.

<?php
//Este archivo contendrá todo lo relacionado a la conexion de la base de datos;
//include_once('../includes/constantes.php');
$mysql_host = '127.0.0.1';
$mysql_user = 'root';
$mysql_password = '';
$mysql_base = 'curso_php';
 
$usuario_id = $_GET['id'];
 
$con = mysql_connect($mysql_host,$mysql_user,$mysql_password);
mysql_select_db($mysql_base);
 
$query = "SELECT * FROM usuarios WHERE id = $usuario_id";
$res = mysql_query($query);
 
while($r = mysql_fetch_assoc($res)){
 
?>
<html>
	<head>
		<title>El blog de Frisley</title>
		<link rel="stylesheet" href="../css/bootstrap-theme.min.css" type="text/css" media="all" />
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" media="all" />
		<link rel="stylesheet" type="text/css" href="../css/jHtmlArea.css">
 
		<link rel="stylesheet" href="default.css">
 
		<script src="../js/jquery-2.0.3.min.js"></script>
		<script src="../js/jquery-migrate-1.2.1.min.js"></script>
		<script src="../js/bootstrap.min.js"></script>
		<script type="text/javascript" src="../js/jHtmlArea-0.7.5.js"></script>
		<script>
			$(function() {
			    $("textarea").htmlarea();
			});
		</script>
	</head>
	<body>
		<?php include('admin_header.php');?>
 
		<div class="container theme-showcase">
 
			<div class="panel panel-default">
  				<div class="panel-heading">
  					<h3 class="panel-title">Editar usuario</h3>
  				</div>
				<div class="panel-body">
				<div id="formularios">
					<form action="usuarios_ax.php" method="post" role="form" class="form-horizontal" >
						<div class="form-group">
							<label for="nombre" class="col-lg-2 control-label">Nombre:</label>
							<div class="col-lg-10">
								<input type="text" name="nombre" id="nombre" class="form-control" placeholder="Nombre"  value="<?php echo $r['nombre']; ?>"/>
							</div>
						</div>
						<div class="form-group">
							<label for="apellido" class="col-lg-2 control-label">Apellido:</label>
							<div class="col-lg-10">
								<input type="text" name="apellido" id="apellido" class="form-control" placeholder="Apellido"  value="<?php echo $r['apellido']; ?>" />
							</div>
						</div>
						<div class="form-group">
							<label for="email" class="col-lg-2 control-label">Email:</label>
							<div class="col-lg-10">
								<input type="email" name="email" id="email" class="form-control" placeholder="Email"  value="<?php echo $r['email']; ?>"/>
							</div>
						</div>
						<div class="form-group">
							<label for="password" class="col-lg-2 control-label">Password:</label>
							<div class="col-lg-10">
								<input type="password" name="password" id="password" class="form-control" placeholder="Password" />
								<p class="help-block">Solo ingresar el password si se desea cambiar.</p>
							</div>
						</div>
 
						<div class="form-group">
							<label for="tipo" class="col-lg-2 control-label">Tipo:</label>
							<div class="col-lg-10">
								<select name="tipo" id="tipo" class="form-control" >
									<option value="administrador" <?php if($r['tipo'] == 'administrador'){ echo 'selected="selected"'; } ?>>Administrador</option>
									<option value="editor" <?php if($r['tipo'] == 'editor'){ echo 'selected="selected"'; } ?>>Editor</option>
									<option value="suscriptor" <?php if($r['tipo'] == 'suscriptor'){ echo 'selected="selected"'; } ?>>Suscriptor</option>
								</select>
							</div>
						</div>
 
						<div class="form-group">
							<label for="estatus" class="col-lg-2 control-label">Estatus:</label>
							<div class="col-lg-10">
								<select name="estatus" id="estatus" class="form-control" >
									<option value="A" <?php if($r['estatus'] == 'A'){ echo 'selected="selected"'; } ?>>Alta</option>
									<option value="B" <?php if($r['estatus'] == 'B'){ echo 'selected="selected"'; } ?>>Baja</option>
								</select>
							</div>
						</div>
 
						<div class="form-group">
							<label for="estatus" class="col-lg-2 control-label"></label>
							<div class="col-lg-10">
								<input type="hidden" name="ax" value="editar" />
								<input type="hidden" name="id" value="<?php echo $usuario_id; ?>" />
								<button type="submit" class="btn btn-success">Guardar Cambios</button>
							</div>
						</div>
 
					</form>
				</div>
			</div>
			</div>
		</div>
	</body>
</html>
<?php } ?>

Ahora lo interesante, modificaremos usuarios_ax.php que es el que realizará los cambios e inserciones en la tabla de usuarios en nuestra base de datos.

Primero la rutina de crear usuarios la modificaremos cambiando la tabla de posts a usuarios, cambiamos los campos que recibimos del metodo POST y los nombres de las variables a los que corresponden, luego modificamos el insert cambiando los campos a los que tiene nuestra tabla de usuarios y eliminamos toda la parte del upload de imágenes.

if($_POST['ax'] == 'crear'){
 
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$nombre 	= $_POST['nombre'];
		$apellido 	= $_POST['apellido'];
		$email 		= $_POST['email'];
		$password 	= $_POST['password'];
		$tipo 		= $_POST['tipo'];
		$estatus 	= 'A';
		$fecha_alta = date('Y-m-d H:i:s');
 
		//INSERTAR POST
		$query = "INSERT INTO usuarios 
			(nombre,apellido,email,password,tipo,estatus, fecha_alta) 
			VALUES ('$nombre','$apellido','$email','$password','$tipo','$estatus','$fecha_alta')";
 
		$res = mysql_query($query);
		mysql_close($con);
 
		header('location: usuarios_admin.php');
 
	}

Ahora la parte de editar, hacemos cambios similares al insert y modificamos el update para que sea en la tabla de usuarios, eliminamos la parte del upload de fotos y el único cambio que hay que ponerle atención es en el password, ya que no estamos requiriendo el password en nuestro formulario, puede venir vacío por lo que debemos validar que si viene vacío no lo actualice ya que si no lo hacemos el campo password quedaría vacío cada vez que actualizamos a algún usuario de nuestro blog.

if($_POST['ax'] == 'editar'){
 
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$nombre 	= $_POST['nombre'];
		$apellido 	= $_POST['apellido'];
		$email 		= $_POST['email'];
		$password 	= $_POST['password'];
		$tipo 		= $_POST['tipo'];
		$estatus 	= 'A';
		$id 		= $_POST['id'];
 
		$query = "UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido', email = '$email', estatus = '$estatus', tipo = '$tipo' ";
		if($password != ''){
			$query .= " password = '$password' ";
		}
		$query .= " WHERE id = $id ";
 
		$res = mysql_query($query);
		mysql_close($con);
 
		header('location: usuarios_admin.php');
	}

al final nuestro archivo de usuarios_ax.php debería quedar asi ya con todo incluido:

<?php
include_once('../includes/constantes.php');
 
if(isset($_POST['ax']) && $_POST['ax'] != '')
{
 
	if($_POST['ax'] == 'crear'){
 
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$nombre 	= $_POST['nombre'];
		$apellido 	= $_POST['apellido'];
		$email 		= $_POST['email'];
		$password 	= $_POST['password'];
		$tipo 		= $_POST['tipo'];
		$estatus 	= 'A';
		$fecha_alta = date('Y-m-d H:i:s');
 
		//INSERTAR POST
		$query = "INSERT INTO usuarios 
			(nombre,apellido,email,password,tipo,estatus, fecha_alta) 
			VALUES ('$nombre','$apellido','$email','$password','$tipo','$estatus','$fecha_alta')";
 
		$res = mysql_query($query);
		mysql_close($con);
 
		header('location: usuarios_admin.php');
 
	}
 
	if($_POST['ax'] == 'editar'){
 
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$nombre 	= $_POST['nombre'];
		$apellido 	= $_POST['apellido'];
		$email 		= $_POST['email'];
		$password 	= $_POST['password'];
		$tipo 		= $_POST['tipo'];
		$estatus 	= 'A';
		$id 		= $_POST['id'];
 
		$query = "UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido', email = '$email', estatus = '$estatus', tipo = '$tipo' ";
		if($password != ''){
			$query .= " password = '$password' ";
		}
		$query .= " WHERE id = $id ";
 
		$res = mysql_query($query);
		mysql_close($con);
 
		header('location: usuarios_admin.php');
	}
 
	if($_POST['ax'] == 'eliminar'){
		$con = mysql_connect(BD_SERVIDOR,BD_USUARIO,BD_PASSWORD);
		mysql_select_db(BD_BASE);
 
		$id = $_POST['id'];
 
		$query = "DELETE FROM usuarios WHERE id = $id";
 
		$res = mysql_query($query);
		mysql_close($con);
 
		header('location: usuarios_admin.php');
	}
 
}else{
	header('location: index.php');
}
 
?>

Con esto terminamos nuestro administrador de usuarios, colocamos seguridad en nuestro administrador y ya podemos insertar posts, solo nos queda agregar estas lineas de código en la parte superior de nuestras páginas post_crear.php, post_admin.php, post_ax.php, post_editar.php, usuarios_admin.php, usuarios_crear.php, usuarios_editar.php, usuarios_ax.php para poner una barrera de seguridad que en caso no este en sesión la persona que quiera ver nuestro administrador lo regrese al login.

<?php
session_start();
if(!isset($_SESSION['id']) || $_SESSION['id'] == ''){ header('location: index.php?m=Solo usuarios autorizados'); }
?>

Con esto completamos nuestro administrador de blog, usuarios y ya podemos estar seguros que si no es con un usuario registrado nadie puede entrar a nuestro blog.


Tags: , ,

Una respuesta para “PHP Básico - Clase 5”

  1. Bitacoras.com

    26. Oct, 2013

    Información Bitacoras.com

    Valora en Bitacoras.com: En la clase de hoy armaremos las secciones de Administración de usuarios, el login y el manejo básico de sesiones de usuarios para agregarle un nivel de seguridad básica que no teníamos en nuestra aplicación de blog. De…

Deja tu Comentario

Tutoriales en la web se reserva el derecho de moderación de los comentarios. Evita por favor utilizar palabras soeces, ataques directos e insultos, de lo contrario tu comentario será eliminado.

Hire PHP Developer India
Get Adobe Flash player