Bueno aca traigo como ejecutar un yii... primero tiene que bajar el framework... se encuenta en esta pagina
http://www.yiiframework.com/
En este caso todos lo estoy haciendo en un wampserver.... cuando bajen el archivo del enlace anterior... viene con este nombre...(yii-1.1.12.b600af.tar oh otro nombre)... Yo le cambie el nombre.. y lo deje asi dentro de la carpeta WAMP\WWW.. (yii)... tome en cuenta que tiene que que colocar el framework dentro de la carpeta www, si no esta vaina no va a funcionar!!!!!!!!!
voy a mostrar por ahora como ejecutarlo ya que ahora me encuentro estudiando esta vaina...
con un bloc de nota vamos a crear un archivo BAT.... En mi caso lo llame asi.. (Generador.bat)... el codigo es el siguiente... asi evito abrir tanta ventana DOS.
"C:\wamp\bin\php\php5.4.3\php.exe" "C:\wamp\www\yii\framework\yiic" webapp jrondonYII
pause
Donde jrondonYII es el nombre de la carpeta... donde vamos a bajar todos los archivo del FRAMEWORK...
Continuara...............
martes, 16 de octubre de 2012
miércoles, 26 de septiembre de 2012
Cambiar el nombre de una imagen antes de guardarla en la base de datos y comprobar que es imagen en ASPX.NET
Bueno esto no lo veo por ningun lado si lo ven me avisan... y como vez me gusta compartir los códigos... en este caso, esto codigo están en aspx.net C#, dejemos de chachara... vamos al grano valor...
En este caso voy a validar la cédula uruguaya y la foto ante de subirla al servidor nuestro.. (Yo siempre valido todos ah codigo, y despues uso ajax, oh jquery.)
protected void btningresar_Click(object sender, EventArgs e)
{
int ocedula = 0;
string oFotos = "";
string sExt = "";
registros pRegis = null;
string oError = "";
try
{
if (int.Parse(txtcedula.Text) < 1000000 || int.Parse(txtcedula.Text) > 9999999)
{
oError += "<li>El número de cédula debe contener 7 dígitos sin puntos ni guión<br/></li>";
txtcedula.Focus();
txtcedula.Text = "";
}
else
{
ocedula = Convert.ToInt32(txtcedula.Text);
}
}
catch
{
oError += "<li>Ingrese un número de cédula de 7 dígitos sin puntos ni guión<br/></li>";
txtcedula.Focus();
txtcedula.Text = "";
}
try
{
Random r = new Random();
int numeros = r.Next(10000000, 99999999);
oFotos = Path.GetFileName(imgSubida.PostedFile.FileName);
sExt = Path.GetExtension(oFotos);
oFotos = oFotos.Substring(oFotos.LastIndexOf(".") + 1).ToLower();
oFotos = DateTime.Now.ToString("yyyyMMdd_hhmmss") + "_" + numeros + sExt;
if (imgSubida.HasFile)
{
if (!ValidaExtension(sExt))
{
oError += "<li>El archivo no es de tipo imagen: .jpg,.png. <br/></li>";
}
else if (imgSubida.FileBytes.Length > 100000)
{
oError += "<li>El limite de imagen tiene que tener un tamaño de 100kb <br/></li>";
}
else if (oError != "")
{
oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
}
else
{
imgSubida.PostedFile.SaveAs(Server.MapPath("~/imagenes") + "\\" + oFotos);
//imgFotoChica.ImageUrl = "~/imagenes/" + ofoto;// para mostrar la foto abajo
oFotos = "~/imagenes/" + oFotos;
}
}
else
{
oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
}
}
catch
{
oError += "<li>Selecciones una imagenes con las extensiones jpg, png<br/></li>";
}
if (oError != "")
{
lblError.Text = oError;
}
// termino del tray catch y el string de error
else
{
try
{
pRegis = new registros(ocedula, oNombre, oFotos);
if (LogicaRegistros.Agregar(pRegis))
{
lblError.Text = "<li>Se ingreso correctamente, nuevo funcionario administrativo: <b> <font color='red'> " + pRegis.Nombre + " " + pRegis.Apellido + "</br></font></li>";
Limpiar();
}
else
{
lblError.Text = "<li>No se puede agregar el funcionario administrativo porque su CI ya existe</li>";
txtcedula.Focus();
txtcedula.Text = "";
}
}
catch (ApplicationException oAux)
{
lblError.Text = oAux.Message;
}
catch
{
lblError.Text = "<li>problema en la base de dato al agregar funcionario administrativo</li>";
Limpiar();
}
}
}
private bool ValidaExtension(string sExt)
{
Boolean rel = false;
switch (sExt)
{
case ".jpg":
case ".jpeg":
case ".png":
rel = true;
break;
default:
rel = false;
break;
}
return rel;
}
En este caso voy a validar la cédula uruguaya y la foto ante de subirla al servidor nuestro.. (Yo siempre valido todos ah codigo, y despues uso ajax, oh jquery.)
protected void btningresar_Click(object sender, EventArgs e)
{
int ocedula = 0;
string oFotos = "";
string sExt = "";
registros pRegis = null;
string oError = "";
try
{
if (int.Parse(txtcedula.Text) < 1000000 || int.Parse(txtcedula.Text) > 9999999)
{
oError += "<li>El número de cédula debe contener 7 dígitos sin puntos ni guión<br/></li>";
txtcedula.Focus();
txtcedula.Text = "";
}
else
{
ocedula = Convert.ToInt32(txtcedula.Text);
}
}
catch
{
oError += "<li>Ingrese un número de cédula de 7 dígitos sin puntos ni guión<br/></li>";
txtcedula.Focus();
txtcedula.Text = "";
}
try
{
Random r = new Random();
int numeros = r.Next(10000000, 99999999);
oFotos = Path.GetFileName(imgSubida.PostedFile.FileName);
sExt = Path.GetExtension(oFotos);
oFotos = oFotos.Substring(oFotos.LastIndexOf(".") + 1).ToLower();
oFotos = DateTime.Now.ToString("yyyyMMdd_hhmmss") + "_" + numeros + sExt;
if (imgSubida.HasFile)
{
if (!ValidaExtension(sExt))
{
oError += "<li>El archivo no es de tipo imagen: .jpg,.png. <br/></li>";
}
else if (imgSubida.FileBytes.Length > 100000)
{
oError += "<li>El limite de imagen tiene que tener un tamaño de 100kb <br/></li>";
}
else if (oError != "")
{
oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
}
else
{
imgSubida.PostedFile.SaveAs(Server.MapPath("~/imagenes") + "\\" + oFotos);
//imgFotoChica.ImageUrl = "~/imagenes/" + ofoto;// para mostrar la foto abajo
oFotos = "~/imagenes/" + oFotos;
}
}
else
{
oError += "<li>Selecciones una imagen con extensiones: .jpg,.png, Tamaño máximo permitido 100kb <br/></li>";
}
}
catch
{
oError += "<li>Selecciones una imagenes con las extensiones jpg, png<br/></li>";
}
if (oError != "")
{
lblError.Text = oError;
}
// termino del tray catch y el string de error
else
{
try
{
pRegis = new registros(ocedula, oNombre, oFotos);
if (LogicaRegistros.Agregar(pRegis))
{
lblError.Text = "<li>Se ingreso correctamente, nuevo funcionario administrativo: <b> <font color='red'> " + pRegis.Nombre + " " + pRegis.Apellido + "</br></font></li>";
Limpiar();
}
else
{
lblError.Text = "<li>No se puede agregar el funcionario administrativo porque su CI ya existe</li>";
txtcedula.Focus();
txtcedula.Text = "";
}
}
catch (ApplicationException oAux)
{
lblError.Text = oAux.Message;
}
catch
{
lblError.Text = "<li>problema en la base de dato al agregar funcionario administrativo</li>";
Limpiar();
}
}
}
private bool ValidaExtension(string sExt)
{
Boolean rel = false;
switch (sExt)
{
case ".jpg":
case ".jpeg":
case ".png":
rel = true;
break;
default:
rel = false;
break;
}
return rel;
}
Ubicación:
Montevideo, Uruguay
martes, 18 de septiembre de 2012
¿cambiar nombre de una imagen al subirla via php?
Bueno acá traigo un trozo de código como subir una imagen vía mysql, siempre no encontramos que queremos borrar el nombre de la foto cuando la guardamos en nuestra base de datos.. Y siempre no deja en nombre por defecto.. pero en este caso solo no interesar son la extension..(ejemplo: 20120918133841_9e8c969ffc0abf.jpg) Yo acostumbro siempre pasar la fecha, la hora, los minutos y segundo cuando subo una foto.. Bueno vamos de dejarlo de chachara vamos al grano..
copiar y pegar y despues probar
1-)Clase index...
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario foto</title>
</head>
<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" enctype="multipart/form-data" id="frm_registros">
<div id="respond">
<h1>Regístrate Es gratis (y lo seguirá siendo). </h1>
<div>
<label class="campo">Selecciones un imagen:</label>
<input type="file" name="imagen" />
<!--<input name="action" type="hidden" value="upload" />-->
</div>
<div>
<input name="btnenviar" type="submit" id="btnenviar" value="Registrarse" />
</div>
<br/>
<?php
include("includes/registro_in_usuarios.php");
if ($error) {
echo '<ul>';
foreach ($error as $alerta) {
echo "<li class='avertencia'>$alerta</li>\n";
}
echo '</ul>'; }
?>
</div>
</form>
</body>
</html>
2-)script de la base de datos tbusuarios
3-)Clase registro_in_usuarios.php...(va ubicada en la carpeta includes)
<?php
session_start();
date_default_timezone_set('America/Montevideo');
$error = array();
if(array_key_exists('btnenviar', $_POST)){
//obtenemos los datos del archivo y imagen
$nameimagen= $_FILES['imagen']['name'];
$imagen = (explode(".",$nameimagen));
$extimagen= pathinfo($nameimagen);
$ext= array("","png","jpg");
$prefijo = substr(md5(uniqid(rand())),0,10).".".(isset($imagen[1])?$imagen[1]:'');
$fecha = date("Ymd_His",time());
//guardando imagen jpg y png
if(!is_uploaded_file($_FILES['imagen']['tmp_name'])){//guardando imagen jpg y png $error['$nameimagen']="Selecciones una imagen con extensiones: .jpg,.png, máximo permitido 100kb"; } else if(!(array_search($extimagen['extension'],$ext))){ $error['$extimagen']= "Solo es permitido imagenes con las extensiones jpg, png"; }else if($_FILES["imagen"]['size'] > 100000){ $error['imagen']= "El limite de imagen tiene que tener un tamaño de 100kb"; }else if (!$error) { // guardamos la imagen el la carpeta imagen $urlimagen= "imagenes/".$fecha."_".$prefijo; copy($_FILES['imagen']['tmp_name'],$urlimagen); }
if(!$error)
{
try
{
$insertar= "INSERT INTO tbusuarios (imagen) VALUES ('$urlimagen'')";
$resul = mysql_query($insertar,$conexion);
header("location:index.php");
mysqli_close($conexion);
//var_dump($_POST);
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar " .$ex->getMessage();
}
}
}
$_POST= array();
?>
copiar y pegar y despues probar
1-)Clase index...
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario foto</title>
</head>
<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" enctype="multipart/form-data" id="frm_registros">
<div id="respond">
<h1>Regístrate Es gratis (y lo seguirá siendo). </h1>
<div>
<label class="campo">Selecciones un imagen:</label>
<input type="file" name="imagen" />
<!--<input name="action" type="hidden" value="upload" />-->
</div>
<div>
<input name="btnenviar" type="submit" id="btnenviar" value="Registrarse" />
</div>
<br/>
<?php
include("includes/registro_in_usuarios.php");
if ($error) {
echo '<ul>';
foreach ($error as $alerta) {
echo "<li class='avertencia'>$alerta</li>\n";
}
echo '</ul>'; }
?>
</div>
</form>
</body>
</html>
2-)script de la base de datos tbusuarios
3-)Clase registro_in_usuarios.php...(va ubicada en la carpeta includes)
<?php
session_start();
date_default_timezone_set('America/Montevideo');
$error = array();
if(array_key_exists('btnenviar', $_POST)){
//obtenemos los datos del archivo y imagen
$nameimagen= $_FILES['imagen']['name'];
$imagen = (explode(".",$nameimagen));
$extimagen= pathinfo($nameimagen);
$ext= array("","png","jpg");
$prefijo = substr(md5(uniqid(rand())),0,10).".".(isset($imagen[1])?$imagen[1]:'');
$fecha = date("Ymd_His",time());
//guardando imagen jpg y png
if(!is_uploaded_file($_FILES['imagen']['tmp_name'])){//guardando imagen jpg y png $error['$nameimagen']="Selecciones una imagen con extensiones: .jpg,.png, máximo permitido 100kb"; } else if(!(array_search($extimagen['extension'],$ext))){ $error['$extimagen']= "Solo es permitido imagenes con las extensiones jpg, png"; }else if($_FILES["imagen"]['size'] > 100000){ $error['imagen']= "El limite de imagen tiene que tener un tamaño de 100kb"; }else if (!$error) { // guardamos la imagen el la carpeta imagen $urlimagen= "imagenes/".$fecha."_".$prefijo; copy($_FILES['imagen']['tmp_name'],$urlimagen); }
if(!$error)
{
try
{
$insertar= "INSERT INTO tbusuarios (imagen) VALUES ('$urlimagen'')";
$resul = mysql_query($insertar,$conexion);
header("location:index.php");
mysqli_close($conexion);
//var_dump($_POST);
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar " .$ex->getMessage();
}
}
}
$_POST= array();
?>
martes, 14 de agosto de 2012
carga fecha en los lista/Menu en forma automatica
Acá un código que se usa mucho, para carga los LISTA/MENÚ EN PHP, y den la fecha forma automática, y así seleccionar por defecto en php
<div >
<label class="campo">Fecha de nacimiento</label>
<!--seleccionar los dias del mes-->
<select name="drpdias" id="drpdias" >
<option selected="selected" value=""> Dias:</option>
<?php
for ($i=1; $i<=31; $i++) {
if ($i == date('j'))
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
<!--seleccionar el mes-->
<select name=" drpmes " id="drpmes">
<option selected="selected" value="">Mes:</option>
<?php
for ($i=1; $i<=12; $i++) {
if ($i == date('m'))
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
<!--seleccionar el ano de nacimiento-->
<select name="drpanos" id="drpanos">
<option selected="selected" value="">Años:</option>
<?php
$ano = date ('Y');
//$ano = $ano - 18; aca es para reste meno 18 años.
for ($a = $ano; $a >= ($ano - 100); $a--)
{
if ($a == date('Y'))
echo '<option value="'.$a.'" selected>'.$a.'</option>';
else
echo '<option value="'.$a.'">'.$a.'</option>';
} ?>
</select>
</div >
Un trozo de la hoja de estilo...
.label {
color: #1D2A5B;
text-align: right;
}
div label.campo {
width: auto;
margin: .4em 0;
display: block;
font-size: 13px;
}
select {
font-size: 14px;
padding: 6px;
border-radius: 4px;
border: 1px solid #CED5D7;
}
<div >
<label class="campo">Fecha de nacimiento</label>
<!--seleccionar los dias del mes-->
<select name="drpdias" id="drpdias" >
<option selected="selected" value=""> Dias:</option>
<?php
for ($i=1; $i<=31; $i++) {
if ($i == date('j'))
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
<!--seleccionar el mes-->
<select name=" drpmes " id="drpmes">
<option selected="selected" value="">Mes:</option>
<?php
for ($i=1; $i<=12; $i++) {
if ($i == date('m'))
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
<!--seleccionar el ano de nacimiento-->
<select name="drpanos" id="drpanos">
<option selected="selected" value="">Años:</option>
<?php
$ano = date ('Y');
//$ano = $ano - 18; aca es para reste meno 18 años.
for ($a = $ano; $a >= ($ano - 100); $a--)
{
if ($a == date('Y'))
echo '<option value="'.$a.'" selected>'.$a.'</option>';
else
echo '<option value="'.$a.'">'.$a.'</option>';
} ?>
</select>
</div >
Un trozo de la hoja de estilo...
.label {
color: #1D2A5B;
text-align: right;
}
div label.campo {
width: auto;
margin: .4em 0;
display: block;
font-size: 13px;
}
select {
font-size: 14px;
padding: 6px;
border-radius: 4px;
border: 1px solid #CED5D7;
}
validando cedula, y fecha de nacimiento.
Acá traigo un nuevo código, la idea de este formulario es validar la cédula de 7 digito, y la fecha de nacimiento que sea mayor de18 años, la fecha van hacer cargada desde un (lista/Menú con php)
1-) Así esta formado el WAMPSERVER
2-) Código del formularios, Los jquery que tienen que bajar son esto dos (jquery.validate.js, jquery.min.js) van en la carpeta js... (-mas abajo pongo el script como validar el formulario con jquery)..
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario Registro</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery.registrodrp.js"> </script>
</head>
<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" id="frm_registros">
<div id="respond">
<h1>Regístrate Es gratis (y lo seguirá siendo). </h1>
<div>
<label class="campo">Cedula</label>
<input name="txtcedula" type="text" autofocus class="inputtext" id="txtcedula"
value="<?php if(isset($_POST['txtcedula'])){echo htmlentities($_POST['txtcedula']);} ?>" maxlength="7" />
</div>
<div>
<label class="campo">Nombre</label>
<input name="txtnombre" type="text" class="inputtext" value="<?php if(isset($_POST['txtnombre'])){echo htmlentities($_POST['txtnombre']);} ?>" size="35">
</div>
<div>
<label class="campo">Apellidos</label>
<input name="txtapellido" type="text" class="inputtext" id="txtapellido" value="<?php if(isset($_POST['txtapellido'])){echo htmlentities($_POST['txtapellido']);} ?>" size="35" />
</div>
<div >
<label class="campo">Sexo</label>
<select name="drpsexo">
<option selected="selected" value=""> Selecciona el sexo:</option>
<option value="Mujer">Mujer</option>
<option value="Hombre">Hombre</option>
</select>
</div>
<div >
<label class="campo">Fecha de nacimiento</label>
<!--seleccionar los dias del mes-->
<select name="drpdias" id="drpdias" >
<option selected="selected" value=""> Dias:</option>
<?php
for($d = 1; $d <= 31; $d++)
{
print("<option value=$d>$d</option>");}?>
</select>
<!--seleccionar el mes-->
<select name="drpmes" id="drpmes">
<option selected="selected" value="">Mes:</option>
<option value="1">Enero</option>
<option value="2">Febrero</option>
<option value="3">Marzo</option>
<option value="4">Abril</option>
<option value="5">Mayo</option>
<option value="6">Junio</option>
<option value="7">Julio</option>
<option value="8">Agosto</option>
<option value="9">Septiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
</select>
<!--seleccionar el ano de nacimiento-->
<select name="drpanos" id="drpanos">
<option selected="selected" value="">Años:</option>
<?php
$ano = date ('Y');
//$ano=$ano-18;
for ($a = $ano; $a >= ($ano - 100); $a--)
{
print("<option value=$a>$a</option>");} ?>
</select>
</div>
<div>
<input name="btnenviar" type="submit" id="btnenviar" value="Registrarse" />
</div>
<br/>
<?php
include("includes/registro_in_listamenu.php");
if ($error) {
echo '<ul>';
foreach ($error as $alerta) {
echo "<li class='avertencia'>$alerta</li>\n";
}
echo '</ul>'; }
?>
</div>
</form>
</body>
</html>
3-) Clase que va en la carpeta includes se llama (registro_in_listamenu.php)
<?php
session_start();
include("oConexion.php");
$conexion = conectar();
$error = array();
if(array_key_exists('btnenviar', $_POST)){
$cedula = 0;
$nombre = "";
$apellido = "";
$sexo= "";
//validando los combox yla fecha de ingreso a la base de datos
date_default_timezone_set('America/Montevideo');
$hora = date("H:i:s",time());
$dia = $_POST['drpdias'];
$mes = $_POST['drpmes'];
$ano = $_POST['drpanos'];
$fecha = $ano."-".$mes."-".$dia." ".$hora;
$remote_addr = $_SERVER['REMOTE_ADDR'];
try
{
$cedula = trim($_POST['txtcedula']);
if($cedula == "")
{
$error['txtcedula']= "Ingrese un número de cédula de 7 dígitos sin puntos ni guión.";
}else if ($_POST['txtcedula']){ //comprobar si existe el numero de cedula registrado
$query = mysql_query("SELECT cedula FROM tbusuarios WHERE cedula ='".$cedula."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['cedula'] == $cedula) {
$error['txtcedula'] = "Ya existe ese número de cédula seleccionado.";
}else if($cedula != is_numeric($_POST['txtcedula']))
{
$error['txtcedula']= "Ingrese un número de cédula de 7 dígitos sin puntos ni guión.";
}else if((int)($_POST['txtcedula']) < 1000000 || (int)($_POST['txtcedula'])> 9999999)
{
$error['txtcedula']= "El número de cédula debe contener 7 dígitos sin puntos ni guión";
}else {
$cedula= (int)($_POST['txtcedula']);
}
}//fin de comprabar el usuarios
}catch(Exception $ex)
{
$error = die($ex->getMessage());
//echo $error;
}
$nombre= trim($_POST['txtnombre']);
if($nombre == "")
{
$error['txtnombre']= "Ingrese un nombre";
}
$apellido= trim($_POST['txtapellido']);
if($apellido == "")
{
$error['txtapellido']= "Ingrese un apellido";
}
$sexo= $_POST['drpsexo'];
if($sexo == "")
{
$error['drpsexo']= "Selecciona el sexo.";
}
//validar que los combox sean valor numerico
$dia = is_numeric($_POST['drpdias']);
if($dia == "")
{
$error['drpdias']= "Selecciona tu dia de nacimiento.";
}
$mes = is_numeric($_POST['drpmes']);
if($mes == "")
{
$error['drpmes']= "Selecciona el mes de naciemiento.";
}
$fecha_actual = date('Y');
$digitos = $fecha_actual - $ano; //con esto te da el numero de digitos
$ano = is_numeric($_POST['drpanos']);
if($ano == "")
{
$error['drpanos']= "Selecciones el año que nacistes.";
}else if($digitos < 18 )
{
$error['drpanos']= "Debes reunir ciertos requisitos de edad, ser mayor de 18 años.";
}
if(!$error)
{
try
{
$insertar= "INSERT INTO tbusuarios (cedula, nombre, apellido, sexo, fech_nac,remote_addr)
VALUES ('$cedula', '$nombre', '$apellido', '$sexo', '$fecha','$remote_addr')";
//esto es para insertar elementos en la base ya hecha
$resul = mysql_query($insertar,$conexion);
header("location:listaMenuDRP.php");
mysqli_close($conexion);
//var_dump($_POST);
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar " .$ex->getMessage();
}
}
}
$_POST= array();
?>
4-)Validar formulario así se llama el script ( jquery.registrodrp.js )
// JavaScript Document
$(document).ready(function() {
$("#frm_registros").validate({
rules:{
txtcedula:{
required:true,
number: true,
minlength:7,
remote:"exicedula.php"
},
txtnombre:{
required:true
},
txtapellido:{
required:true
},
drpsexo:{
required:true
},
drpdias:{
required:true
},
drpmes:{
required:true
},
drpanos:{
required:true
}
},
//inicicio de mensaje drpanos
messages:{
txtcedula:{
required:"Debe ingresar el número de cedula identidad",
number: 'El número de cédula debe contener 7 dígitos sin puntos ni guión',
minlength:"El número de cédula debe contener 7 dígitos sin puntos ni guión",
remote:"El número de cédula ya existe"
},
txtnombre:{
required:"Ingrese su nombre"
},
txtapellido:{
required:"Ingrese un apellido"
},
drpsexo:{
required:"Selecciones su tipo de sexo"
},
drpdias:{
required: "Para registrarte tienes que indicar tu fecha de nacimiento completa"
},
drpmes:{
required: "Para registrarte tienes que indicar tu fecha de nacimiento completa"
},
drpanos:{
required: "Para registrarte tienes que indicar tu fecha de nacimiento completa"
},
"category[]": "Para registrarte tienes que indicar tu fecha de nacimiento completa",
}//fin del los mensaje
//mensaje de gracia por enviar el formulario
// debug: true,
//submitHandler: function(form){
//alert('Gracias por rellenar el formulario. Se ha enviado correctamente!');}
})
});
5-) Validar si existe el numero de cédula, así se llama el script (exicedula.php )
<?php
$cedula = $_GET['txtcedula'];
include("includes/oConexion.php");
$conexion = conectar();
if($cedula !=""){
$consulta = "SELECT cedula FROM tbusuarios WHERE cedula ='".$cedula."' LIMIT 1";
$resul = mysql_query($consulta, $conexion);
if (mysql_fetch_assoc($resul)) {
echo "false";}
else {
echo "true";}
}else {
header("location: login.php");
session_destroy();}
?>
6-) conexión a la base de datos(asi se llama la clase oConexion.php).
<?php
function conectar()
{
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "ejemplousuarios2012";
if(!$conexion= mysql_connect($mysql_host,$mysql_user,$mysql_password))
{
die("No se puedo ejecutar la conexion ". mysql_error());
}
if(!mysql_select_db($mysql_database, $conexion))
{
die("No se pudo seleccionar la base de datos ". mysql_error());
}
return $conexion;
}
?>
6-) Bueno acá le dejo el script de la base de datos que estoy usando, la cual se llama (ejemplousuarios2012 y la tabla tbusuarios.sql).
CREATE TABLE IF NOT EXISTS `tbusuarios` (
`codigo` int(11) unsigned NOT NULL AUTO_INCREMENT,
`cedula` int(7) NOT NULL,
`nombre` varchar(50) NOT NULL,
`apellido` varchar(50) NOT NULL,
`sexo` varchar(15) NOT NULL,
`fech_nac` datetime DEFAULT NULL,
`remote_addr` varchar(20) DEFAULT NULL,
PRIMARY KEY (`codigo`),
UNIQUE KEY `o_cedula` (`cedula`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
10-)Hoja de estilo...(style.css)
@charset "utf-8";
/* Reset */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
font-family: "Segoe UI", "Lucida Grande", "Lucida Sans Unicode", tahoma, Arial, Verdana, sans-serif;
font-size: 100%;
letter-spacing: 0em;
vertical-align: middle;
margin: 0px;
padding: 0px;
border: 0px;
outline: 0px;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
content: "";
content: none;
}
h1 {
font-size: 15px;
color: #666;
font-style: oblique;
}
a {
color: #00F;
font-size: 13px;
}
p {
font-size: 13px;
}
strong {
font-size: 13px;
}
form {
width: 50%;
margin: auto;
padding: 12px;
}
body, td, th {
color: #222;
}
td.label {
font-size: 13px;
padding-right: 3px;
width: 105px;
}
.label {
color: #1D2A5B;
text-align: right;
}
div label.campo {
width: auto;
margin: .4em 0;
display: block;
font-size: 13px;
}
div#respond {
border: 1px solid #CED5D7;
border-radius: 10px;
margin-top: auto;
padding: 25px;
border: 1px solid #CED5D7;
box-shadow: 0 0 0 3px #E5E5E5;
}
.inputtext, .inputpassword {
font-size: 14px;
padding: 6px;
border-radius: 4px;
border: 1px solid #CED5D7;
width: 250px;
}
.inputcaptcha {
font-size: 14px;
padding: 6px;
border-radius: 4px;
border: 1px solid #CED5D7;
width: 40px;
text-align: center;
}
/*input[type=text] {
font-size: 12px;
padding: 5px;
border-radius: 4px;
border: 1px solid #CED5D7;
width: 200px;
}*/
textarea {
font-family: tahoma, verdana, arial, sans-serif;
font-size: 12px;
border-radius: 4px;
padding: 6px;
border: 1px solid #CED5D7;
resize: none; /* esta propiedad es para que el textarea no sea redimensionable */
width: 330px;
height: 120px;
}
/*input[type=url] {
font-size: 12px;
border-radius: 4px;
padding: 5px;
border: 1px solid #CED5D7;
width: 200px;
}
input[type=email] {
font-size: 12px;
border-radius: 4px;
padding: 5px;
border: 1px solid #CED5D7;
width: 200px;
}*/
select {
font-size: 14px;
padding: 6px;
border-radius: 4px;
border: 1px solid #CED5D7;
}
input[type=submit] {
height: 30px;
overflow: hidden;
margin-top: 10px;
text-align: center;
}
.avertencia {
color: #FF0000;
font-family: "Segoe UI", Arial, Verdana, sans-serif;
font-size: 12px;
}
label.error {
background-color: #BC1010;
padding: 6px 12px;
border-radius: 4px;
color: white;
font-weight: bold;
margin-left: 10px;
position: absolute;
font-family: "Segoe UI", Arial, Verdana, sans-serif;
font-size: 10px;
}
.error:before { /* Este es un truco para crear una flechita */
content: '';
width: 0;
height: 0;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-right: 8px solid #BC1010;
border-left: 8px solid transparent;
left: -16px;
position: absolute;
top: 5px;
pointer-events: none;
}
#welcome {
width: 50%;
margin: auto;
padding: 12px;
border: 1px solid #CED5D7;
border-radius: 10px;
margin-top: auto;
padding: 25px;
border: 1px solid #CED5D7;
box-shadow: 0 0 0 3px #E5E5E5;
}
.usuario {
font-size: 22px;
color: #000;
font-weight: bold;
text-align: center;
}
sábado, 11 de agosto de 2012
registro de usuarios y activacion por email
Bueno acá le traigo otros códigos lo comparto con todos ustedes, porque asi me ayudarían mejorar el código, creo que en google NO ESTA... Soy estudiante de programación, y en verdad lo que poco saben muy poco de explican, porque se creen que se van a la NASA...yo tomo de la base primero validar los formularios sin java-script.. y después lo valido con java, en este ejemplo estoy usando jquery... y voy a subir todos los códigos desde el principio hasta el fin., Solo lo tienen que copiar y pegar..
1-) Así esta formado el WAMPSERVER
2-) Código de la Clase registro.php
Los jquery que tienen que bajar son esto dos (jquery.validate.js, jquery.min.js) van en la carpeta js... (-mas abajo pongo el script como validar el formulario con jquery)..
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario Registro</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/validarregistro.js"> </script>
</head>
<body>
<div id="page">
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" id="frm_registros" onSubmit="return checkForm(this);">
<div id="respond">
<h3>Regístrate Es gratis (y lo seguirá siendo).</h3>
<br/>
<div >
<label class="campo">Nombre de Usuario</label>
<input name="txtusuario" type="text" autofocus class="text" id="txtusuario"
value="<?php if(isset($_POST['txtusuario'])){echo htmlentities($_POST['txtusuario']);} ?>" />
</div>
<div>
<label class="campo">Contraseña</label>
<input name="txtpass" type="password" class="text" id="txtpass" />
</div>
<div>
<label class="campo">Confirmar Contraseña</label>
<input name="txtpassb" type="password" class="text" id="txtpassb" />
</div>
<div>
<label class="campo">E-mail:(requerido)</label>
<input name="txtemail" type="text" class="text" id="txtemail"
value="<?php if(isset($_POST['txtemail'])){echo htmlentities($_POST['txtemail']);} ?>" />
</div>
<div>
<input name="btningresar" type="submit" id="btningresar" value="Regístrate" />
</div>
<br/>
<p>Recibirás un email de confirmación con un enlace a una página que deberás visitar en las próximas 24 horas para activar tu cuenta.</p>
<br/>
<div>[ <a href="reset.php">¿Perdiste tu Contraseña?</a> ] </div >
<br/>
<?php
include("includes/registrar_in_usuario.php");
if ($error) {
echo '<ul>';
foreach ($error as $alerta) {
echo "<li class='avertencia'>$alerta</li>\n";
}
echo '</ul>'; }
?>
</div>
</form>
</div>
</body>
</html>
3-)Clase que va en la carpeta includes se llama (registrar_in_usuario.php)
<?php
include("oConexion.php");
$error = array();
if(array_key_exists('btningresar', $_POST)){
$usuario = "";
$pass = "";
$pass2 = "";
$email = "";
$usuario = trim(strtolower($_POST['txtusuario']));
if($usuario == "")
{
$error['txtnombre']= "Debes ingresar un nombre de usuario para registrarte.";
}
//comprobar si existe el usuarios registrado
if ($_POST['txtusuario']){
$query = mysql_query("SELECT usuario FROM usuarios WHERE usuario ='".$usuario."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['usuario'] == $usuario) {
$error['txtusuario'] = "Ya existe ese nombre de usuario.";}else if($_POST['txtusuario']){
$query = mysql_query("SELECT usuario FROM registros WHERE usuario ='".$usuario."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['usuario'] == $usuario) {
$error['txtusuario'] = "El nombre de usuarios ya se encuentra registrado, esperando por su aprobación, intente de nuevo durante 24 horas.";}
}}//fin de comprabar el usuarios
$pass = trim($_POST['txtpass']);
$digitos = strlen($pass); //con esto te da el numero de digitos
if($pass == "")
{
$error['txtpass']= "Debes ingresar una contraseña para registrarte.";
}else if($digitos < 6)
{
$error['txtpass']= "Ingrese una contraseña mayor a 6 digito";
}
$pass2 = trim($_POST['txtpassb']);
if ($pass2 != $pass){
$error['txtpassb']= "Por favor confirma tu contraseña.";
}
$email= strtolower($_POST['txtemail']);
if($email=="")
{
$error['txtemail']="Ingresar una dirección de E-Mail.";
}else if(!empty($email)){
// expresión regular para identificar caracteres ilegales en dirección email
$comprobarEmail = '/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix';
//rechazar la dirección email si no cumple la expresión regular
if (!preg_match($comprobarEmail, $email)) {
$error['txtemail'] = 'Por favor escribe una dirección email válida';}//fin de preg_match
}//fin del else y el if donde comprueba si es distinto a vacio $email
//comprobar si existe el email registrado
if ($_POST['txtemail']) {
$query = mysql_query("SELECT email FROM usuarios WHERE email ='".$email."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['email'] == $email) {
$error['txtemail'] = "Dirección de E-Mail ya registrada.";}else if($_POST['txtemail']){
$query = mysql_query("SELECT email FROM registros WHERE email ='".$email."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['email'] == $email) {
$error['txtemail'] = "El E-mail ya se encuentra registrado, esperando por su activación, intente de nuevo durante 24 horas.";}
}}//fin de comprabar el email
if(!$error)
{
try
{
$codigoverificacion = substr(md5(uniqid(rand())),0,50);// Conseguimos un codigo aleatorio de 50 digitos.
if (!mysql_query("INSERT INTO registros(usuario,contrasena,email,codigo) values ('$usuario','$pass','$email','$codigoverificacion')"));
//dibujar el mensaje para confirma el registro de usuarios
$headers = "From: TUEMAIL@gmail.com \r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$subject = "Activacion de Cuenta de Usuario Nuevo.";
$message = "Bienvenido a Omegave!, \r\n";
$message .= "\r\n";
$message .= "Registraste la siguiente cuenta de E-Mail " .$email. " para abrir una cuenta en jrondon.\r\n";
$message .= "\r\n";
$message .= "Para terminar el proceso de registro debes visitar el siguiente enlace dentro de las próximas 24 horas para activar tu";
$message .= "cuenta de usuario, de lo contrario la información que enviaste será borrada de forma automática por el sistema y tendrás que";
$message .= "registrarte de nuevo.";
$message .= "\n\n";
$message .= "Para confirmarlo debe hacer click en el siguiente enlace:";
$message .= "\r\n";
$message .= "http://TUSITIO.com/confirmar.php?codigo=".$codigoverificacion;
$message .= "\n\n";
$message .= "A continuación la información de usuario:";
$message .= "\r\n";
$message .= "-Nickname: ".$usuario." \r\n";
$message .= "-Contraseña: ".$pass." \r\n";
$message .= "\r\n";
putenv('TZ=America/Montevideo');
$message .= "Enviado el: " .date('d/m/Y | H:i:s',time())." | " .$_SERVER['REMOTE_ADDR'];
$message .= "\n\n";
$message .= "Sin otro particular, saludamos a Usted muy atentamente.\r\n TU EMPRESA";
if (mail($email,utf8_decode($subject), utf8_decode($message), $headers)){
echo "</br>";
die("<font color='Red'>No se pudo enviar el email de confirmacion.</font>");
header('Location: ../account.php');
exit();
}else {
echo "</br>";
$error = 'El envio ha fallado, por favor contacte al administrador sobre este problema';}
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar registrar " .$ex->getMessage();
}
}
}
$_POST= array();
?>
4-)Mensaje después que se registra el usuario. va en la carpeta includes (account.php)
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario Registro</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="page">
<div id="respond">
<h2 align='center' style= 'color:#FF0000'>Activación de usuario nuevo</h2>
<br/>
<div align='center'>
<h1>
<p>Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.</p>
</h1>
</div>
<br/>
<div align="center">
<p>Nota: Recibirás un email de confirmación con un enlace a una página que deberás visitar en las próximas 24 horas para activar tu cuenta.</p>
</div>
<br/>
</div>
</div>
</body>
</html>
5-) Código de la pagina de confirmar.php

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario de confirmacion</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="page">
<div id="respond">
<?php
session_start();
include("includes/oConexion.php");
$codigo = $_GET['codigo'];
if($codigo != ""){
$buscar = mysql_query("SELECT * FROM registros WHERE codigo='".$codigo."'"); // Buscamos el codigo
if ($resultado = mysql_fetch_array($buscar)) // Si se encontro el codigo de verificacion seguimos
{
if (!mysql_query("DELETE FROM registros WHERE codigo='".$codigo."' LIMIT 1")) die (mysql_error()); // Borramos el registro para que no pueda reutilizar el codigo de verificacion.
if (!mysql_query("INSERT INTO usuarios(usuario,contrasena,email) values ('".$resultado['usuario']."','".$resultado['contrasena']."','".$resultado['email']."')")) die (mysql_error()); // Ahora si registramos al usuario
echo "<h1 align='center' style= 'color:#FF0000'>Registro de Nuevo Usuario: Paso Final</h1>";
echo "<br/>";
echo "<div align='center'><strong>Has confirmado tu cuenta correctamente </strong><a href='login.php' style='color:#00F'>Ingresar.</a> </div>";
echo "<br/>";
}
else // Si no encontro el codigo de verificacion, le damos error:
{
echo "<h1 align='center' style= 'color:red'>Error de activación de usuario nuevo</h1>";
echo "<br/>";
echo "<div align='center'>";
echo "<h1>No existe ningún usuario en la base de datos con ésta información.</h1>";
echo "</div>";
echo "<br/>";
echo "<div align='center'><strong>Puedes registrate como usuario nuevo utilizando el formulario </strong><a href='registro.php' style='color:#00F'>aquí.</a> </div>";
echo "<br/>";
}
}else
{
header("location: registro.php");
session_destroy();
}
?>
</div>
<!-- fin de respond-->
</div>
</body>
</html>
6-) conexión a la base de datos(asi se llama la clase oConexion.php).
<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "DB1_jrondon2013";
if(!$conexion= mysql_connect($mysql_host,$mysql_user,$mysql_password))
{
die("No se puedo ejecutar la conexion ". mysql_error());
}
if(!mysql_select_db($mysql_database, $conexion))
{
die("No se pudo seleccionar la base de datos ". mysql_error());
}
?>
7-)Validar formulario así se llama el script (jquery.registro.js)
$(document).ready(function() {
$.validator.addMethod("regex",function(value,element,regexp){
var re= new RegExp(regexp)
return this.optional(element) || re.test(value);
},"Solo caracteres Alfanumérico");
$("#frm_registros").validate({
rules:{
txtusuario:{
required:true,
regex:"^[a-zA-Z0-9_]+$",
remote:"exiusuarios.php"
},
txtpass:{
required:true,
minlength:8
},
txtpassb:{
equalTo:"#txtpass"
},
txtemail:{
required:true,
remote:"exiEmail.php",
email:true}
},
//inicicio de mensaje
messages:{
txtusuario:{
required:"Ingrese su nombre de usuario",
remote:"El usuario ya existe"
},
txtpass:{
required:"Ingrese una contraseña",
minlength:"Ingrese una contraseña mayor a 8 digito"
},
txtpassb:{
equalTo:"Confirma tu contraseña"
},
txtemail:{
required:"Ingrese una dirección de E-mail para su confirmación",
email:"Por favor escribe una dirección email válida",
remote:"Ingrese una dirección de E-mail diferente"
}
}//fin del los mensaje
})
});
8-)remote:"frm_usuarios.php"
<?php
session_start();
include("includes/oConexion.php");
$usuario = $_GET['txtusuario'];
if($usuario !=""){
$consulta = "select usuario from usuarios WHERE usuario='$usuario'";
$resul = mysql_query($consulta, $conexion);
if (mysql_fetch_assoc($resul)) {
echo "false";}
else {
echo "true";}
}else {
header("location: login.php");
session_destroy();}
?>
9-)remote:"exiEmail.php",
<?php
session_start();
include("includes/oConexion.php");
$exiemail = $_GET['txtemail'];
if($exiemail !="")
{
$consulta = "select email from usuarios WHERE email='$exiemail'";
$resul = mysql_query($consulta, $conexion);
if (mysql_fetch_assoc($resul)) {
echo "false";}
else {
echo "true";}
}else {
header("location: login.php");
session_destroy();
}
?>
10-)Hoja de estilo...(style.css)
@charset "utf-8";
/* Reset */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
font-family: "Segoe UI", "Lucida Grande", "Lucida Sans Unicode", tahoma, Arial, Verdana, sans-serif;
font-size: 100%;
letter-spacing: 0em;
vertical-align: middle;
margin: 0px;
padding: 0px;
border: 0px;
outline: 0px;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
content: "";
content: none;
}
h1, h2, h3, h4, h5, h6 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 10px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1, h2, h3 {
line-height: 10px;
color: #999;
font-style: oblique;
}
h1 {
font-size: 30.5px;
}
h2 {
font-size: 28.5px;
}
h3 {
font-size: 24.5px;
}
h4 {
font-size: 17.5px;
}
h5 {
font-size: 14px;
}
h6 {
font-size: 11.9px;
}
h1 small {
font-size: 24.5px;
}
h2 small {
font-size: 17.5px;
}
h3 small {
font-size: 14px;
}
h4 small {
font-size: 14px;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a {
color: #0088cc;
text-decoration: none;
font-size: 14px;
}
a:hover {
color: #005580;
text-decoration: underline;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover, a:active {
outline: 0;
}
p {
font-size: 13px;
margin: 0 0 10px;
}
@page {
margin: 0.5cm;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3 {
page-break-after: avoid;
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333333;
background-color: #ffffff;
}
form {
width: 60%;
margin: 0 auto;
padding: 12px;
}
#page {
width: 890px;
background-color: #FFF;
margin: auto;
border-radius: 10px;
box-shadow: 0px 5px 20px #FFF;
*zoom: 1;
}
div#respond {
border: 1px solid #CED5D7;
border-radius: 10px;
margin-top: auto;
padding: 25px;
border: 1px solid #CED5D7;
box-shadow: 0 0 0 3px #E5E5E5;
}
label, input, button, select, textarea {
font-size: 98%;
font-weight: normal;
line-height: 20px;
}
input, button, select, textarea {
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
}
label {
margin-bottom: 5px;
}
label.campo {
width: auto;
display: block;
margin: .2em 0 0;
}
.inputcaptcha {
font-size: 14px;
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
width: 40px;
text-align: center;
}
.text {
width: 220px;/*para poner un tamaño a los text ya que tengo captcha y no lo puedo poner por defecto*/
}
input[type=text], input[type=password], input[type=email], input[type=url] {
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
/*width: 200px; //problema porque se me agranda el text del captcha*/
height: 20px;
}
textarea {
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
resize: none; /* esta propiedad es para que el textarea no sea redimensionable */
width: 350px;
height: 130px;
}
input[type=submit] {
margin-top: 20px;
min-width: 100px;
padding: 7px 20px;
text-align: center;
cursor: pointer;
}
.avertencia {
color: Red;
font-size: 13px;
}
label.error {
background-color: #BC1010;
padding: 6px 12px;
border-radius: 4px;
color: white;
font-weight: bold;
margin-left: 12px;
position: absolute;
font-family: Arial, Verdana, sans-serif;
font-size: 10px;
}
.error:before { /* Este es un truco para crear una flechita */
content: '';
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-right: 8px solid #BC1010;
border-left: 8px solid transparent;
left: -16px;
position: absolute;
top: 5px;
}
.mainTitle {
color: #333;
font-size: 18px;
}
#footer a, #footer p {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #454545;
font-weight: normal;
float: left;
}
11-)Bueno aca le dejo el script de la base de datos la cual estoy usando, se llama (DB1_jrondon2013), solo tiene que copiar y pegarlo en la consola de mysql y ejecutarla.
drop database IF EXISTS DB1_jrondon2013;
CREATE DATABASE DB1_jrondon2013 CHARSET=UTF8;
USE DB1_jrondon2013;
CREATE TABLE IF NOT EXISTS comment (
mensaje_id int PRIMARY KEY NOT NULL AUTO_INCREMENT,
nombre varchar(50) NOT NULL,
email varchar(50) NOT NULL,
url varchar(50) DEFAULT NULL,
comentarios text NOT NULL,
fecha timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS registros (
cod_registro int PRIMARY KEY NOT NULL AUTO_INCREMENT,
codigo varchar(50) NOT NULL,
usuario varchar(20) NOT NULL,
contrasena varchar(20) NOT NULL,
email varchar(50) NOT NULL,
fecha_ingreso timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
activado enum('NO') NOT NULL)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS tbchange (
cod_change int PRIMARY KEY NOT NULL AUTO_INCREMENT,
codigo_verific varchar(50) NOT NULL,
email varchar(50) NOT NULL)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS usuarios (
co_digo int PRIMARY KEY NOT NULL AUTO_INCREMENT,
admin_priv enum('u','a') NOT NULL,
usuario varchar(30) NOT NULL,
contrasena varchar(30) NOT NULL,
email varchar(50) NOT NULL,
fecha_ingreso timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `o_usuario` (`usuario`) USING BTREE,
UNIQUE KEY `o_email` (`email`) USING BTREE)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
12-)Bueno alguna cosa dejen un comentarios que responderé cuando tenga tiempo y le envió todos en códigos por email, NO SE OLVIDEN DECIR DE QUE PAIS SON.. así llevo el registros. Y puedo seguir mejorando el codigo...
1-) Así esta formado el WAMPSERVER
2-) Código de la Clase registro.php
Los jquery que tienen que bajar son esto dos (jquery.validate.js, jquery.min.js) van en la carpeta js... (-mas abajo pongo el script como validar el formulario con jquery)..
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario Registro</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/validarregistro.js"> </script>
</head>
<body>
<div id="page">
<form action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post" id="frm_registros" onSubmit="return checkForm(this);">
<div id="respond">
<h3>Regístrate Es gratis (y lo seguirá siendo).</h3>
<br/>
<div >
<label class="campo">Nombre de Usuario</label>
<input name="txtusuario" type="text" autofocus class="text" id="txtusuario"
value="<?php if(isset($_POST['txtusuario'])){echo htmlentities($_POST['txtusuario']);} ?>" />
</div>
<div>
<label class="campo">Contraseña</label>
<input name="txtpass" type="password" class="text" id="txtpass" />
</div>
<div>
<label class="campo">Confirmar Contraseña</label>
<input name="txtpassb" type="password" class="text" id="txtpassb" />
</div>
<div>
<label class="campo">E-mail:(requerido)</label>
<input name="txtemail" type="text" class="text" id="txtemail"
value="<?php if(isset($_POST['txtemail'])){echo htmlentities($_POST['txtemail']);} ?>" />
</div>
<div>
<input name="btningresar" type="submit" id="btningresar" value="Regístrate" />
</div>
<br/>
<p>Recibirás un email de confirmación con un enlace a una página que deberás visitar en las próximas 24 horas para activar tu cuenta.</p>
<br/>
<div>[ <a href="reset.php">¿Perdiste tu Contraseña?</a> ] </div >
<br/>
<?php
include("includes/registrar_in_usuario.php");
if ($error) {
echo '<ul>';
foreach ($error as $alerta) {
echo "<li class='avertencia'>$alerta</li>\n";
}
echo '</ul>'; }
?>
</div>
</form>
</div>
</body>
</html>
3-)Clase que va en la carpeta includes se llama (registrar_in_usuario.php)
<?php
include("oConexion.php");
$error = array();
if(array_key_exists('btningresar', $_POST)){
$usuario = "";
$pass = "";
$pass2 = "";
$email = "";
$usuario = trim(strtolower($_POST['txtusuario']));
if($usuario == "")
{
$error['txtnombre']= "Debes ingresar un nombre de usuario para registrarte.";
}
//comprobar si existe el usuarios registrado
if ($_POST['txtusuario']){
$query = mysql_query("SELECT usuario FROM usuarios WHERE usuario ='".$usuario."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['usuario'] == $usuario) {
$error['txtusuario'] = "Ya existe ese nombre de usuario.";}else if($_POST['txtusuario']){
$query = mysql_query("SELECT usuario FROM registros WHERE usuario ='".$usuario."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['usuario'] == $usuario) {
$error['txtusuario'] = "El nombre de usuarios ya se encuentra registrado, esperando por su aprobación, intente de nuevo durante 24 horas.";}
}}//fin de comprabar el usuarios
$pass = trim($_POST['txtpass']);
$digitos = strlen($pass); //con esto te da el numero de digitos
if($pass == "")
{
$error['txtpass']= "Debes ingresar una contraseña para registrarte.";
}else if($digitos < 6)
{
$error['txtpass']= "Ingrese una contraseña mayor a 6 digito";
}
$pass2 = trim($_POST['txtpassb']);
if ($pass2 != $pass){
$error['txtpassb']= "Por favor confirma tu contraseña.";
}
$email= strtolower($_POST['txtemail']);
if($email=="")
{
$error['txtemail']="Ingresar una dirección de E-Mail.";
}else if(!empty($email)){
// expresión regular para identificar caracteres ilegales en dirección email
$comprobarEmail = '/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix';
//rechazar la dirección email si no cumple la expresión regular
if (!preg_match($comprobarEmail, $email)) {
$error['txtemail'] = 'Por favor escribe una dirección email válida';}//fin de preg_match
}//fin del else y el if donde comprueba si es distinto a vacio $email
//comprobar si existe el email registrado
if ($_POST['txtemail']) {
$query = mysql_query("SELECT email FROM usuarios WHERE email ='".$email."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['email'] == $email) {
$error['txtemail'] = "Dirección de E-Mail ya registrada.";}else if($_POST['txtemail']){
$query = mysql_query("SELECT email FROM registros WHERE email ='".$email."' LIMIT 1") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['email'] == $email) {
$error['txtemail'] = "El E-mail ya se encuentra registrado, esperando por su activación, intente de nuevo durante 24 horas.";}
}}//fin de comprabar el email
if(!$error)
{
try
{
$codigoverificacion = substr(md5(uniqid(rand())),0,50);// Conseguimos un codigo aleatorio de 50 digitos.
if (!mysql_query("INSERT INTO registros(usuario,contrasena,email,codigo) values ('$usuario','$pass','$email','$codigoverificacion')"));
//dibujar el mensaje para confirma el registro de usuarios
$headers = "From: TUEMAIL@gmail.com \r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$subject = "Activacion de Cuenta de Usuario Nuevo.";
$message = "Bienvenido a Omegave!, \r\n";
$message .= "\r\n";
$message .= "Registraste la siguiente cuenta de E-Mail " .$email. " para abrir una cuenta en jrondon.\r\n";
$message .= "\r\n";
$message .= "Para terminar el proceso de registro debes visitar el siguiente enlace dentro de las próximas 24 horas para activar tu";
$message .= "cuenta de usuario, de lo contrario la información que enviaste será borrada de forma automática por el sistema y tendrás que";
$message .= "registrarte de nuevo.";
$message .= "\n\n";
$message .= "Para confirmarlo debe hacer click en el siguiente enlace:";
$message .= "\r\n";
$message .= "http://TUSITIO.com/confirmar.php?codigo=".$codigoverificacion;
$message .= "\n\n";
$message .= "A continuación la información de usuario:";
$message .= "\r\n";
$message .= "-Nickname: ".$usuario." \r\n";
$message .= "-Contraseña: ".$pass." \r\n";
$message .= "\r\n";
putenv('TZ=America/Montevideo');
$message .= "Enviado el: " .date('d/m/Y | H:i:s',time())." | " .$_SERVER['REMOTE_ADDR'];
$message .= "\n\n";
$message .= "Sin otro particular, saludamos a Usted muy atentamente.\r\n TU EMPRESA";
if (mail($email,utf8_decode($subject), utf8_decode($message), $headers)){
echo "</br>";
die("<font color='Red'>No se pudo enviar el email de confirmacion.</font>");
header('Location: ../account.php');
exit();
}else {
echo "</br>";
$error = 'El envio ha fallado, por favor contacte al administrador sobre este problema';}
}catch(Exeception $ex)
{
echo "Problema en la base de datos al ingresar registrar " .$ex->getMessage();
}
}
}
$_POST= array();
?>
4-)Mensaje después que se registra el usuario. va en la carpeta includes (account.php)
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario Registro</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="page">
<div id="respond">
<h2 align='center' style= 'color:#FF0000'>Activación de usuario nuevo</h2>
<br/>
<div align='center'>
<h1>
<p>Tu cuenta ha sido registrada, sin embargo, esta requiere que la confirmes desde el email que ingresaste en el registro.</p>
</h1>
</div>
<br/>
<div align="center">
<p>Nota: Recibirás un email de confirmación con un enlace a una página que deberás visitar en las próximas 24 horas para activar tu cuenta.</p>
</div>
<br/>
</div>
</div>
</body>
</html>
5-) Código de la pagina de confirmar.php

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="cache-control" content="no-cache">
<title>Formulario de confirmacion</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="page">
<div id="respond">
<?php
session_start();
include("includes/oConexion.php");
$codigo = $_GET['codigo'];
if($codigo != ""){
$buscar = mysql_query("SELECT * FROM registros WHERE codigo='".$codigo."'"); // Buscamos el codigo
if ($resultado = mysql_fetch_array($buscar)) // Si se encontro el codigo de verificacion seguimos
{
if (!mysql_query("DELETE FROM registros WHERE codigo='".$codigo."' LIMIT 1")) die (mysql_error()); // Borramos el registro para que no pueda reutilizar el codigo de verificacion.
if (!mysql_query("INSERT INTO usuarios(usuario,contrasena,email) values ('".$resultado['usuario']."','".$resultado['contrasena']."','".$resultado['email']."')")) die (mysql_error()); // Ahora si registramos al usuario
echo "<h1 align='center' style= 'color:#FF0000'>Registro de Nuevo Usuario: Paso Final</h1>";
echo "<br/>";
echo "<div align='center'><strong>Has confirmado tu cuenta correctamente </strong><a href='login.php' style='color:#00F'>Ingresar.</a> </div>";
echo "<br/>";
}
else // Si no encontro el codigo de verificacion, le damos error:
{
echo "<h1 align='center' style= 'color:red'>Error de activación de usuario nuevo</h1>";
echo "<br/>";
echo "<div align='center'>";
echo "<h1>No existe ningún usuario en la base de datos con ésta información.</h1>";
echo "</div>";
echo "<br/>";
echo "<div align='center'><strong>Puedes registrate como usuario nuevo utilizando el formulario </strong><a href='registro.php' style='color:#00F'>aquí.</a> </div>";
echo "<br/>";
}
}else
{
header("location: registro.php");
session_destroy();
}
?>
</div>
<!-- fin de respond-->
</div>
</body>
</html>
6-) conexión a la base de datos(asi se llama la clase oConexion.php).
<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "DB1_jrondon2013";
if(!$conexion= mysql_connect($mysql_host,$mysql_user,$mysql_password))
{
die("No se puedo ejecutar la conexion ". mysql_error());
}
if(!mysql_select_db($mysql_database, $conexion))
{
die("No se pudo seleccionar la base de datos ". mysql_error());
}
?>
7-)Validar formulario así se llama el script (jquery.registro.js)
$(document).ready(function() {
$.validator.addMethod("regex",function(value,element,regexp){
var re= new RegExp(regexp)
return this.optional(element) || re.test(value);
},"Solo caracteres Alfanumérico");
$("#frm_registros").validate({
rules:{
txtusuario:{
required:true,
regex:"^[a-zA-Z0-9_]+$",
remote:"exiusuarios.php"
},
txtpass:{
required:true,
minlength:8
},
txtpassb:{
equalTo:"#txtpass"
},
txtemail:{
required:true,
remote:"exiEmail.php",
email:true}
},
//inicicio de mensaje
messages:{
txtusuario:{
required:"Ingrese su nombre de usuario",
remote:"El usuario ya existe"
},
txtpass:{
required:"Ingrese una contraseña",
minlength:"Ingrese una contraseña mayor a 8 digito"
},
txtpassb:{
equalTo:"Confirma tu contraseña"
},
txtemail:{
required:"Ingrese una dirección de E-mail para su confirmación",
email:"Por favor escribe una dirección email válida",
remote:"Ingrese una dirección de E-mail diferente"
}
}//fin del los mensaje
})
});
8-)remote:"frm_usuarios.php"
<?php
session_start();
include("includes/oConexion.php");
$usuario = $_GET['txtusuario'];
if($usuario !=""){
$consulta = "select usuario from usuarios WHERE usuario='$usuario'";
$resul = mysql_query($consulta, $conexion);
if (mysql_fetch_assoc($resul)) {
echo "false";}
else {
echo "true";}
}else {
header("location: login.php");
session_destroy();}
?>
9-)remote:"exiEmail.php",
<?php
session_start();
include("includes/oConexion.php");
$exiemail = $_GET['txtemail'];
if($exiemail !="")
{
$consulta = "select email from usuarios WHERE email='$exiemail'";
$resul = mysql_query($consulta, $conexion);
if (mysql_fetch_assoc($resul)) {
echo "false";}
else {
echo "true";}
}else {
header("location: login.php");
session_destroy();
}
?>
10-)Hoja de estilo...(style.css)
@charset "utf-8";
/* Reset */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
font-family: "Segoe UI", "Lucida Grande", "Lucida Sans Unicode", tahoma, Arial, Verdana, sans-serif;
font-size: 100%;
letter-spacing: 0em;
vertical-align: middle;
margin: 0px;
padding: 0px;
border: 0px;
outline: 0px;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display: block;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
content: "";
content: none;
}
h1, h2, h3, h4, h5, h6 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 10px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1, h2, h3 {
line-height: 10px;
color: #999;
font-style: oblique;
}
h1 {
font-size: 30.5px;
}
h2 {
font-size: 28.5px;
}
h3 {
font-size: 24.5px;
}
h4 {
font-size: 17.5px;
}
h5 {
font-size: 14px;
}
h6 {
font-size: 11.9px;
}
h1 small {
font-size: 24.5px;
}
h2 small {
font-size: 17.5px;
}
h3 small {
font-size: 14px;
}
h4 small {
font-size: 14px;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a {
color: #0088cc;
text-decoration: none;
font-size: 14px;
}
a:hover {
color: #005580;
text-decoration: underline;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover, a:active {
outline: 0;
}
p {
font-size: 13px;
margin: 0 0 10px;
}
@page {
margin: 0.5cm;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3 {
page-break-after: avoid;
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333333;
background-color: #ffffff;
}
form {
width: 60%;
margin: 0 auto;
padding: 12px;
}
#page {
width: 890px;
background-color: #FFF;
margin: auto;
border-radius: 10px;
box-shadow: 0px 5px 20px #FFF;
*zoom: 1;
}
div#respond {
border: 1px solid #CED5D7;
border-radius: 10px;
margin-top: auto;
padding: 25px;
border: 1px solid #CED5D7;
box-shadow: 0 0 0 3px #E5E5E5;
}
label, input, button, select, textarea {
font-size: 98%;
font-weight: normal;
line-height: 20px;
}
input, button, select, textarea {
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
}
label {
margin-bottom: 5px;
}
label.campo {
width: auto;
display: block;
margin: .2em 0 0;
}
.inputcaptcha {
font-size: 14px;
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
width: 40px;
text-align: center;
}
.text {
width: 220px;/*para poner un tamaño a los text ya que tengo captcha y no lo puedo poner por defecto*/
}
input[type=text], input[type=password], input[type=email], input[type=url] {
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
/*width: 200px; //problema porque se me agranda el text del captcha*/
height: 20px;
}
textarea {
padding: 6px;
border-radius: 0 5px 5px 5px;
border: 1px solid #CCC;
resize: none; /* esta propiedad es para que el textarea no sea redimensionable */
width: 350px;
height: 130px;
}
input[type=submit] {
margin-top: 20px;
min-width: 100px;
padding: 7px 20px;
text-align: center;
cursor: pointer;
}
.avertencia {
color: Red;
font-size: 13px;
}
label.error {
background-color: #BC1010;
padding: 6px 12px;
border-radius: 4px;
color: white;
font-weight: bold;
margin-left: 12px;
position: absolute;
font-family: Arial, Verdana, sans-serif;
font-size: 10px;
}
.error:before { /* Este es un truco para crear una flechita */
content: '';
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
border-right: 8px solid #BC1010;
border-left: 8px solid transparent;
left: -16px;
position: absolute;
top: 5px;
}
.mainTitle {
color: #333;
font-size: 18px;
}
#footer a, #footer p {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #454545;
font-weight: normal;
float: left;
}
11-)Bueno aca le dejo el script de la base de datos la cual estoy usando, se llama (DB1_jrondon2013), solo tiene que copiar y pegarlo en la consola de mysql y ejecutarla.
drop database IF EXISTS DB1_jrondon2013;
CREATE DATABASE DB1_jrondon2013 CHARSET=UTF8;
USE DB1_jrondon2013;
CREATE TABLE IF NOT EXISTS comment (
mensaje_id int PRIMARY KEY NOT NULL AUTO_INCREMENT,
nombre varchar(50) NOT NULL,
email varchar(50) NOT NULL,
url varchar(50) DEFAULT NULL,
comentarios text NOT NULL,
fecha timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS registros (
cod_registro int PRIMARY KEY NOT NULL AUTO_INCREMENT,
codigo varchar(50) NOT NULL,
usuario varchar(20) NOT NULL,
contrasena varchar(20) NOT NULL,
email varchar(50) NOT NULL,
fecha_ingreso timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
activado enum('NO') NOT NULL)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS tbchange (
cod_change int PRIMARY KEY NOT NULL AUTO_INCREMENT,
codigo_verific varchar(50) NOT NULL,
email varchar(50) NOT NULL)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS usuarios (
co_digo int PRIMARY KEY NOT NULL AUTO_INCREMENT,
admin_priv enum('u','a') NOT NULL,
usuario varchar(30) NOT NULL,
contrasena varchar(30) NOT NULL,
email varchar(50) NOT NULL,
fecha_ingreso timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `o_usuario` (`usuario`) USING BTREE,
UNIQUE KEY `o_email` (`email`) USING BTREE)
ENGINE=INNODB DEFAULT CHARSET=UTF8;
12-)Bueno alguna cosa dejen un comentarios que responderé cuando tenga tiempo y le envió todos en códigos por email, NO SE OLVIDEN DECIR DE QUE PAIS SON.. así llevo el registros. Y puedo seguir mejorando el codigo...
Suscribirse a:
Entradas (Atom)