Sistema de usuarios Yii mysql

Bueno hoy explicare un pequeño sistema de usuarios desarrollado en Yii que no es con los estándares yii cruge esto es mas tradicionalista para los que nos gusta desarrollar nuestros propios módulos obvio en los estándares de Yii mvc. dejenme contarles les recomiendo un cafesin antes de empezar.

Bueno ante todo ya tenemos que estar familiarizados con el entorno de desarrollo de yii para entenderle bien bien a este sistemita que lo mas probable es que lo suba en un rato mas.  Bueno ya tenemos nuestro proyecto iniciado desde cero en la carpeta que hayamos escogido, lo primero que tenemos que hacer es nuestra tabla de usuarios. si ya hemos tenido un poco de experiencia en mysql este paso es trivial.

Fig 1.

CREATE TABLE `usuarios` (
`idusuario` INT(11) NOT NULL AUTO_INCREMENT,
`usuario` VARCHAR(20) NOT NULL,
`pass` VARCHAR(10) NOT NULL,
PRIMARY KEY  (`idusuario`)
);

bueno hasta aqui creo que todo va pintando de maravilla, ahora el segundo paso sera hacer que podamos tener conectividad en nuestro Yii para esto vamos a nuestra carpeta protecte/config encontraremos el archivo main.php lo aperturamos y agregamos o editamos lo siguiente.

Fig 2

‘db’=>array(
‘class’=>’CDbConnection’,
‘connectionString’=>’mysql:host=localhost;dbname=nombredeladb’,
‘username’=>’usuario’,
‘password’=>’passs’,
‘charset’ => ‘utf8’, //esto es el tipo de codificación importante para que no salgan caracteres malos
),

bueno hasta aqui todo bien ahora meteremos la parte medular que es el modelo ya saben donde va esto sino tienes que estudiar un poquito mas jejejej ahora al código.

Fig 3.

<?php

/*
aqui estamos creando nuestro modelo para el logeo de nuestros usuarios
primero definiremos las variables estilo publicas para usuarlas y poder acceder a ellas
en nuestra vista o en nuestro controller

*/
class PruebaForm extends CFormModel
{
public $usuario;
public $contrasena;
/*
aqui les dejo algo de utilidad para los que apenas inician en las consultas de mysql en Yii con una pequeña
descripcion para que no tengan poblemas cualquier duda no duden en preguntarme me encuentran aqui en
mi blog o en la pagina oficial de Yii como aaron meis sanchez

$rowCount=$command->execute(); // ejecuta una sentencia SQL sin resultados
$dataReader=$command->query(); // ejecuta una consulta SQL
$rows=$command->queryAll(); // consulta y devuelve todas las filas de resultado
$row=$command->queryRow(); // consulta y devuelve la primera fila de resultado
$column=$command->queryColumn(); // consulta y devuelve la primera columna de resultado
$value=$command->queryScalar(); // consulta y devuelve el primer campo en la primer fila

}*/

public function logino(){
$usuario = mysql_real_escape_string($_POST[‘PruebaForm’][‘usuario’]); /*esto namas es pa darle un poco de
seguridad */
$contrasena = mysql_real_escape_string($_POST[‘PruebaForm’][‘contrasena’]); //lo mismo aqui
$sql = “SELECT * FROM usuario WHERE login = ‘$usuario’ AND pass=’$contrasena'”; //el squl

$row= Yii::app()->db2->createCommand($sql)->queryRow(); //ejecutando el sql
if($row){ //comprobacion sencilla
Yii::app()->session[‘user’] = $row[‘login’]; //uuu las sessions mas facil que las tradicionales
Yii::app()->session[‘pass’] = $row[‘pass’]; //uuu las sessions mas facil que las tradicionales

//aclaro se puede mejorar la autenticacion si le pones md5 sh1 etc …
//este nadamas es para ejemplificar como manejar usuarios tradicionales
}//maneja tu informacion si no es correcto el login
else{
Yii::app()->session[‘error’] = ‘error’;

}
$datos = array(‘usuario’ =>$usuario ,
‘contrasena’=>$contrasena, ); //aqui creo un arreglo nadamas pa ejemplificar

}

public function cons(){ //esta funcion es para hacer una consulta e imprimir el usuario y el pass
$sql = “SELECT * FROM usuario”;
$row = Yii::app()->db2->createCommand($sql)->query();
while($resu=$row->read()) {
# code…
echo $resu[‘login’];
echo $resu[‘pass’];
}

}

}

bueno hasta aquí todo bien creo fiiuuu ! Xb

ahora solo nos restan dos cosas mas el controlador y la vista ya es menos vanos con el codigo del controlador siii agregamos el siguiente código.

Fig 4.

public function NombredeNuestraFuncion()
{
// aqui solo colocamos nuestro modelo y le mandamos la info jejeje
$model=new PruebaForm;
if(isset($_POST[‘PruebaForm’]))//comprobamos la info
{
$model->attributes=$_POST[‘PruebaForm’]; //la mandamos

//echo “<script>alert(‘” . $dato .”‘)</script>”; aqui nada no me peles esto
$datos = $model->logino(); //llamamos a la funcion anterior mente creada

}

$this->render(‘prueba’, array(‘model’ => $model)); //renderisamos ya con nuestros queridos resultados

}

y ahora solo nos resta la vista y para su suerte creo que ya terminare el post aun tengo cafee siii bueno dejemos esto a un lado y vamos al código.

Fig 5

<div class=”login”>
<div class=”form”>
<?php $form=$this->beginWidget(‘CActiveForm’); ?>
<div class=”row”>
<?php echo $form->labelEx($model,’usuario’); ?>
<?php echo $form->textField($model,’usuario’); ?>

</div>
<div class=”row”>
<?php echo $form->labelEx($model,’contrasena’); ?>
<?php echo $form->textField($model,’contrasena’,array(‘id’=>’password’)); ?>

</div>

<div class=”row buttons”>
<?php echo CHtml::submitButton(‘Login’, array(‘id’ => ‘boton’)); ?>
</div>

<?php $this->endWidget(); ?>
</div><!– form –>
</div><!–fin login –>

<?php
echo Yii::app()->session[‘user’];
echo Yii::app()->session[‘pass’];
echo Yii::app()->session[‘error’];
$row =$model->cons();

if(Yii::app()->session[‘user’] == ‘admin’){
echo “</br>Lugar test de que ya te logeaste</br>”;
unset(Yii::app()->session[‘error’]);//cerramos session

}
unset(Yii::app()->session[‘user’]); //cerramos session
unset(Yii::app()->session[‘pass’]);//cerramos session

?>

bueno hasta aqui yo creo que todo entendido si pasamos de php normalito al framework Yii creo que no tendremos problemas para entender como utilizar las sesiones de php en este caso con estándares de Yii para sesiones todo este codigo anterior nos ayudara a crear grandes sistemas hasta el punto que llegue nuestra imaginación o la imaginación de nuestro jefe en el trabajo suele pasar jejejej pero esto tiene un sin fin de aplicaciones recuerda que almenos una ves al dia escribe una linea de código y al final del mes tendrás una aplicación y al año un producto entregarle saludos y un buen día o noche

Post y codigo Por Aaron Meis Sanchez

Anuncios
Tagged with:
Publicado en yii
One comment on “Sistema de usuarios Yii mysql
  1. Rafael Rosales Sanchez dice:

    Muy bueno, te diré que siempre he utilizado el cruge y creo que este es muy interesante, solo necesito crear mi propia modelo y vista

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: