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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Tutorial: Crear area restringida con php en nuestra web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Tutorial: Crear area restringida con php en nuestra web  (Leído 23,717 veces)
Yeshua


Desconectado Desconectado

Mensajes: 373


Continuamente aprendiendo


Ver Perfil
Tutorial: Crear area restringida con php en nuestra web
« en: 2 Octubre 2008, 02:21 am »

Crear  área restringida con php en nuestra web.

Hola, ¿Cómo están? Aquí les dejo una forma sencilla de crear un area de nuestra web restringida con usuario y password hacia una página personal de nuestro usuario. Este tuto lo hago despues de pasar lo mio para llegar a este fin, a si que espero que les sirva.

Antes de nada debo decir que para realizar una web en php es necesario tener algún interprete de éste para poder ejecutarlo.

Materiales a utilizar:
- bloc de notas
- interprete de php (en mi caso AppServ  con php5)

Archivos a utilizar:
-página de ingreso: (en nuestro ejemplo se llamará ingreso.php) ingreso.php
-página de control: (donde se verifica si el user y password están restringidos) control.php
-página privada: (area restringida personal para nuestro usuario) user1.php// user2.php// user3.php


 Para seguridad ingresaremos un par de códigos en las páginas que a continuación explicaré y tomaremos algunas precauciones más.


Es hora de comenzar, guardaremos este formulario de inscripción en un bloc de notas o lo insertaremos  en la página de inicio que nosotros queramos, ojo, siempre con la extensión .php (en este caso ingreso.php):

Código
  1. <html>
  2. <head>
  3. <title>Acceso Restringido</title>
  4. </head>
  5. <body>
  6. <h1>Autentifíquese</h1>
  7. <form action="control.php" method="POST">
  8. <table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
  9. <tr>
  10. <td colspan="2" align="center"
  11. <?if ($_GET["errorusuario"]=="si"){?>
  12. bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
  13. <?}else{?>
  14. bgcolor=#cccccc>Introduce tu clave de acceso
  15. <?}?></td>
  16. </tr>
  17. <tr>
  18. <td align="right">USER:</td>
  19. <td><input type="Text" name="usuario" size="8" maxlength="50"></td>
  20. </tr>
  21. <tr>
  22. <td align="right">PASSWD:</td>
  23. <td><input type="password" name="contraseña" size="8" maxlength="50"></td>
  24. </tr>
  25. <tr>
  26. <td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
  27. </tr>
  28. </table>
  29. </form>
  30. </body>
  31. </html>
  32.  

Bien, ahora abrimos otro bloc de notas e insertaremos el siguiente código para validar los usuarios que estén registrados y mandarlos a su página privada.

Código
  1. <?
  2. //vemos si el usuario y contraseña es váildo
  3. if ($_POST["usuario"]=="user1" && $_POST["contraseña"]=="xxxx"){
  4.    //usuario y contraseña válidos
  5.    //defino una sesion y guardo datos
  6.    session_start();
  7.    $_SESSION["autentificado"]= "SI";
  8.    header ("Location: user1.php");
  9. }else {
  10.    //si no existe le mando otra vez a la portada
  11.    header("Location: ingreso.php?errorusuario=si");
  12.  
  13. if ($_POST["usuario"]=="user2" && $_POST["contraseña"]=="asdfg"){
  14.    //usuario y contraseña válidos
  15.    //defino una sesion y guardo datos
  16.    session_start();
  17.    $_SESSION["autentificado"]= "SI";
  18.    header ("Location: user2.php");
  19.  
  20. }else {
  21.    //si no existe le mando otra vez a la portada
  22.    header("Location: ingreso.php?errorusuario=si");
  23.  
  24. if ($_POST["usuario"]=="user3" && $_POST["contraseña"]=="pepe69"){
  25.    //usuario y contraseña válidos
  26.    //defino una sesion y guardo datos
  27.    session_start();
  28.    $_SESSION["autentificado"]= "SI";
  29.    header ("Location: user3.php");
  30.  
  31. }else {
  32.    //si no existe le mando otra vez a la portada
  33.    header("Location: ingreso.php?errorusuario=si");
  34. }
  35. }
  36. }
  37. ?>
  38.  

Pues bien, ya estamos finalizando. Abrimos otro bloc de notas, o bien seleccionamos la web que tengamos creada de nuestro  user1.php //  user2.php  //  user3.php e inserteremos el siguiente código:

Código
  1. <?php
  2. if(!($_SERVER["HTTP_REFERER"]==" ingreso.php")){
  3. echo "No puedes entrar, debes registrarte";
  4. exit();
  5. }
  6. ?>
  7. <html >
  8. <head>
  9. <META NAME = "ROBOTS" CONTENT = "NOARCHIVE">
  10. <title>USER1</title>
  11. </head>
  12. <body>
  13. Estas autentificado, este es tu espacio personal.
  14. <a href="salida.php" target="_top">Salir de forma segura</a>  
  15. </body>
  16. </html>
  17.  

<?php
if(!($_SERVER["HTTP_REFERER"]=="ingreso.php" )){
echo "No puedes entrar, debes registrarte";
exit();
}
?>

 El código éste, el que se situa al inicio del todo de la web sirve para que nadie pueda acceder a la zona restringida sin poner en la pagina ingreso.php los datos.


Asegurense de no dejar espacio entre el  código de php y el <html>
Fijense en esta etiqueta: <META NAME = "ROBOTS" CONTENT = "NOARCHIVE">
Esto evita que la web sea registrada por los motores de búsqueda de tipo google.  Aumentando algo más la seguridad.
Con este propósito, y con el fin de que no puedan acceder a el sitio donde tengamos ubicadas las páginas privadas (o mejor dicho que se les complique más) es introducir un archivo index.html  en blanco en la carpeta que queramos ocultar.

Esto fue todo, creo que esto tiene suficiente seguridad (a no ser que vayamos a albergar cuentas de crédito o cosas así, jaja) como para poder proteger  un área (si estoy equivocado por favor díganmelo, no soy un experto pero creo que esto para mis necesidades me sobra). Claro que es mucho mejor con bases de datos, este será mi próximo objetivo.

Saludos y díganme si les gustó, si tiene algún error, si no les funciona(a mi me va perfecto), etc.

--permito su publicación otro sitio siempre que se cite la fuente o autor.

PD: Este tuto ha sido elaborado completamente por mi, los codigos los he cogido de algunas web´s que no cito porque ni recuerdo cuantas miré para hacer lo que era mi proposito, por lo que en gran medida tube que ingeniarmelas para sin saber casi nada de php adaptarlo a mi caso. No creo que esto viole nada contra la propiedad o derechos de autor, si es así. diganmelo.


« Última modificación: 2 Octubre 2008, 03:17 am por Yeshua » En línea


Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #1 en: 2 Octubre 2008, 03:08 am »

Hola que tal. Resulta que hace poco que empece a ver esto de la seguridad en PHP, no soy un experto pero en fin. QUisiera preguntarte algo, con respecto a esto:

Por que creas esta variable si no veo que la uses en el bloque de codigo siguiente:

Código
  1. $_SESSION["autentificado"]= "SI";

Especificamente que es lo que hace esa linea de codigo.

