Base de datos (baneo - name - pass) + registro + chat + redi
Working locally, you can insert more tables such as level, gp, cash, gold, avatar, photo among other things, these files do not include facebook sdk, you can ban if you want, you are working on what is the Sdk + Files, attentive, thanks
archivos:
http://ya.mba/Ev
ejemplo:
http://ya.mba/Eu
credits:
JuLiAnChz
Code:
Que crearemos Crearemos un sencillo chat, crearemos un inicio de sesion y un registro de usuarios para ponerlo mas interesante, tambien crearemos un rango ( Admin ), un sistema de baneo, un sistema de publicar un mensaje de bienvenida, otorgar privilegios a un usuario ( convertirlo en admin ).El chat estará situado con un iframe, es algo obsoleto pero te servirá para que aprendas mucho. Tambien detectaremos si el usuario esta conectado o desconectado, esto lo interpretaremos con 1 y 0, 1 = Online y 0 = Offline. Que necesitamos Necesitamos un interpretador de php ( Apache ) y conocimientos basicos de programación. Y si se te facilita un editor de texto avanzado como notepad++, netbeans 7.0, etc. Bueno manos a la obra !! Primero que todo aclaro algo si tienes Xampp, debes crear los archivos .php dentro de la carpeta htdocs, si usas appserv guardas los ficheros en la carpeta www para que puedan ser publicados y vistos en la dirección httplocalhost. creamos un archivo llamado index.php, este inicio tendra un formulario de registro en html aquí está index.php html head titleRegistrotitle head body h1Bienvenidoh1 form method=POST action=regis_user.php br Nombrebr input type=text name=nombre size=20 br Apellidos br input type=text name=apellidos size=20 br Login br input type=text name=login size=20 br Password br input type=password name=pass1 size=20 br Re-Password br input type=password name=pass2 size=20 br Email br input type=text name=email size=20 br input type=submit value=Enviar br form labela href=login.phpYa estas registradoalabel Como ven este formulario se esta dirigiendo a un archivo llamado regis_user.php, este archivo se encargara de inyectar al usuario a la base de datos. PERO QUE ..... NO HEMOS CREADO LA BASE DE DATOS!!, sencillo en tu phpmyadmin crea una base de datos llamada sistemas y en sql inserta el siguiente código CREATE TABLE `bienvenida` ( `mensaje` varchar(400) NOT NULL ) ENGINE=Aria DEFAULT CHARSET=utf8; CREATE TABLE `mensajes` ( `id` int(2) NOT NULL auto_increment, `alias` varchar(20) NOT NULL, `mensaje` varchar(120) NOT NULL, `ip` varchar(20) NOT NULL, `fecha` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ; CREATE TABLE `usuarios` ( `id` int(4) NOT NULL auto_increment, `nombre` text, `apellidos` text, `login` varchar(40) NOT NULL, `password` varchar(80) NOT NULL, `email` text, `estado` int(11) NOT NULL default '0', `banned` int(11) NOT NULL default '0', `rango` int(11) NOT NULL default '0', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; Perfecto!!! ahora si podremos continuar con nuestro chat, en que íbamos...... ah si regis_user.php este se encargara de inyectar en la base de datos los datos puestos por el usuario en el formulario anterior. el codigo de este archivo es el siguiente regis_user.php php include(config.php); $nombre = htmlspecialchars(trim($_POST['nombre'])); $apell = htmlspecialchars(trim($_POST['apellidos'])); $login = htmlspecialchars(trim($_POST['login'])); $pass1 = trim($_POST['pass1']); $pass2 = trim($_POST['pass2']); $email = htmlspecialchars(trim($_POST['email'])); $link = mysql_connect($datos[0],$datos[1],$datos[2]); $query = sprintf(SELECT login FROM usuarios WHERE usuarios.login='%s', mysql_real_escape_string($login)); $result = mysql_db_query($datos[3],$query,$link); if(mysql_num_rows($result)){ echo usuario ya existente, porfavor intentalo de nuevo.; } else { mysql_free_result($result); if($pass1 != $pass2){ echo Los passwords deben coincidir, por favor intentalo de nuevo.; } else { $pass1 = sha1(md5($pass1)); $query = sprintf(INSERT INTO usuarios (nombre, apellidos, login, password, email) VALUES ('%s','%s','%s','%s','%s'), mysql_real_escape_string($nombre) , mysql_real_escape_string($apell), mysql_real_escape_string($login) , mysql_real_escape_string($pass1), mysql_real_escape_string($email)); $result = mysql_db_query($datos[3],$query,$link); if(mysql_affected_rows()){ echo usuario introducido correctamente.br; echo a href='login.php'Iniciar Sesióna; } else { echo Error introduciendo el usuario; } } } Pero como ven estamos incluyendo un archivo llamado config.php este se encarga de la contraseña, el nombre de usuario y el nombre de la base de datos, el codigo es el siguiente config.php php $datos = array('0' = 'localhost', '1' = 'root', '2' = 'password', '3' = 'sistemas'); Bien ahora creamos el archivo que permitira que si una persona ya esta registrada pueda ingresar al chat, llamaremos este archivo login.php y el codigo será el siguiente. login.php php session_start(); if(isset($SESSION)){ header(Locationusuarios.php); } else { h1Identificacionh1 form action=inicio_sesion.php method=post login br input type=text name=login br Password br input type=password name=pass br input type=submit value=Ingresar form labela href=index.phpDeseas registrartealabel php } Bien anteriormente en login.php vemos que es un formulario de ingreso pero tenemos un condicional (if) este lo que hace es verificar si la persona que ingrese a esta seccion esta logeada o no, si lo esta lo mandara a la zona de usuarios y si no lo esta pedira que por favor se identifique. Bien ahora crearemos otro archivo llamado inicio_sesion.php este lo que hará es verificar si el usuario esta registrado en la base de datos y si lo esta su sesion estara iniciada, el codigo de este archivo es inicio_sesion.php php session_start(); include(config.php); $login = htmlspecialchars(trim($_POST['login'])); $pass = sha1(md5(trim($_POST['pass']))); $link = mysql_connect($datos[0],$datos[1],$datos[2]); $query = sprintf(SELECT nombre,apellidos,login,password,email FROM usuarios WHERE login='%s'and password='%s', mysql_real_escape_string($login), mysql_real_escape_string($pass)); $result = mysql_db_query($datos[3],$query,$link); if(mysql_num_rows($result)){ $array = mysql_fetch_array($result); $_SESSION[login] = $array[login]; $_SESSION[nombre] = $array[nombre]; $_SESSION[apellidos] = $array[apellidos]; $_SESSION[email] = $array[email]; header(Locationuser.php); } else { echo Login o password incorrectos.; } Ahora crearemos la pagina principal que contendrá todo, esta pagina la llamo user.php esta pagina tendra todo el chat y si es administrador un pequeño panel administrativo,, tambien enviara a la base de datos un 1 para indicar que el usuario esta conectado. El código de este archivo es user.php php session_start(); include(config.php); mysql_connect($datos[0],$datos[1],$datos[2]); mysql_select_db($datos[3]); $bd = SELECT banned FROM usuarios WHERE login='.$_SESSION['login'].'; $rank = SELECT rango FROM usuarios WHERE login='.$_SESSION['login'].'; $res = mysql_query($rank); $rango = mysql_fetch_array($res); $result = mysql_query($bd); $ban = mysql_fetch_array($result); if($ban[banned] == 0){ if(!isset($_SESSION)){ header(Locationlogin.php); } else { echo ; echo h1Pagina Principalh1; echo Bienvenido a la zona de usuarios strong; echo $_SESSION[nombre]. .$_SESSION[apellidos].br; echo strong Has ingresado con el nick strong ; echo $_SESSION[login]; echo strongbr; echo a href='logout.php'Cerrar Sesiona; echo ; } $sql = UPDATE usuarios SET estado=1 WHERE login='.$_SESSION['login'].'; mysql_query($sql); titleBienvenidotitle table width=400 border=0 align=center cellpadding=0 cellspacing=0 tr td width=400iframe src=mensajes.php width=700 height=300 scrolling=noiframetd tr tr td align=centerform id=form1 name=form1 method=post action=ejecutar.php labellabel labellabel table width=100% border=0 cellspacing=0 cellpadding=0 tr td label php $alias = $_SESSION['login']; echo $alias. dice ; labeltd td bgcolor=#FFFFFFMensajebr script contenido_textarea = num_caracteres_permitidos = 100 function valida_longitud(){ num_caracteres = document.forms[0].mensaje.value.length if (num_caracteres num_caracteres_permitidos){ document.forms[0].mensaje.value = contenido_textarea }else{ contenido_textarea = document.forms[0].mensaje.value } if (num_caracteres = num_caracteres_permitidos){ document.forms[0].caracteres.style.color=#ff0000; }else{ document.forms[0].caracteres.style.color=#000000; } cuenta() } function cuenta(){ document.forms[0].caracteres.value=document.forms[0].mensaje.value.length } script textarea name=mensaje cols=40 rows=5 onKeyDown=valida_longitud() onKeyUp=valida_longitud()textarea br input type=text name=caracteres size=4br input type=submit name=submit value=Enviar td tr table formtd tr table php if($rango['rango'] = 5){ echo Panel Administrativo.br; echo Que deseas realizarbr; iRecuerda escribir todo con exactitud.bri form method=post select name=sel option selectedElejiroption optionBanear una cuentaoption optionDar rangooption optionCambiar mensaje de bienvenidaoption selectbr Nick input type=text name=nick size=10br Valor input type=text name=valor size=10br input type=submit value=Realizarbr php $nick = $_POST['nick']; $valor = $_POST['valor']; $sel = $_POST['sel']; switch($sel){ case(Banear una cuenta) $sql = UPDATE usuarios SET banned='.$valor.' WHERE login='.$nick.'; mysql_query($sql); echo El usuario .$nick. ah sido baneado con exito.; break; case(Dar rango) $sql = UPDATE usuarios SET rango='.$valor.' WHERE login='.$nick.'; mysql_query($sql); echo El usuario .$nick. se le ah asignado nivel .$valor; break; case(Cambiar mensaje de bienvenida) $sql = UPDATE bienvenida SET mensaje='.$valor.'; mysql_query($sql); echo Mensaje de bienvenida cambiado a font color='green'.$valor.font.; break; default echo Selecciona porfavor; } echo form; } php }else{ echo La cuenta ah sido baneada por motivos de seguridad.a href='index.php'Regresara; } Ahora creamos otro archivo llamado ejecutar.php este se encarga de recibir los mensajes que los usuarios envien y guardarlos en una base de datos eh aquí el código ejecutar.php php session_start(); $mensaje=$_POST['mensaje']; $alias = $_SESSION['login']; $ip=$_SERVER['REMOTE_ADDR']; $fecha=date(H-i-s); if($alias!= and $mensaje!=) { mysql_connect(localhost,root,28927420); mysql_select_db(sistemas); mysql_query(insert into mensajes(alias,mensaje,ip,fecha) values('$alias','$mensaje','$ip','$fecha')); $conteo=mysql_query(select count() from mensajes group by fecha); $primero=mysql_query(select min(id) from mensajes); $repri=mysql_result($primero,0); $registros=mysql_num_rows($conteo); if($registros15) { mysql_query(delete from mensajes where id=$repri); } } header(Locationuser.php); Ahora crearemos un archivo que se llame mensajes.php este se encarga de llamar de la base de datos los mensajes que los usuarios envían y los imprime. el código aquí mensajes.php php session_start(); include(config.php); mysql_connect($datos[0],$datos[1],$datos[2]); mysql_select_db($datos[3]); header('refresh2; url=mensajes.php'); link href=estilo.css rel=stylesheet type=textcss style type=textcss !-- body { background-color #CDC1C5; } -- styletable width=202 border=0 cellspacing=0 cellpadding=0 Sala principal... php $sql = SELECT FROM bienvenida; $query = mysql_query($sql); $bnv = mysql_fetch_array($query); echo font color='red'.$bnv[0]. FONT--font color='green' .$_SESSION['login'].font; hr tr td width=202 php $rank = SELECT rango FROM usuarios WHERE login='.$_SESSION['login'].'; $res = mysql_query($rank); $rango = mysql_fetch_array($res); $re=mysql_query(select from mensajes order by id desc); while($f=mysql_fetch_array($re)){ echo scpan class='fecha'span.$f['fecha']. span class='usuario'.$f['alias'].span span class='mensaje'.htmlentities($f['mensaje']).spanbr; } td tr table Le daré un poquito de diseño con css, la verdad soy muy malo cuando se trata de diseño asi que por eso es algo muy sencillo el archivo css se llamara estilo.css y su código es estilo.css .fecha { font-family Arial, Helvetica, sans-serif; font-size 10px; color #000000; } .mensaje { font-family Arial, Helvetica, sans-serif; font-size 11px; color #000000; } .usuario { font-family Arial,Helvetica, sans-serif; font-size 11px; color #000000; font-weight bold; } .fechagm { font-family Arial, Helvetica, sans-serif; font-size 10px; color #FF0000; } .mensajegm { font-family Arial, Helvetica, sans-serif; font-size 11px; color orange; } .usuariogm { font-family Arial,Helvetica, sans-serif; font-size 11px; color #3D9140; font-weight bold; } Bien ahora para terminar crearemos el ultimo archivo y es el que hará que el usuario destruya su sesion y mande a la base de datos que esta desconectado(0 = offline), este archivo lo llamo logout.php y su código es logout.php php session_start(); if(!isset($_SESSION)){ header(Locationlogin.php); } else { include(config.php); mysql_connect($datos[0],$datos[1],$datos[2]); $db = mysql_select_db($datos[3]); $sql = UPDATE usuarios SET estado=0 WHERE login='.$_SESSION['login'].'; mysql_query($sql); session_unset(); session_destroy(); echo centerLa sesion ah sido cerrada con exito, si deseas identificarte entra a href='login.php'AQUIa; echo center; }
Last edited by Ale (2017-05-07 02:09:11)