Beruflich Dokumente
Kultur Dokumente
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Like
Tweet
Unsistemasegurodeiniciodesesinyregistroesunodelosrequerimientosprincipalesalcrearunsistema.Esporesto,
queenestaoportunidaddaremosunabreveguadecomocrearunsistemadeiniciodesesinyregistro,usando
MySQLyPHP.NoharemosusodealgnFramework(6FrameWorksPHPparaeldesarrollogil),solamenteusaremos
PHPdesdeceroparalograrlo
Noestandifcildehacerlo,solotienesquetenerconocimientosbsicosde
programacin,HTML,yalgodeCSS(porsideseasmodificarlaapariencia).Esperamosquenuestroanteriorarticulo,
sobre10consejosparaserunmejorprogramadorenPHP,seadegranutilidad.
Lo Que Se Necesita
Xampp(PHPversin5.3posteriorylaversindeMySQL4.1.3posterior)
ConocimientosbsicossobrePHP,HTMLyCSS
Algodetiempoypaciencia
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
1/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Resultado Final
EnlassiguientesimgenespodrsverelresultadofinaldelsistemadeiniciodesesinyregistroalusarPHPy
MySQL.
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
2/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Tegustacomoseveelformulario?Puedesdescargarelcdigodeformulariodeusistemadeiniciodesesinyregistro.
Paso 1 MySQL
Enprimerlugar,esnecesarioquecreelabasededatosylatablaquealmacenaratodoslosregistros.Puedeshacerestode
formamanualutilizandolainterfazgrficadeusuariodePhpMyAdminusarSQLparainsertarestainformacin.Si
deseasusarSQL,lassiguienteslineastecrearantantolabasededatoscomolatabla:
/*CreateDatabase*/
CREATEDATABASEuserlitdb;
/*CreateTable*/
CREATETABLE`usertbl`(
`id`int(11)NOTNULLauto_increment,
`full_name`varchar(32)collateutf8_unicode_ciNOTNULLdefault'',
`email`varchar(32)collateutf8_unicode_ciNOTNULLdefault'',
`username`varchar(20)collateutf8_unicode_ciNOTNULLdefault'',
`password`varchar(32)collateutf8_unicode_ciNOTNULLdefault'',
PRIMARYKEY(`id`),
UNIQUEKEY`username`(`username`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;
Observequetodosellossondetipovarchar,inclusolacontraseaqueseconvertirmstardeenmd5paraasegurarla
contraseadelusuario.Adems,useunAUTO_INCREMENTparaasignarautomticamenteunIDunnmerode
usuariosqueseregistraranmstarde.
Ahoraquelatablasehacreado,loquetienesquehaceresimplementarlaestructuraconHTMLydiseoconCSS,luego
vendrelPHP.
Paso 2 El HTML
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
3/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Yaqueelprocesoloharemosdelladodelservidor(porusarsoloPHP),usaremostresarchivosPHPencualsecuentacon
lasfuncionesylaestructuraconelHTML.Enprimerlugar,secreaelarchivologin.php.Sientetelibredecopiarel
siguientecdigo:
<?php
session_start();
?>
<?phprequire_once("includes/connection.php");?>
<?phpinclude("includes/header.php");?>
<?php
if(isset($_SESSION["session_username"])){
//echo"Sessionisset";//fortestingpurposes
header("Location:intropage.php");
}
if(isset($_POST["login"])){
if(!empty($_POST['username'])&&!empty($_POST['password'])){
$username=$_POST['username'];
$password=$_POST['password'];
$query=mysql_query("SELECT*FROMusertblWHEREusername='".$username."'AND
password='".$password."'");
$numrows=mysql_num_rows($query);
if($numrows!=0)
{
while($row=mysql_fetch_assoc($query))
{
$dbusername=$row['username'];
$dbpassword=$row['password'];
}
if($username==$dbusername&&$password==$dbpassword)
$_SESSION['session_username']=$username;
/*Redirectbrowser*/
header("Location:intropage.php");
}
}else{
$message="Nombredeusuariocontraseainvalida!";
}
}else{
$message="Todosloscampossonrequeridos!";
}
}
?>
<divclass="containermlogin">
<divid="login">
<h1>Logueo</h1>
<formname="loginform"id="loginform"action=""method="POST">
<p>
<labelfor="user_login">NombreDeUsuario<br/>
<inputtype="text"name="username"id="username"class="input"value=""size="20"/></label>
</p>
Inicio Web Hosting Servidores Dedicados Contacto
<p>
<labelfor="user_pass">Contrasea<br/>
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
4/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
<labelfor="user_pass">Contrasea<br/>
<inputtype="password"name="password"id="password"class="input"value=""size="20"/></label>
</p>
<pclass="submit">
<inputtype="submit"name="login"class="button"value="Entrar"/>
</p>
<pclass="regtext">Noestasregistrado?<ahref="register.php">RegistrateAqu</a>!</p>
</form>
</div>
</div>
<?phpinclude("includes/footer.php");?>
<?phpif(!empty($message)){echo"<pclass=\"error\">"."MESSAGE:".$message."</p>";}?>
Acontinuacin,creamoselarchivoregister.php.Copieypegueelsiguientecdigo:
<?phprequire_once("includes/connection.php");?>
<?phpinclude("includes/header.php");?>
<?php
if(isset($_POST["register"])){
if(!empty($_POST['full_name'])&&!empty($_POST['email'])&&!empty($_POST['username'])&&
!empty($_POST['password'])){
$full_name=$_POST['full_name'];
$email=$_POST['email'];
$username=$_POST['username'];
$password=$_POST['password'];
$query=mysql_query("SELECT*FROMusertblWHEREusername='".$username."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
{
$sql="INSERTINTOusertbl
(full_name,email,username,password)
VALUES('$full_name','$email','$username','$password')";
$result=mysql_query($sql);
if($result){
$message="CuentaCorrectamenteCreada";
}else{
$message="Erroralingresardatosdelainformacion!";
}
}else{
$message="Elnombredeusuarioyaexiste!Porfavor,intentaconotro!";
}
}else{
$message="Todosloscamposnodebendeestarvacios!";
}
}
?>
<?phpif(!empty($message)){echo"<pclass=\"error\">"."Mensaje:".$message."</p>";}?>
<divclass="containermregister">
<divid="login">
<h1>Registrar</h1>
<formname="registerform"id="registerform"action="register.php"method="post">
<p>
<labelfor="user_login">NombreCompleto<br/>
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
5/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
<labelfor="user_login">NombreCompleto<br/>
<inputtype="text"name="full_name"id="full_name"class="input"size="32"value=""/></label>
</p>
<p>
<labelfor="user_pass">Email<br/>
<inputtype="email"name="email"id="email"class="input"value=""size="32"/></label>
</p>
<p>
<labelfor="user_pass">NombreDeUsuario<br/>
<inputtype="text"name="username"id="username"class="input"value=""size="20"/></label>
</p>
<p>
<labelfor="user_pass">Contrasea<br/>
<inputtype="password"name="password"id="password"class="input"value=""size="32"/></label>
</p>
<pclass="submit">
<inputtype="submit"name="register"id="register"class="button"value="Registrar"/>
</p>
<pclass="regtext">Yatienesunacuenta?<ahref="login.php">EntraAqu!</a>!</p>
</form>
</div>
</div>
<?phpinclude("includes/footer.php");?>
Acontinuacin,secrealapaginadebienvenidaenelarchivointropage.php.Estoservircomolapginaprincipalunavez
queunusuarioiniciasesinexitosamente.
<?php
session_start();
if(!isset($_SESSION["session_username"])){
header("location:login.php");
}else{
?>
<?phpinclude("includes/header.php");?>
<divid="welcome">
<h2>Bienvenido,<span><?phpecho$_SESSION['session_username'];?>!</span></h2>
<p><ahref="logout.php">Finalice</a>sesinaqu!</p>
</div>
<?phpinclude("includes/footer.php");?>
<?php
}
?>
SilaestructurasemanejaconHTML,porqueusarPHPconHTML?Simple,PHPestanflexiblequenospermiteusar
HTMLincrustado,siprefieresyquieresprobaratumodo,puedessepararlaestructuradelHTMLdelcdigoPHP
Pero
bueno,queseriadelHTMLsinelCSSenestosdas?
Paso 3 El CSS
Paradarleunaspectobieninteresantealejercicio,ledaremosunpequeoretoqueconCSS,esporestoquesevebastante
llamativoelformulario
*=GENERALSTYLES
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
6/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
*=GENERALSTYLES
*/
body{
background:#efefef;
fontfamily:'OpenSans',sansserif;
color:#777;
}
a{
color:#f58220;
fontweight:400;
}
span{
fontweight:300;
color:#f58220;
}
.mlogin{
margin:170pxauto0;
}
.mregister{
margin:80pxauto0;
}
.error{
margin:40pxauto0;
border:1pxsolid#777;
padding:3px;
color:#fff;
textalign:center;
width:650px;
background:#f58220;
}
.regtext{
fontsize:13px;
margintop:26px;
color:#777;
}
/*=CONTAINERS
*/
.container{
padding:25px16px25px10px;
fontweight:400;
overflow:hidden;
width:350px;
height:auto;
background:#fff;
webkitboxshadow:01px3pxrgba(0,0,0,.13);
mozboxshadow:01px3pxrgba(0,0,0,.13);
boxshadow:01px3pxrgba(0,0,0,.13);
}
#welcome{
width:500px;
padding:30px;
background:#fff;
margin:160pxauto0;
webkitboxshadow:01px3pxrgba(0,0,0,.13);
mozboxshadow:01px3pxrgba(0,0,0,.13);
boxshadow:01px3pxrgba(0,0,0,.13);
}
.containerh1{
color:#777;
textalign:center;
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
7/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
textalign:center;
fontweight:300;
border:1pxdashed#777;
margintop:13px;
}
.containerlabel{
color:#777;
fontsize:14px;
}
#login{
width:320px;
margin:auto;
paddingbottom:15px;
}
.containerform.input,.containerinput[type=text],.containerinput[type=password],.container
input[type=e]{
background:#fbfbfb;
fontsize:24px;
lineheight:1;
width:100%;
padding:3px;
margin:06px5px0;
outline:none;
border:1pxsolid#d9d9d9;
}
.containerform.input:focus{
border:1pxsolid#f58220;
webkitboxshadow:003px0rgba(245,130,32,0.75);
mozboxshadow:003px0rgba(245,130,32,0.75);
boxshadow:003px0rgba(245,130,32,0.75);
}
/*=BUTTONS
*/
.button{
border:solid1px#da7c0c;
background:#f78d1d;
background:webkitgradient(linear,lefttop,leftbottom,from(#faa51a),
to(#f47a20));
background:mozlineargradient(top,#faa51a,#f47a20);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a',
endColorstr='#f47a20');
color:#fff;
padding:7px12px;
webkitborderradius:4px;
mozborderradius:4px;
borderradius:4px;
float:right;
cursor:pointer;
}
.button:hover{
background:#f47c20;
background:webkitgradient(linear,lefttop,leftbottom,from(#f88e11),
to(#f06015));
background:mozlineargradient(top,#f88e11,#f06015);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11',
endColorstr='#f06015');
}
/*=FOOTER
*/
footer{
color:#777;
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
8/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
color:#777;
fontsize:12px;
textalign:center;
margintop:20px;
}
Finalmente
HoyhasaprendidoacrearunsencillosistemadeiniciodesesinutilizandoPHPyMySQL.Aunquehaymuchascosasa
considerarcuandosetratadeseguridad,estoesunbuencomienzoparaaquellosprincipiantes.Ereslibredemodificarlos
anteriorescdigosparatuproyecto.Sitienealgunaideaparamejorarloscdigos,porfavor,dejaunbuencomentariocon
elcdigoyexplicandoelporque
desarrollador
desarrolladores
desarrollo
html
MySQL
php
Post Relacionados
CmoMostrarLosDatosEnLaConsolaDel
NavegadorWebAnteriormentehabamos
Nosepuedenegarquelacolaboracinen
Cuandosetratadecomprarunacmara
habladosobrelas
tiemporealsehaconvertidoenuna
fotogrfica,enrealidadtienesbastantede
dondeelegir.
hlaunsaludomegustoeltutorialestabuenisimodeseariasabercomopuedohacerpararedireccionaracada
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
9/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
clienteaunapaginadistintagracias
josue
2June,2015at23:25
unsaludoeltutorialesexelenteesmiprimerabasededatos,unaconsultaysiquieroredireccionaracada
usuarioaunapaginadiferente
Harold
1June,2015at10:43
Holatengoproblemasconheader(location:intropage.php)luegodehacerloginnoseredireccionatoca
actualizarlapaginaparaqueversiestaconectado.gracias
anonymous
27May,2015at0:39
amigomegustariasaberconquenombreseguardariaelcss
Hugo
12May,2015at12:42
Unaduda:Dondepuedoconseguirelconection.php?
jesus
6May,2015at14:37
ysiesteesunformularioenlaweb,comolehagoparaingresarporlapuertatrasera?
miguel.argentina
3May,2015at18:12
loadaptyfuncionperfectamente
Graciasportodo
German
30April,2015at12:45
memarcaesteerrorcuandopongoellogin
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
10/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Warning:Cannotmodifyheaderinformationheadersalreadysentby(outputstartedatC:\xamppwin32
1.7.3\xampp\htdocs\phpform\login.php:5)inC:\xamppwin321.7.3\xampp\htdocs\phpform\login.phponline
12
Ricardo
29April,2015at11:13
Muybuenagua,meayudobastantesolomencionarsobremd5queactualmenteyaesbastantevulnerableyes
aconsejableotroalgoritmo(ysiasiendoaladotantascosasdeseguridadquefaltaranporimplementary
mencionar).
peronolequitalobuenoaestomuchasgraciasporlaayuda
AlvaroAngulo
28April,2015at11:21
Enelposthayunarchivoquediceheader.phpdondeimplementasteesearchivoenelpost?
Gustavo
28April,2015at8:52
comohagoqueparalapartequedicebienvenido(porejemplo)tambienmuestreotrodatocomofull_name
Bienvenido,!
Finalicesesinaqu!
jorge
27April,2015at17:10
Buenastardes,sigoestetutorialperonoencuentrodonderealiceselconnection.phpqueloincluyesenlos
archivosydondesedefinelabasededatosylasdemasconstantes,tampocolarealizacindelheader.phpydel
footer.php,esquesoyprincipianteypuesquisierasaberqueesloqueserealizaenesosarchivos?
Milgracias!
Solis
24April,2015at10:07
Estamuybuenotucodigoperobuscolaconeccionconlabdynolaconsigoyquierosaberdequemanerahicistes
laconecion
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
11/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Crist
7April,2015at11:22
Buenda
Tengounapregunta,estuvecreandolabasededatosporlapartegrficadephpmyadminylaparte
auto_incrementnolaencuentroparaconfigurarla,soynovatoagradezcosucolaboracin.
Anonymous
5April,2015at18:11
Excelentemuchasgracias
Andrs
3April,2015at14:44
Felicidadesporelpost,mehaservido.Miconsultasedebeaquenohevistoquesehayaaplicadolaseguridad
md5quemencionaalprincipioCmosehara?.Agradezcosutiempoyempeo.Uncordialsaludo.
francisco
20March,2015at1:41
estamuybientupost.sinceramenteloqueandobuscandoesquealmomentoquehacesellogueoynoeste
registradoelusuario..enesemomentotedelaopcinderegistrar..eslonicoquelefaltaalpost..osilotiene
porfavorseriastanamabledemostrarmelo!!graciasportodoamigo
daniel
2March,2015at8:04
MUCHASGRACIAS!
MESIRVIOPEROOOOOJOCONELHEADERLOCATION
Androidfastblog@gmail.com
2January,2015at13:38
Holabuenasestoybuscandoquientengalagentilezaparaayudarmeaponerunlonginenmiblogen
wordpress.comnosoypremiumsolopuedocolocarwidgetyhtmlpudieranayudarmeesquealmenosenestono
poseomuchoconocimientoquienseAnima
Derek
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
12/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
11December,2014at21:00
Megustaesexcelente,graciasporcompartirlo!
JulianGonzales
7November,2014at8:46
ComopuedesverenlalineadelHTML,exactamenteenlalineade<?php
include("includes/header.php")?>,sellamaalarchivoheader.php,enlestalalineaqueinvocaelarchivo
CSS,porlotanto,unavezsellameestearchivo,noesnecesarioaadirelCSSencadaarchivo,despusdelas
imgenesencuentraselenlacededescarga.
Danielarmadillo
6November,2014at17:40
Graciasporelexcelenteaporteaprogramarwebc:
Anonymous
5November,2014at19:13
comoseasociaelcssalosdemasarchivos?
Anonymous
29October,2014at12:03
ExcelenteGua.saludos
Leave a Reply
Youremailaddresswillnotbepublished.
Name
Email
Website
CAPTCHACode*
Comment
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
13/14
11/2/2016
GuiaParaCrearUnSistemaDeInicioDeSesinYRegistroUsandoPHPYMySQL|BlogHostdimeColombia
Post Comment
http://blog.hostdime.com.co/guiaparacrearunsistemadeiniciodesesionyregistrousandophpymysql/
14/14