Código
  1. if(!($_SERVER["HTTP_REFERER"]=="ingreso.php" )){

Gracias por tu tiempo y tu futura respuesta.
xD


En línea

Yeshua


Desconectado Desconectado

Mensajes: 373


Continuamente aprendiendo


Ver Perfil
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #2 en: 2 Octubre 2008, 03:29 am »

Hola, yo he de decir que tampoco soy un experto y que estoy empezando con esto, para sacarlo fue casi mediante el modo de prueba y error jeje.

respecto a esto
Código
  1. $_SESSION["autentificado"]= "SI";

Tienes razón, no es necesaria, lo he probado y por supuesto, se puede prescindir de ella.

El otro código:
Código
  1. if(!($_SERVER["HTTP_REFERER"]=="ingreso.php" )){

Hace que sea necesario y obligatorio acceder desde ingreso.php a user1.php, sino es así aparece en la pagina lo que tenemos establecido, algo asi como, para acceder debe registrarse. Y si le das a ver código fuente, no aparecerá código, claro. Tan solo esta frase.

Saludos y no os preocupeis por cansinearme que así aprendemos todos:p
En línea


NaSaRiD15


Desconectado Desconectado

Mensajes: 348


PEÑAROL


Ver Perfil
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #3 en: 2 Octubre 2008, 03:56 am »

Una pregunta, yo tmb estoy novato y me interesa esto, asi que bueno vamos a ver, la duda es esta :

if ($_POST["usuario"]=="user3" && $_POST["contraseña"]=="pepe69"){     //usuario y contraseña válidos     //defino una sesion y guardo datos     session_start();     $_SESSION["autentificado"]= "SI";     header ("Location: user3.php");  }else {     //si no existe le mando otra vez a la portada     header("Location: ingreso.php?errorusuario=si");

Para cada usuario que creas se necesita esto?, no tenes base de datos? donde registras a los nuevos usuarios?.. o lo haces asi, mediante script, cada usuario que queres agregar, lo haces de este modo?..

Saludos y gracias, si es asi, creo que una base de datos le daria mucha mas flexibilidad.

Gracias por todo.
En línea

Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #4 en: 2 Octubre 2008, 04:09 am »

Hola ya que estamos hablando del tema. SUpongo que NaSaRiD15 menciono ese ejemplo puesto que solo fue eso "...un ejemplo..." Claro esta que el login se hace con el acceso a una base de datos y todo eso. Volviendo al tema, me parece interesante el script, puesto que como tú mencionas, hace necesario que para acceder a una pagina restringida tengas que pasar por una pagina oculta (php) con codigo capaz de reconocer si es el usuario correcto y/o tiene los permisos necesarios para esto.

Dime este codigo tiene alguna contraparte ¡?
« Última modificación: 2 Octubre 2008, 04:11 am por hadess_inf » En línea

NaSaRiD15


Desconectado Desconectado

Mensajes: 348


PEÑAROL


Ver Perfil
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #5 en: 2 Octubre 2008, 04:15 am »

Buenas hadess_inf , en realidad creo que el no utiliza base de datos, al menos en ninguna parte del codigo vi que se conectara a la misma, crea los usuarios en el script mismo, me parece, en realidad no se bien, pero estoy casi convencido que si.

Espero alguien pueda responderme esto rapido porque me genero la duda, gracias por todo.
En línea

Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #6 en: 2 Octubre 2008, 04:28 am »

Bueno pues si, no se vio lo que mencionas puesto que yo creo que solo fue algo didactico, para establecer la conexion se haria en 2 paginas. Por ejemplo:

Pagina uno: index.html
Código
  1. <form name='f1' method='post' action='verifica.php'>
  2. usuario: <input type='text' name='t1' size='10'>
  3. clave : <input type='password' name='t2' size='10'>
  4. <input type='submit' value='ingreso'>
  5. </form>
  6. </body>
  7. </html>

CLaro que antes has de haber creado conexion.php con la conexion (valga la redundancia)
Pagina dos: verifica.php
Código
  1. <?
  2. include_once "conexion.php";
  3. $usu = $_post['t1'];
  4. $cla = $_post['t2'];
  5. //aqui codigo para evitar el SQL INYECTION o como se escriba xD
  6. $sql = "select * from usuario where idusuario='$usu' and clave='$cla'";
  7. $res = mysql_query($sql);
  8. if(mysql_num_rows($res)==1)
  9. {
  10. $_session['ingreso']=true;
  11. header("location:micuenta.php");
  12. }
  13. else
  14. {header("location:index.html");}
  15. ?>

Seria algo asi creo: xD
Ahora segun el ejemplo para poder acceder a una pagina restringida seria algo asi:

Código
  1. if(!($_SERVER["HTTP_REFERER"]=="verifica.php" )){

Pero ahora que lo pienso bien esto tendria algunas complicaciones. Porque siempre tendria que pasar por verifica para poder acceder a esa cuenta, ahora quizas se pueda cambiar el verifica.php por un valida.php, esta nueva pagina valida.php podria validar si el usuario esta activo o no.

valida.php
Código
  1. <?
  2. if(isset($_session['ingreso']))
  3. {
  4. header("location:micuenta.php");
  5. }
  6. ?>

Que alquien me corriga si me equivoco en algo.
Saludos.
En línea

NaSaRiD15


Desconectado Desconectado

Mensajes: 348


PEÑAROL


Ver Perfil
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #7 en: 2 Octubre 2008, 04:31 am »

Yo se que es a modo de enseñar, solo queria decir que el crear los usuarios en el mismo script no es an flexible ni bueno como crearlos en una base de datos mysql, por ejemplo. simplemente eso.

Saludos y gracias por tu code, ahora lo miro bien y cualquier cosa te digo.
En línea

Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #8 en: 2 Octubre 2008, 06:16 am »

Hice un pequeño script bién básico para ver si es esto lo que necesitas.
Te puedes registrar y cuando ingresas con tu user y pass tienes un contenido personalizado.

Demo: http://lab.jccharry.com/seguridad_web_doc/web.php

Código
  1. <?php
  2. /*
  3. Codeado por WHK para NaSaRiD15
  4. */
  5.  
  6. /* Configuraciones del php --------------------------------- */
  7. error_reporting(0); // Evita fuga de información
  8. set_magic_quotes_runtime(0); // Evita las adiciones de slashses que aplica apache en las Request URI
  9. /* ---------------------------------------------------------- */
  10.  
  11. /* Datos de la base de datos -------------------------------- */
  12. $servidor_bd = '127.0.0.1';
  13. $basededatos = 'nasarid';
  14. $usuario_bd  = 'nasarid';
  15. $pass_bd = 'pass';
  16. /* ---------------------------------------------------------- */
  17.  
  18. /* Conectamos a la base de datos ---------------------------- */
  19. if(!$conectar_sql = mysql_pconnect($servidor_bd, $usuario_bd, $pass_bd)){
  20. $error_critico = "No se puede conectar a la base de datos";
  21. }else{
  22. if(!mysql_select_db($basededatos,$conectar_sql)){
  23.  $error_critico = "No existe la base de datos seleccionada";
  24. }
  25. }
  26. /* ---------------------------------------------------------- */
  27.  
  28. verifica_error_db($error_critico);
  29. $registro = verifica_registrar();
  30. verifica_login();
  31.  
  32. /* ---------------------------------------------------------- */
  33.  
  34. /* Página principal ----------------------------------------- */
  35. if(logueado()){
  36. if(!contenido_usuario_logueado()){
  37.  contenido_error();
  38. }
  39. exit(0);
  40. }else{
  41. contenido_general();
  42. exit(0);
  43. }
  44. /* ---------------------------------------------------------- */
  45.  
  46.  
  47. /* Funciones ================================================ */
  48. function verifica_login(){
  49. /* Verifica si fue enviado el formulario de logueo */
  50. if($_POST['user_login'] and $_POST['pass_login']){
  51.  setcookie('user_login', base64_encode($_POST['user_login']));
  52.  setcookie('pass_login', md5($_POST['pass_login']));
  53.  header("Estado: Redireccionando para su validacion...");
  54.  header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  55.  exit(0);
  56. }
  57. }
  58.  
  59. function verifica_error_db($error_critico){
  60. /* Verifica errores de conexión  */
  61. if($error_critico){
  62.  mysql_close(); // Cierra la conexión MySQL
  63.  echo "<html><b>Error: </b>$error_critico<br></html>"; // Escribe el error
  64.  exit(1); // Escapa del script
  65. }
  66. }
  67.  
  68. function logueado(){
  69. if($_COOKIE['user_login'] and $_COOKIE['pass_login']){
  70.  global $conectar_sql;
  71.  $sql = "
  72.   SELECT `pass` FROM `usuarios`
  73.   WHERE `user`
  74.   LIKE CONVERT(_utf8 '".mysql_real_escape_string($_COOKIE['user_login'])."' USING latin1)
  75.   COLLATE latin1_swedish_ci
  76.   LIMIT 1;
  77.  ";
  78.  if(!$peticion = mysql_query($sql,$conectar_sql)){
  79.   return false;
  80.  }else{
  81.   $columna = mysql_fetch_row($peticion);
  82.   mysql_free_result($peticion);
  83.   if(!$columna[0]){
  84.    return false;
  85.   }
  86.   if($_COOKIE['pass_login'] == $columna[0]){
  87.    return true;
  88.   }else{
  89.    return false;
  90.   }
  91.  }
  92. }else{
  93.  return false;
  94. }
  95. }
  96.  
  97. function contenido_usuario_logueado(){
  98. global $conectar_sql;
  99. $sql = "
  100.  SELECT `contenido` FROM `usuarios`
  101.  WHERE `user`
  102.  LIKE CONVERT(_utf8 '".mysql_real_escape_string($_COOKIE['user_login'])."' USING latin1)
  103.  COLLATE latin1_swedish_ci
  104.  LIMIT 1;
  105. ";
  106. if(!$peticion = mysql_query($sql,$conectar_sql)){
  107.  return false;
  108. }else{
  109.  $columna = mysql_fetch_row($peticion);
  110.  mysql_free_result($peticion);
  111.  echo $columna[0];
  112.  return true;
  113. }
  114. }
  115.  
  116. function contenido_general(){
  117. global $registro;
  118. echo '<h1>Creado por WHK para NaSaRiD15</h1><br>
  119. <h2>http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html</h2>
  120.  <br><br>
  121.  <h3>Ingresar:</h3><br>
  122.  <form method="post">
  123.  <input type="text" name="user_login"> User<br>
  124.  <input type="passwd" name="pass_login"> Pass<br>
  125.  <input type="submit" value="Ingresar">
  126.  </form>
  127.  <br><br><h3>O registrarse:</h3><br>
  128.  <form method="post">
  129.  <input type="text" name="user_registrar"> User<br>
  130.  <input type="passwd" name="pass_registrar"> Pass<br>
  131.  <input type="submit" value="Registrarse">
  132.  </form><br><br>
  133.  '.$registro.'
  134. ';
  135. }
  136.  
  137. function contenido_error(){
  138. echo '
  139.  <b><i>Hubo un error al devolver su contenido personalizado.<br>
  140.  Elimine sus cookies y buelva a intentarlo.</i></b>
  141. ';
  142. }
  143.  
  144. function verifica_registrar(){
  145. if($_POST['user_registrar'] and $_POST['pass_registrar']){
  146.  global $conectar_sql;
  147.  $sql = "
  148.   SELECT `user`
  149.   FROM `usuarios`
  150.   WHERE `user`
  151.   LIKE CONVERT(_utf8 '".base64_encode($_POST['user_registrar'])."' USING latin1)
  152.   COLLATE latin1_swedish_ci
  153.   LIMIT 1;
  154.  ";
  155.  if(!$peticion = mysql_query($sql,$conectar_sql)){
  156.   return false;
  157.  }else{
  158.   $columna = mysql_fetch_row($peticion);
  159.   mysql_free_result($peticion);
  160.   if(base64_encode($_POST['user_registrar']) == $columna[0]){
  161.    return "El usuario ya existe";
  162.   }else{
  163.    $sql = "
  164.     INSERT INTO `usuarios` (`user`, `pass`, `contenido`)
  165.     VALUES ('".
  166.     base64_encode($_POST['user_registrar'])."', '".
  167.     md5($_POST['pass_registrar'])."', '<b>Bienvenido ".
  168.     mysql_real_escape_string(htmlspecialchars($_POST['user_registrar'], ENT_QUOTES)).
  169.     "!</b><br>Contenido a espera de ser editado.');
  170.    ";
  171.    if(mysql_query($sql,$conectar_sql)){
  172.     setcookie('user_login', base64_encode($_POST['user_registrar']));
  173.     setcookie('pass_login', md5($_POST['pass_registrar']));
  174.     header("Estado: Redireccionando para su validacion...");
  175.     header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  176.     exit(0);
  177.    }else{
  178.     return false;
  179.    }
  180.   }
  181.  }
  182. }
  183. }
  184. /* =========================================================== */
  185. ?>

Base de datos en MySQL:
Código
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.11.9.1
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 01-10-2008 a las 22:21:43
  7. -- Versión del servidor: 5.0.45
  8. -- Versión de PHP: 5.2.6
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Base de datos: `nasarid`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Estructura de tabla para la tabla `usuarios`
  20. --
  21.  
  22. CREATE TABLE IF NOT EXISTS `usuarios` (
  23.  `user` text NOT NULL,
  24.  `pass` text NOT NULL,
  25.  `contenido` text NOT NULL
  26. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  27.  
  28. --
  29. -- Volcar la base de datos para la tabla `usuarios`
  30. --
  31.  
  32. INSERT INTO `usuarios` (`user`, `pass`, `contenido`) VALUES
  33. ('d3c=', 'ad57484016654da87125db86f4227ea3', '<b>Bienvenido ww!</b><br>Contenido a espera de ser editado.'),
  34. ('dHR0dHQ=', '3bad6af0fa4b8b330d162e19938ee981', '<b>Bienvenido ttttt!</b><br>Contenido a espera de ser editado.');
  35.  
« Última modificación: 2 Octubre 2008, 06:47 am por WHK » En línea

NaSaRiD15


Desconectado Desconectado

Mensajes: 348


PEÑAROL


Ver Perfil
Re: Tutorial: Crear area restringida con php en nuestra web
« Respuesta #9 en: 2 Octubre 2008, 06:41 am »

Wow, excelente, muchas gracias por el trabajo esto es exactamente lo que estaba buscando!!!

Saludos whk, un gusto tenerlo por aqui!!!!!!!
En línea

Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¡Ayuda sobre como crear una serie de servicios en un área gráfica determinada!
Programación C/C++
RaquelAG 4 2,408 Último mensaje 30 Enero 2013, 16:42 pm
por RaquelAG
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines