elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15
101  Programación / PHP / [Tutorial] - Login con ajax . Mysql || Php con clases || Ajax en: 29 Junio 2009, 01:23 am
Introduccion : Hola a todos, pues es domingo, y para buena suerte mia [sarcasmo] se quemo la fuente de mi PC, mi Tv no esta operativo, mi movil esta descargando y no tengo dinero ni para ir a ver una buena pelicula (Transformers II - segun los trailers esta buenisima) felizmente nadie esta usando la otra Pc (despechada por mi xD .. y que no corre ni el warcraft III), como ven no tengo nada que hacer, me puse a pensar ... meditar .... y me anime a escribir este pequeño tutorial, la idea es usar clases para trabajar con una BD (todo con php y mysql). Pues manos a la obra.

En esta ocacion haremos un login con ajax. A continuacion los detalles. Base de Datos, crea la BD sistema y en ella ejecutar el siguiente script:

Código
  1. CREATE TABLE `personal` (
  2.  `idpersonal` varchar(8) NOT NULL,
  3.  `nombres` varchar(45) NOT NULL,
  4.  `apellidos` varchar(45) NOT NULL,
  5.  `clave` varchar(45) NOT NULL,
  6.  `fecnac` date NOT NULL,
  7.  `fecreg` date NOT NULL,
  8.  `imagen` text,
  9.  `sexo` char(1) default NULL,
  10.  `estado` char(1) default NULL,
  11.  PRIMARY KEY  (`idpersonal`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  13.  

Insertar registros a discrecion xD

Código
  1. INSERT INTO `personal` VALUES ('41338110', 'Juar Carlos', 'Malca Pereda', 'clave1' ,'1982-02-23', '2009-04-28', NULL, '0', '1');
  2. INSERT INTO `personal` VALUES ('41352619', 'Yessenia Clariza', 'Rodas Correo', 'clave2' , '1989-01-09', '2009-04-28', NULL, '1', '1');
  3. INSERT INTO `personal` VALUES ('42751388', 'Pedro Ricardo', 'Mariano Jimenz', 'clave3' , '1984-12-20', '2009-04-28', NULL, '1', '1');
* En este caso por ser un ejemplo no se usar el md5 (Es recomendable usarlo)

Ahora la estructura de la pagina sera la siguiente:

Citar
   Appserver/
     |--- www/
          |--- web/
          |     |--- ajax/ (Js ^^', alquien se dio cuenta?)
          |     |     |--- home.js (ajax)
          |     |--- clases/ (clases php ^^')
          |     |     |--- mysql.php (clase de conexion)
          |     |     |--- personal.php (clase para personal)
          |     |     |--- ingreso.php (clase funciones)
          |     |--- imagenes/ (imagenes)
          |     |     |--- loader.gif (icono cargando)
          |     |--- index.php (pagina de inicio)
          

Imagen loader.gif

Empezemos con la clase para la conexion:
www/web/clases/mysql.php
Código
  1. <?
  2. //Clase Mysql, se usa para la conexion a la Base de Datos
  3. class Mysql
  4. {
  5. var $conexion;
  6. //inicia conexion con el servidor
  7. function conecta()
  8. {
  9. if(!isset($this->conexion))
  10. {
  11. $ser = "localhost"; //servidor
  12. $usr = "root"; //usuario
  13. $pwd = "root"; //password
  14. $bbd = "sistema"; //base de datos
  15. $this->conexion = (mysql_connect($ser,$usr,$pwd)) or die(mysql_error());
  16. mysql_select_db($bbd,$this->conexion) or die(mysql_error());
  17. }
  18. }
  19.  
  20. //realiza la consulta recepcionada
  21. function consulta($consulta)
  22. {
  23. $resultado = mysql_query($consulta,$this->conexion);
  24. if(!$resultado)
  25. {
  26. echo 'MySql Error: '.mysql_error();
  27. }
  28. return $resultado;
  29. }
  30.  
  31. //devuelve un vector de la consulta
  32. function vector($consulta)
  33. {
  34. return mysql_fetch_array($consulta);  
  35.    }
  36.  
  37. //retorna el numero de registros para la consulta
  38. function filas($consulta)
  39. {
  40. return mysql_num_rows($consulta);  
  41. }  
  42. }
  43. ?>

Clase para verificacion de personal:
www/web/clases/personal.php
Código
  1. <?
  2. class Persona
  3. {
  4. var $p_idpersona;
  5. var $p_nombre;
  6. var $p_apellido;
  7. var $p_persona;
  8. var $p_imagen;
  9. var $p_sexo;
  10. var $p_fecnac;
  11. var $p_estado;
  12. var $p_existe;
  13.  
  14. //function que define si el idpersona existe
  15. function set_idpersona($codigo,$clave)
  16. {
  17. include("mysql.php");
  18. $sql = "select * from personal where idpersonal='$codigo' and clave='$clave'";
  19. $con = new Mysql();
  20. $con->conecta();
  21. $res = $con->consulta($sql);
  22. $num = $con->filas($res);
  23. if($num>0)
  24. {
  25. $row = $con->vector($res);
  26. $this->p_idpersona=$codigo;
  27. $this->p_nombre=$row['nombres'];
  28. $this->p_apellido=$row['apellidos'];
  29. $this->p_imagen=$row['imagen'];
  30. $this->p_sexo=$row['sexo'];
  31. $this->p_estado=$row['estado'];
  32. $this->p_fecnac=$row['fecnac'];
  33. $this->p_persona=$this->p_apellido.', '.$this->p_nombre;
  34. $this->p_existe=1;
  35. }
  36. else
  37. {
  38. $this->p_existe=0;
  39. }
  40. }
  41.  
  42. //Retorna true si el usuario existe, caso contrario false
  43. function get_existe()
  44. {
  45. return $this->p_existe;
  46. }
  47.  
  48. //Retorna el codigo de la persona
  49. function get_idpersona()
  50. {
  51. return $this->p_idpersona;
  52. }
  53.  
  54. //Retorna el nombre de la persona
  55. function get_nombre()
  56. {
  57. return $this->p_nombre;
  58. }
  59.  
  60. //Retorna el apellido de la persona
  61. function get_apellido()
  62. {
  63. return $this->p_apellido;
  64. }
  65.  
  66. //Retorna el sexo de la persona
  67. function get_sexo()
  68. {
  69. return $this->p_sexo;
  70. }
  71.  
  72. //Retorna la imagen de la persona
  73. function get_imagen()
  74. {
  75. return $this->p_imagen;
  76. }
  77.  
  78. //Retorna la fecha de nacimiento de la persona
  79. function get_fecnac()
  80. {
  81. return $this->p_fecnac;
  82. }
  83.  
  84. //Retorna el estado de la persona
  85. function get_estado()
  86. {
  87. return $this->p_estado;
  88. }
  89.  
  90. //Retorna el nombre completo de la persona
  91. function get_persona()
  92. {
  93. return $this->p_persona;
  94. }
  95. }
  96. ?>

Clase para el login, es llamado por la funcion ajax en  ‫javascript:
www/web/clases/ingreso.php
Código
  1. <?
  2. include("persona.php");
  3. $usuario = $_REQUEST['usu'];
  4. $clave = $_REQUEST['pwd'];
  5. $usu = new Persona();
  6. $usu->set_idpersona($usuario,$clave);
  7. $est = $usu->get_existe();
  8. if($est==1){
  9. ?>
  10.  
  11. Llamar a funcion  &#8235;javascript que llame a la pagina principal.
  12. APORTE PARA LA COMUNIDAD FORO.ELHACKER.NET
  13. saludos.
  14.  
  15. <? }else{ ?>
  16.  
  17. Usuario <input type="text" id="usr" name="usr" maxlength="8" /><br>
  18. clave <input type="text" id="pwd" name="pwd" maxlength="25" /><br>
  19. <input type="button" value="Ingresar" onclick="verifica();"/><br><br>
  20. <center>Datos incorrectos</center>
  21.  
  22. <? } ?>

Ajax, se llama desde el index:
www/web/ajax/home.js
Código
  1. //Funcion para ajax
  2. function NewAjax()
  3. {
  4. var xmlhttp=false;
  5. try {
  6. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  7. } catch (e) {
  8. try {
  9. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  10. } catch (E) {
  11. xmlhttp = false;
  12. }
  13. }
  14.  
  15. if (!xmlhttp && typeof XMLHttpRequest!='undefined')
  16. {
  17. xmlhttp = new XMLHttpRequest();
  18. }
  19. return xmlhttp;
  20. }
  21. //Funcion para el login
  22. function verifica()
  23. {
  24. var usu = document.getElementById('usr');
  25.        var pwd = document.getElementById('pwd');
  26. var div = document.getElementById('cuerpo');
  27. var ajax = NewAjax();
  28. ajax.open("POST", 'clases/ingreso.php?usu='+usu.value+'&pwd='+pwd.value,true);
  29. ajax.onreadystatechange=function()
  30. {
  31. if (ajax.readyState==4)
  32. {
  33. var ok = ajax.responseText;
  34. div.innerHTML = ok;
  35. }
  36. else
  37. {
  38. div.innerHTML = "<img src='imagenes/loader.gif'><br><br><font color='#666666'>Autentificando<br>Espere un momento por favor.</font>";
  39. }
  40. }
  41. ajax.send(null);
  42. }

Pagina index, donde se efectura el login
www/web/index.php
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Ingreso : Aporte para foro.elhacker.net</title>
  5. <script src="ajax/home.js" language=" &#8235;javascript" type="text/ &#8235;javascript"></script>
  6. </head>
  7.  
  8. <div id='cuerpo' name='cuerpo'>
  9.  
  10. Usuario <input type="text" id="usr" name="usr" maxlength="8" /><br>
  11. clave <input type="text" id="pwd" name="pwd" maxlength="25" /><br>
  12. <input type="button" value="Ingresar" onclick="verifica();"/>
  13.  
  14. </div>
  15.  
  16. </body>
  17. </html>

Archivo a descargar: Click
El file no contiene la Bd (esta se crea independientemente, ver inicio del hilo)

Sin mas que decirles me despido (en realidad ahora estoy mas aburrido que cuando comence a tipear ^^' ... ), espero que esto le sea util a alquien, como siempre tambien decir: si encuentran algun error no duden en avisarme y lo corrijo.

Cuidense y estamos viendonos pronto.
Hadess_inf
102  Programación / PHP / Pregunta sobre status de usuario. en: 10 Junio 2009, 05:42 am
Este es el esenario, se tiene la BD sistema con la tabla usuario

Tabla usuario
 - usuario char(5)
 - clave char(5)
 - conectado char(1)

CUando un usuario se conecte al sistema el campo "conectado" sera actualizado a 1 y cuando el usuario se desconecte media el boton "cerrar sesion" el campo "conectado" sera actualizado a 0. Hasta ahi todo bien .. todo esta programado y listo .. Se ha tomado en cuenta ese campo porque el sistema debe estar validado de forma que si un usuario ( ejemplo JUAN) este conectado no pueda volverse a conectar.

EL problema viene en que: ¿que sucede si el usuario cerro la ventana sin dar click antes en cerrar sesion? ó ¿QUe pasa si se fue el internet y el usuario no puedo cerrar su sesion? .. todo viene a ese tipo de pregunta ...

¿ Quizas haya algun script que se ejecute en el servidor (mysql) que verifique si en realidad el usuario sigue conectado ? ó ¿SE debe programar una funcion en php que verifique si sigue conectado?

... haber si alquien puede darme una mano con esto. POrque la verdad aun no encuentro una salida ..

PD: Estoy usando php y mysql.
103  Programación / .NET (C#, VB.NET, ASP) / Comunicar USB con lector de huellas digitales con VB2008 en: 7 Mayo 2009, 21:58 pm
Alquien sabe como puedo comunicar la imagen que captura una USB (Lector de huellas digitales) con VB2008. SI alquien tiene alguna infor estare agradecido. Cualquier novedad estare informando para los que tambien requieran algo parecido a esto. UN saludo.

USB con lector de huellas digitales
104  Foros Generales / Sugerencias y dudas sobre el Foro / [SUGERENCIA]-Foro para nuestras mascotas en: 6 Febrero 2009, 20:54 pm
Sugiero un subforo para hablar de ellos .. "nuestras mascotas" .. las que nos dan un momento de paz y tranquilidad en nuestro hogar .. xD .. haber si esto es posible. Asi subiriamos fotos, dariamos tips .. y aprenderiamos a enseñarles a que se hagan los muertos .. haber que opinan.
105  Programación / PHP / [SOLUCIONADO] - Ayuda con array_merge y number_format en: 19 Enero 2009, 17:47 pm
Hola a todos, he seguido este tuto paraconvertir de php a pdf. Este es parte del codigo ya modificado para mi caso.

Código
  1. include "conexion.php";
  2. include "funciones.php";
  3. require_once('class.ezpdf.php');
  4. $pdf =& new Cezpdf('a4');
  5. $pdf->selectFont('../fonts/courier.afm');
  6. $pdf->ezSetCmMargins(1,1,1.5,1.5);
  7.  
  8. $sql = "select producto, precio from producto";
  9. $res = mysql_query($sql);
  10. $num = mysql_num_rows($res);
  11.  
  12. $ixx = 0;
  13. while($datatmp = mysql_fetch_assoc($res)) {
  14. $ixx = $ixx+1;
  15.    $data[] = array_merge($datatmp, array('num'=>$ixx));
  16. }
  17.  
  18. $titles = array(
  19.    'producto'=>'<b>producto</b>',
  20.    'precio'=>'<b>Precio</b>'
  21. );
  22.  
  23. $options = array(
  24. 'shaded'=>0,
  25. 'fontSize'=> 8,
  26. 'showLines'=>2,
  27.    'xOrientation'=>'center',
  28.    'width'=>550,
  29. );
  30.  
  31. $txttit = "<b>relacion</b>\n";
  32. $pdf->ezText($txttit, 12);
  33. $pdf->ezTable($data, $titles, '', $options);
  34. $pdf->ezText("\n\n\n", 10);
  35. $pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
  36. $pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
  37. $pdf->ezStream();

Pues la duda es la siguiente, el precio del producto me lo muestra con el fomato intero(120), sin embargo yo quiero mostrarlo con formato decimal de 2 cifras (usando la funcion number_format)(120.00), pero no se como hacerlo, haber si alquien me hecha una mano pues aun no entiendo muy bien el funcionamiento de este script. Un saludo.

Este es el link del archivo que usa el script.
106  Programación / .NET (C#, VB.NET, ASP) / MOVIDO: Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access en: 15 Enero 2009, 16:59 pm
El tema ha sido movido a Programación VB.

http://foro.elhacker.net/index.php?topic=241734.0
107  Programación / PHP / Idioma en URL o en Variable de Session ¡? en: 7 Enero 2009, 20:23 pm
Hola a todos pues tengo una pequeña duda, para trabajar con paginas multilenguaje me decidi a trabajar creando una plantilla por idioma (lang_es.php, lang_en.php, lang_rs.php, etc) hasta ahi todo bien, el problema surge en lo siguiente:

Si quiero trabajar con cualquiera de los lenguajes tengo que enviar el idioma en cuestion por la barra de direcciones, el problema viene que tendria que hacerlo en todas las paginas que tenga, por ejemplo:

- index.php?lang=ES
- compra.php?lang=ES
- detalle.php?lang=ES

Y asi con tooooodas las paginas. La pregunta es la siguiente, es conveniente hacer eso o mejoraria si lo trabajara con una session con el idioma, de ese modo ya no tendria la necesidad de mostrar el lenguaje en el URL. Un saludo.
108  Programación / .NET (C#, VB.NET, ASP) / ¿COmo? - Ecitar matar proceso y mostrar programa oculto con combinacion de tecla en: 14 Noviembre 2008, 22:07 pm
Hola a todos, pues resulta que he terminado de programar una pequeña aplicacion que me permitira controlar un rango de ips para un centro de computo, solo hacen falta dos cosas, la primera es que no deseo que el proceso de mi exe pueda ser terminado desde el administrador de tareas, es decir que sea imposible matar el proceso, y segundo que pueda mostrar el programa con una combinacion de teclas, algo asi como el deep freezer, si alquien sabe algo que lo comente. Un saludo.

1) Evitar que mio programa se pueda matar desde el administrador de tareas.
2) Mostrar la ventana del programa con conbinacion de teclas (parecido al deep freezer).

Un saludo.
109  Programación / PHP / Encontrar falla de seguridad. [Incentivo Incluido] en: 5 Noviembre 2008, 16:55 pm
Hola a todos pues, acabo de subir un portal al internet y queria saber que tan seguro es puesto que es mi primer trabajo en PHP, agradeceria a quien me ayuda a testearlo, y para que los interesados le dediquen tiempo les ofresco un pequeño incentivo economico, lo que pido es lo siguiente:

- Encontrar un BUG para la pagina.
- Dar la solucion al respectivo BUG.
- Una imagen con el fallo de seguridad y acceso a la pagina.

Aunque estoy matandome intentando ver posibles fallas, siempre es bueno tener apoyo. xD. Pedir ademas que en el caso que se acceda a la pagina no se registren groserias o cosas por el estilo, agradezco el apoyo y aqui dejo la pagina.
Un saludo y espero sus comentarios.

PD: EL incentivo sera entregado a quien encuentre el primer BUG o tenga la mayor cantidad de BUGs encontrados. Fecha termino: Sabado 8 de este mes.
PD: Sobre el incentivo, es mayor a 10 dlr y menor a 20 dlr.

110  Programación / PHP / Auto ajustar el color a tipos de variables, metodos,etc... en: 5 Noviembre 2008, 00:22 am
Hola a todos pues quisiera saber como hacer para que cuando se escriba un codigo determinado de un lenguaje de programacion determinado, se auto ajusten los colores de las instruccions y/o clases y/o funciones, etc del mismo. Por ejemplo en este foro cuando queremos escribir un codigo php escribimos asi:

$res = mysql_query($sql);

Sin embargo si seleccionamos el codigo de nuestro lenguage y seleccionamos del combo el lenguaje deseado, el color para las funciones del lenguage elegido cambiaran de color automaticamente:

Código
  1. $res = mysql_query($sql);

No se si se entiende pero esa es la idea. Quisiera saber si alquien sabe como puedo hacer eso para aplicarlo a una web. Aqui otro ejemplo pero con VB Net

Sin seleccion del combo
Dim a as String
a = "Esto es una prueba"
msgbox(a.substring(0,2))

Con seleccion del combo
Código
  1. Dim a as String
  2. a = "Esto es una prueba"
  3. msgbox(a.substring(0,2))

Aclaracion: Claro esta que yo no le he dado formato ni color en ninguno de ambos casos.

Gracias desde ya.
Un saludo.
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines