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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Registro de usuarios sin base de datos MYSQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Registro de usuarios sin base de datos MYSQL  (Leído 22,684 veces)
neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Registro de usuarios sin base de datos MYSQL
« en: 22 Septiembre 2010, 22:41 pm »

Una de las mejores formas de interactuar con las personas que visitan tu pagina es por medio de un sistema que permita registrarlos y mostrarle contenido exclusivo, existen muchos scripts en PHP donde se usan bases de datos que quizás pueden ser complejas para una persona que recién está comenzando con esto de las webs, en esta mini guía vamos a crear un sistema de ingreso totalmente ORIGINAL desde cero sin la necesidad de tener bases de datos MySQL.

Puntos a Favor

*No necesitas bases de datos
*No necesitas saber códigos ni comandos SQL que quizás pueden ser un poco complejos
*Fácil de Crear
*Funciona Perfectamente

Puntos en Contra

*Quizás puede llegar a ser un poco inestable (Algo más o menos como lo que pasa con CuteNews)
*Menos seguro que bases de datos MySQL

*Que van a poder hacer los usuarios registrados?

-Los usuarios que se registren en este sistema de ingreso van a poder realizar cualquiera de las siguientes acciones:

*Ver contenido exclusivo
*Cambiar su avatar

-Que NO va a tener este sistema de usuarios

-Aquí te coloco alguna de las cosas que NO vamos a hacer con este sistema de registro:

*El administrador del sitio NO va a poder eliminar cuentas, al menos que elimine manualmente los mismo desde el archivo de usuarios
NO van a haber diferentes rangos de usuarios salvo los establecidas como usuario registrado o no

*Los usuarios no podran editar su cuenta

*Los usuarios no tendran un perfil entren otras cosas

Que necesito?

*Para lograr tu sistema de ingreso solo necesitas una página web y un programa para editar código PHP (aunque con el bloc de notas también puedes lograrlo).


En línea

Dznp

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #1 en: 22 Septiembre 2010, 22:58 pm »

¿Y el código?  >:(




Puntos a Favor

*No necesitas bases de datos
*No necesitas saber códigos ni comandos SQL que quizás pueden ser un poco complejos

*Fácil de Crear
*Funciona Perfectamente



Esas 2 cosas me dieron un poco de risa...  ;-)


Primero que nada si se necesitan bases de datos, lo que vos haces(guardarlo en un archivo) es TU bases de datos.
¿Consultas a MySQL complejas? si podes crear un script así no creo que sea tan dificil hacer un select o un insert.

 :silbar:


En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL 1 primero
« Respuesta #2 en: 22 Septiembre 2010, 23:08 pm »

Paso 1: Creación del archivo donde se guardan los usuarios

*Arriba dijimos que no íbamos a usar bases de datos MySQL para almacenar a nuestros usuarios, sin embargo necesitamos un lugar donde guardar a los mismos, eso vamos a hacerlo de la siguiente manera:

*Crea una Nueva Carpeta llamada Usuarios, ahí crea un nuevo archivo PHP desde tu editor de código y añade lo siguiente a esa página:

Código
  1. <?php die('Disculpa, No puedes ver esta pagina!!')?>
  2.  
  3.  

*Es importante que dejes un salto de línea después del código de arriba.

*Guarda ese archivo como Usuarios.php, y lo que tenemos ahí es el archivo donde se van a guardar a los usuarios, el código que ves, simplemente evita que se recargue la pagina directamente para prevenir que cualquiera pueda ver los e-mails y los nombres de usuarios de tu web (el password va a estar cifrado).

Ya terminamos con la carpeta de usuarios, ahí no vas a agregar nada más.

Paso 2: Creación de la pagina con el formulario de ingreso

Crea una nueva página llamada registrarse.php, aquí vamos a colocar el formulario que va a permitir a los usuarios registrarse en nuestra página:

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. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Registrate</title>
  6. </head>
  7.  
  8. <body>
  9. <h1>Registrate</h1>
  10. <form action="registro.php" method="POST">
  11. <p>
  12. <label for="nombre">*Nombre de Usuario</label>
  13. <label for="campo1"><input name="nombre" type="text" value=""/></label>
  14. </p>
  15. <p>
  16. <label for="email">*Email</label>
  17. <label for="campo2"><input name="email" type="text" value=""/></label>
  18. </p>
  19. <p>
  20. <label for="password">*Password</label>
  21. <label for="campo3"><input name="pass" type="password" value=""/></label>
  22. </p>
  23. <p>
  24. <label for="passwordrepe">Repite el Password</label>
  25. <label for="campo4"><input name="passrepet" type="password" value=""/></label>
  26. </p>
  27. <p>
  28. <input name="submit" type="submit" value="Registrarme"/>
  29. </p>
  30. </form>
  31. </body>
  32. </html>
  33.  

*Es importante que el “action”, el “method” y los “names” de los formularios NO varíen.


Paso 3: Creación del archivo que procesa el formulario


Es hora de crear uno de los archivos más complejos de nuestro sistema de ingreso, es el que procesa los datos del registro y realiza la inscripción de los usuarios en nuestro archivo usado como base de datos. Crea un nuevo archivo y llámalo como registro.php. Este archivo va a tener tres partes fundamentales:
1- Definición de constantes
2- Frenar el registro en caso de error
3- Registrar al usuario

Archivo de registro.php

Código
  1. <?php
  2. /*
  3.  * COMENZAMOS DEFINIENDO ALGUNAS VARIABLES
  4.  */
  5. $bd_usuarios = 'Usuarios/usuarios.php';
  6. $nombre = $_POST['nombre'];
  7. $email = $_POST['email'];
  8. $password = $_POST['pass'];
  9. $passwordrep = $_POST['passrepet'];
  10.  
  11. /*
  12.  * VAMOS A FRENAR EL REGISTRO SI EL ARCHIVO DE USUARIOS NO EXISTE
  13.  */
  14. if(!file_exists($bd_usuarios)){
  15. $error['noExiste'] = 'Disculpa, pero el archivo de base de datos de usuarios no existe';
  16. }
  17. /*
  18.  * AHORA FRENAMOS EL CASO EN QUE NO SEA ESCRIBIBLE EL ARCHIVO DE USUARIOS
  19.  */
  20. if(!is_writable($bd_usuarios)) {
  21. $error['noEscribe'] = 'Disculpa, pero el archivo de base de datos no admite escritura';
  22. }
  23. /*
  24.  * SI EL CAMPO NOMBRE ESTA VACIO GENERAMOS ERROR
  25.  */
  26. if(empty($nombre)) {
  27. $error['nombreVacio'] = 'Disculpa, debes escribir un nombre de usuario';
  28. }
  29. /*
  30.  * SI EL CAMPO EMAIL ESTA VACIO GENERAMOS ERROR
  31.  */
  32. if(empty($email)) {
  33. $error['emailVacio'] = 'Disculpa, debes escribir un email';
  34. }
  35. /*
  36.  * LOS ERRORES DEL PASSWORD, QUE ESTE VACIO O QUE NO COINCIDAN O QUE SEA MENOR A 4 CARACTERES
  37.  */
  38. if(empty($password)) {
  39. $error['passwordVacio'] = 'Disculpa, debes escribir un password';
  40. }
  41. elseif(strlen($password) <= 3) {
  42. $error['passwordCorto'] = 'Disculpa, el password debe ser de como minimo de 4 caracteres';
  43. }
  44. elseif($password != $passwordrep) {
  45. $error['passwordNoCoincide'] = 'Disculpa, los dos password deben coincidir';
  46. }
  47. /*
  48.  * AQUI CHECAMOS QUE EL EMAIL DE USUARIO NO EXISTA
  49.  */
  50. $contenido_verificacion = file_get_contents($bd_usuarios);
  51. $array_verificacion = explode('||', $contenido_verificacion);
  52. $cuento_los_usuarios = count($array_verificacion);
  53. for($i = 0; $i <= $cuento_los_usuarios; $i++) {
  54. $exploto_usuarios = explode('|', $array_verificacion[$i]);
  55. if($email == $exploto_usuarios[4]) {
  56. $error['EmailExistente'] = 'Disculpa, ese email ya ha sido registrado';
  57. }
  58. }
  59. /*
  60.  * AQUI CHECAMOS QUE EL NOMBRE NO EXISTA
  61.  */
  62. for($i = 0; $i <= $cuento_los_usuarios; $i++) {
  63. $exploto_usuarios = explode('|', $array_verificacion[$i]);
  64. if($nombre == $exploto_usuarios[2]) {
  65. $error['NombreExistente'] = 'Disculpa, ese nombre ya ha sido registrado';
  66. }
  67. }
  68. /*
  69.  * SI NO HAY ERROR, REGISTRAMOS EL USUARIO
  70.  */
  71. if(empty($error)) {
  72. $contenido_usuarios = file_get_contents($bd_usuarios);
  73. $array_usuarios = explode('||', $contenido_usuarios);
  74. $cuento_usuarios = count($array_usuarios);
  75. $abro = fopen($bd_usuarios, 'a+');
  76. fwrite($abro, filemtime($bd_usuarios)."|$cuento_usuarios|$nombre|".md5($password)."|$email||");
  77. fclose($abro);
  78. $mensaje = 'Usuario Registrado con Exito';
  79. }
  80. ?>
  81. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  82. <html xmlns="http://www.w3.org/1999/xhtml">
  83. <head>
  84. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  85. <title>Registrate</title>
  86. </head>
  87.  
  88. <body>
  89. <h1>Registrate</h1>
  90. <?php
  91. if($error) {
  92. foreach ($error as $advertencia){
  93. echo $advertencia;
  94. echo '<br />';
  95. }
  96. }
  97. if($mensaje) {
  98. echo $mensaje;
  99. }
  100. ?>
  101. </body>
  102. </html>
  103.  

Con estos archivos, vamos a tener listo el registro de los usuarios en nuestra página web, en el siguiente capítulo vamos a crear un archivo que permita a los usuarios iniciar sesión.
 ;-)
En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL 2 parte
« Respuesta #3 en: 22 Septiembre 2010, 23:43 pm »

Ahora nos toca hacer los archivos que van a permitir a nuestros usuarios conectarse, primero que nada vamos a hacer el formulario de ingreso, en este caso login.php.

Archivo login.php


Código
  1. <?php
  2. if($_SESSION) {
  3. header('Location:index.php');
  4. } else {
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10. <title>Ingresa</title>
  11. </head>
  12.  
  13. <body>
  14. <form action="ingreso.php" method="post">
  15. <p>
  16. <label for="nombre">Nombre</label>
  17. <label for="campo1"><input type="text" name="nombre" value="" /></label>
  18. </p>
  19. <p>
  20. <label for="password">Password</label>
  21. <label for="campo2"><input type="password" name="pass" value="" /></label>
  22. </p>
  23. <p>
  24. <input type="submit" name="ingresar" value="Iniciar sesion"/></p>
  25. </form>
  26. </body>
  27. </html>
  28. <?php }?>
  29.  

Ahora necesitamos hacer ingresar a los usuarios, primero vamos a hacer un archivo aparte llamado entrarusuarios.php que va a tener la función para que nuestros usuarios se conecten.

Archivo entrarusuarios.php

*Crea un nuevo archivo y llámalo entrarusuarios.php.

*Como dije arriba, este archivo va a conectar a nuestros usuarios, tomando los datos del formulario (el nombre y el password) y buscando similares en nuestra base de datos.

*Una forma con la que trabajo PHP (No sé si es la correcta) es pensar que nosotros mismos estamos realizando las tareas, por ejemplo:
Supongamos que un usuario, llamado “usuarioa” te pide saber si esta registrado en tu fiesta, y tu usaste una cuaderno para anotar a los invitados con sus respectivas claves, cada invitado está en una hoja separada, ahora, para saber si el usuario esta registrado, divides el cuaderno en las diferentes hojas, buscas a un usuario cuyo nombre sea “usuarioa” y su clave sea “clavea”, en caso de que encuentres uno, le dices que si esta registrado, y en caso contrario le dices que no está registrado. Ahora el ejemplo anterior vamos a pasarlo a una función como la siguiente:

Código
  1. <?php
  2. /*
  3.  * ESTA ES LA FUNCION QUE ME HACE INGRESAR A LOS USUARIOS
  4.  */
  5. function conectar_usuarios($nombre_usuario, $password_usuario) {
  6. $RESULTADO = FALSE;
  7.  
  8. //VERIFICAMOS QUE NO ESTEN VACIOS, SI LO ESTAN DEVUELVE FALSE
  9. if($nombre_usuario == '' || $password_usuario == '') {
  10. $RESULTADO = FALSE;
  11. }
  12. $ubicacion_usuarios = 'Usuarios/usuarios.php';
  13. $contenido_usuarios = file_get_contents($ubicacion_usuarios);
  14. $array_todos_usuarios = explode('||', $contenido_usuarios);
  15. foreach ($array_todos_usuarios as $usuario_individual) {
  16. $datos_del_usuario = explode('|', $usuario_individual);
  17. if($nombre_usuario == $datos_del_usuario[2] && $password_usuario == $datos_del_usuario[3]) {
  18. $RESULTADO = TRUE;
  19. break;
  20. }//DEL IF
  21. }//DEL FOREACH
  22. return $RESULTADO;
  23. }
  24. ?>
  25.  
  26.  
  27.  


Archivo ingreso.php


*Este archivo va a ser el que le dé una determinada variable de Sesión a cada usuario conectado, es como si le diéramos una identificación a cada invitado para que entre a tu fiesta.
Crea un nuevo archivo php y llámalo ingreso.php, en el vas a comenzar colocando lo siguiente:

Código
  1. <?php
  2. /*
  3.  * VAMOS A INICIAR LA SESION, ESTO ES IMPORTANTE
  4.  */
  5. /*
  6.  * COMENZAMOS DEFINIENDO ALGUNAS VARIABLES
  7.  */
  8. $nombre = $_POST['nombre'];
  9. $password = $_POST['pass'];
  10. $md5_pass = md5($password);
  11. require_once 'entrarusuarios.php';
  12. /*
  13.  * AQUI DEFINIMOS NUESTRAS VARIABLES DE SESSION SI EL INGRSO ES CORRECTO
  14.  */
  15. if(conectar_usuarios($nombre, $md5_pass)) {
  16. $INGRESO_DE_SESION = TRUE;
  17. @session_register('nombre');
  18. @session_register('password');
  19. $_SESSION['nombre'] = "$nombre";
  20. $_SESSION['password'] = "$md5_pass";
  21. header('Location:index.php');
  22. } else {
  23. $INGRESO_DE_SESION = FALSE;
  24. echo "Login incorrecto, <a href='login.php'>intentalo otra vez</a>";
  25. }
  26. ?>
  27.  

*Cuando el usuario ingrese, va a ser llevado automáticamente al index donde va a poder ver contenido que es solo para usuarios registrados, vamos a ver como seria este archivo.

Archivo Index.php


*Abre un nuevo archivo y llámalo index.php, ahí vamos a tener: Tanto contenido para usuarios conectado como contenido para usuarios no conectados y también contenido para ambos tipos de usuarios.
Comenzamos al igual que los otros archivos, estableciendo la función de inicio de sesión.

Código
  1. <?php
  2. //VARIABLES PARA EL AVATAR
  3. $avatar = "Usuarios/avatar/".$_SESSION['nombre'].".png";
  4. if (!file_exists($avatar)) {
  5. $avatar = "Usuarios/avatar/default.png";
  6. }
  7. ?>
  8.  

*Luego de eso, vamos a agregar lo siguiente:

Código
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <title>Ingreso</title>
  7. </head>
  8. <body>
  9. <h1>Index</h1>
  10. <p>Este es contenido comun que va a poder ser visto por cualquier usuario</p>
  11. <?php
  12. if (empty($_SESSION)) {?>
  13. <div id="contenido">
  14. <h1>Este contenido es solo para usuarios registrados</h1>
  15. <p>Disculpa, pero no eres un usuario registrado o no has iniciado sesion</p>
  16. <p><a href="registrarse.php">Registrate</a> | <a href="login.php">Inicia Sesion</a></p>
  17. </div>
  18. <?php
  19. } else {
  20. ?>
  21. <div id="contenido">
  22. <h1>Contenido para usuarios registrados</h1>
  23. <h2>TU AVATAR ES</h2>
  24. <img src="<?php echo $avatar?>" alt="Tu Avatar" /><br />
  25. <a href="avatar.php">ADMINISTRAR AVATAR</a>
  26. <p>Este contenido lo ve quien este registrado</p>
  27. <p><?php echo $_SESSION['nombre'];?></p>
  28. <p><a href="logout.php">Cerrar sesion</a></p>
  29. </div>
  30. <?php }?>
  31. </body>
  32. </html>
  33.  

*Ahora el usuario quiere cerrar sesión, para eso proporcionamos un link en el index que lleva hasta la pagina “logout.php”, veamos que tiene esa página.

Código
  1.  
  2. <?php
  3. if(empty($_SESSION)) {
  4. header('Location: index.php');
  5. } else {
  6. header('Location:index.php');
  7. }
  8. ?>
  9.  




En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL 3 parte
« Respuesta #4 en: 23 Septiembre 2010, 00:10 am »

En la Primera y segunda parte de esta mini guia creamos la estructura general de este sistema de ingreso, en esta oportunidad vamos a añadirle la posibilidad de subir avatars para cada usuario, una característica que va a permitir a todos aquellos que ingresan en tu pagina identificarse un poco mejor dependiendo del estilo de cada quien.

Paso 1

Primero vamos a crear una carpeta llamada “avatar” dentro de la carpeta “Usuarios” que es la carpeta donde tenemos nuestro archivo php que sirve de base de datos

*La ruta de un avatar va a ser “Usuarios/avatar/nombre.png

*Esta carpeta va a servir para guardar los avatars que suban nuestros usuarios, vamos a crear ahora la pagina que sirve para subir nuestras imágenes.

*Dentro de esta carpeta guarda una imagen con el nombre “default” en formato png que va a servir de default para todos los usuarios nuevos.

Paso 2: Archivo avatar.php


*Al igual que en la guia anterior debemos iniciar la session, vamos a pegar lo siguiente en nuestro archivo php.

Código
  1. <?php
  2. //INICIAMOS LA SESION DEL USUARIO
  3.  
  4. //SI EL USUARIO NO ESTA LOGEADO, LO MANDAMOS AL INDEX
  5. if (empty($_SESSION['nombre'])) {
  6. header('Location:index.php');
  7. }
  8. //DEFINIMOS ALGUNAS VARIABLES NECESARIAS CUANDO SUBIMOS EL ARCHIVO
  9. $status= "";
  10. if ($_POST["action"] == "upload") {
  11. $tamano = $_FILES["archivo"]['size'];
  12. $tipo = $_FILES["archivo"]['type'];
  13. $archivo = $_SESSION['nombre'].".png";
  14.  
  15. if ($archivo != "") {
  16. $destino = "Usuarios/avatar/".$archivo;
  17. if (copy($_FILES['archivo']['tmp_name'],$destino)) {
  18. $status = "Avatar Cambiado con EXITO";
  19. } else {
  20. $status = "Error al subir el archivo";
  21. }
  22. } else {
  23. $status = "Error al subir archivo";
  24. }
  25. }
  26. //OTRAS VARIABLES NECESARIAS PARA MOSRTAR EL AVATAR
  27. $nombredelarchivo = "Usuarios/avatar/".$_SESSION['nombre'].".png";
  28. $default = "Usuarios/avatar/default.png";
  29. ?>
  30. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  31. <html xmlns="http://www.w3.org/1999/xhtml">
  32. <head>
  33. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  34. <title>Usuarios - Cambio de Avatar</title>
  35. </head>
  36. <body>
  37. <h1>TU AVATAR ACTUALMENTE ES</h1>
  38. <?php if (file_exists($nombredelarchivo)) {?>
  39. <img src="<?php echo $nombredelarchivo?>" alt="Avatar Actual" />
  40.  
  41. <p>PUEDES:</p>
  42. <a href="borrar-a.php?nombre=<? echo $_SESSION['nombre']?>">BORRAR AVATAR!</a> | <a href="index.php">IR AL INDEX</a>
  43.  
  44. <?php } else { ?>
  45. <img src="<?php echo $default?>" alt="Avatar Actual" />
  46. <p>TU AVATAR ES EL DEFAULT, PUEDES CAMBIARLO</p>
  47.  
  48. <form action="<? echo $_SERVER['REQUEST_URI']?>" method="post" enctype="multipart/form-data">
  49. <input name="archivo" type="file" class="casilla" id="archivo" size="35" /><br />
  50. <input name="enviar" type="submit" class="boton" id="enviar" value="Subir Avatar!" />
  51. <input name="action" type="hidden" value="upload" /> </td>
  52. </form>
  53.  
  54. <p style="color: red;"><?php echo $status?></p>
  55. <?php } ?>
  56.  
  57. </body>
  58. </html>
  59.  

Paso 3: archivo borrar-a.php

Código
  1. <?php
  2. //INICIAMOS LA SESION DEL USUARIO
  3.  
  4. //SI EL USUARIO NO ESTA LOGEADO, LO MANDAMOS AL INDEX
  5. if (empty($_SESSION['nombre'])) {
  6. header('Location:index.php');
  7. }
  8.  
  9. //SI EL NOMBRE DE LA URL NO CORRESPONDE AL DE LA SESION, ESTAS BORRANDO EL AVATAR DE OTRO
  10. if ($_SESSION['nombre'] != $_GET['nombre']) {
  11. die("Estas borrando el avatar de alguien mas, esta accion no esta permitida");
  12. }
  13.  
  14. //BORRAMOS EL AVATAR
  15. $archivo = "Usuarios/avatar/".$_GET['nombre'].".png";
  16. unlink($archivo);
  17. ?>
  18.  
  19. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  20. <html xmlns="http://www.w3.org/1999/xhtml">
  21. <head>
  22. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  23. <title>Usuarios - Borrar Avatar</title>
  24. </head>
  25.  
  26. <body>
  27. <h1>Avatar Borrado</h1>
  28. <a href="avatar.php">Subir otro Avatar</a> | <a href="index.php">Ir al Index</a>
  29. </body>
  30. </html>
  31.  
  32.  


Eso es todo aqui termina mi mini guia  :-*  :D
En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #5 en: 23 Septiembre 2010, 01:10 am »

Despues les enseñare hacer otro mucho mejor el cual estoy haciendo para mi pagina.

Tendra:

*Un perfil que se le creara al usuario automaticamente.
*Un panel donde los usuarios podran modificar sus datos.
*Un sistema de mensajes donde los usuarios se podran mandarse mensajes.
*Una pagina donde podran ver los usarios que se han registrado.
*Los usuarios podran cambiar de avatar.
*Una pagina donde podras ver el usuario que esta conectado y en que pagina esta.
*Un sistema donde el usuario podra mandar sus propios links.
*Diferentes formularios de contacto.
*Libro de visitas.
*contador de visitas.

En proceso:

*Sistema para bloquear usarios.
*Sistema para agregar grupos de usuarios.
*Sistema para enviar desgarga.
*Sistema para cambiar de estilos de paginas.
*Sistema que se agregue al perfil del usuario y que diga si esta conectado o no.
*Sistema de olvide la contraseña si usar SMTP.


Este sistema que estoy haciendo sin usar Mysql lo publicare en mi pagina donde los usuarios lo podran desgargaselo en diferentes estilos.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.720


$M


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #6 en: 23 Septiembre 2010, 01:14 am »

Pregunta!: Esta aplicación para que es desarrollado?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #7 en: 23 Septiembre 2010, 01:23 am »

como?????
En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #8 en: 23 Septiembre 2010, 01:36 am »

Para aquellas personas que quieran un registro de usuarios que no use MYSQL.
En línea

neopuerta360

Desconectado Desconectado

Mensajes: 240


La mejor comunidad de neopets


Ver Perfil WWW
Re: Registro de usuarios sin base de datos MYSQL
« Respuesta #9 en: 23 Septiembre 2010, 01:42 am »

Shell Root tengo una pregunta, tengo un sistema de enviar noticias pero no me funciona y tampoco me dice si hay algun error aqui esta el codigo

noticias.php

Código
  1.  
  2. <?
  3. // Incluimos archivo de configuracion
  4. @include("configuracion.php");
  5. if (!$n) {
  6. ?>
  7. <?
  8. // Funcion para borrar los directorios
  9. function deldir($dir)
  10. {
  11.  $handle = opendir($dir);
  12.  while (false!==($FolderOrFile = readdir($handle)))
  13.  {
  14.     if($FolderOrFile != "." && $FolderOrFile != "..")
  15.     {
  16.     }
  17.  }
  18.  closedir($handle);
  19.  if(rmdir($dir))
  20.  { $success = true; }
  21.  return $success;
  22. }
  23.  
  24. if($borrar) {
  25. $_GET["borrar"];
  26. @include("noticias/$borrar.php");
  27. // si el usuario borra un mensaje
  28. if ($_COOKIE[ucnnick] == $nick_noticia or $_COOKIE[ucnnick] == $administador) {
  29. @unlink("noticias/$borrar.php") ;
  30. for($bn=0;$bn<1000;$bn++){
  31. @unlink("noticias/$borrar/contador.txt") ;
  32. @unlink("noticias/$borrar/$bn.php") ;
  33. }
  34. deldir("noticias/$borrar");
  35. echo "<p>La noticia <b>$titulo_noticia</b> ha sido borrada con éxito. Haz click <a href=index.php?id=noticias>aquí</a> para regresar.<br><br>" ;
  36. }
  37. }
  38. ?>
  39. <?php
  40.                                 // Le damos valor a las variables de configuración
  41. $Config['Path'] = "noticias/";         // Directorio donde stan los archivos a mostrar.
  42. $Config['Show'] = 20;             // Numero de archivos a mostrar por páginas.
  43.  
  44. $Show['20 Anteriores'] = 0;        // Por defecto no se mostrara 10 Anteriores
  45. $Show['20 Siguientes'] = 0;        // Por defecto no se mostrara 10 Siguientes
  46.  
  47. if ($c == "") $c = 0;            // Si $c no tiene valor es porque es la primera vez que se visita la página.
  48. $dir = @opendir($Config['Path']);         // Abrimos el directorio donde estan los archivos
  49. $Plus = $c;                    // Le damos el valor de $c a $plus porque el valor de $c se perdera y lo necessitaremos mas tarde.
  50.  
  51. while ($c > 0 && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
  52. {
  53.  $Show['20 Anteriores'] = 1;
  54.  $c--;
  55. }
  56.  
  57. $Counter = 0;            // Ponemos a 0 el contador
  58.  
  59. // Si es la primera vez que vez añadimos 2 filas, si no lo es se las quitamos.
  60. if ($Show['20 Anteriores'] == 0) $Counter=$Counter-2; else {
  61.  $c = 2;
  62.  while ($c > 0 && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
  63.  {
  64.   $Show['20 Anteriores'] = 1;
  65.   $c--;
  66.  }
  67. }
  68.  
  69. // Mostramos el numero de archivos que se tienen que mostrar por página.
  70. while (($Counter != $Config['Show']) && ($elemento = @readdir($dir)))
  71. {
  72.  $Counter++;
  73.  
  74.  $elemento1 = strtolower($elemento);
  75.  
  76.  if (strpos($elemento1, ".php") > 0 && $elemento != "index.php") {
  77.   // Asignamos el archivo sin extension
  78.   $elemento2 = str_replace(".php","",$elemento);
  79. ?>
  80. <?
  81. if(file_exists("noticias/$elemento2.php")) {
  82. require ("noticias/$elemento2.php");
  83. // Dia en el que se envio la noticia corta
  84. $diassemana = array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado") ;
  85. $mesesano = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic") ;
  86. $diasemana = date(w,$fecha_noticia) ; $diames = date(j,$fecha_noticia) ; $mesano = date(n,$fecha_noticia) - 1 ; $ano = date(Y,$fecha_noticia) ;
  87. $fecha_noticia = "$diassemana[$diasemana] $diames de $mesesano[$mesano] del $ano" ;
  88. // Espacios en la noticia corta
  89. $noticia_contenido = str_replace("\r\n","<br>",$noticia_contenido) ;
  90. // Acortamos la noticia, por eso se llama noticia corta
  91. if (strlen($noticia_contenido) > 255) {
  92. $noticia_contenido = substr($noticia_contenido,0,255).".."; }
  93. }
  94. ?>
  95. <table width="100%" border="0" cellspacing="0" cellpadding="5" style='border: #757575 1 solid'>
  96. <tr>
  97.    <td class="tabla_titulo">
  98.        <table width="100%" border="0" cellspacing="0" cellpadding="0">
  99.          <tr>
  100.            <td><div class="t1"><? echo $titulo_noticia ?></div></td>
  101.            <td><div align="right"><? echo $fecha_noticia ?></div></td>
  102.          </tr>
  103.        </table>
  104.      </td>
  105.  </tr>
  106.  <tr>
  107.    <td height="28" class="tabla_mensaje"><table width="100%" border="0" cellspacing="0" cellpadding="4">
  108.        <tr>
  109.          <td colspan="3"><? echo $noticia_contenido ?></td>
  110.        </tr>
  111.        <tr>
  112.          <td width="40%"><a href="index.php?id=noticias&n=<? echo $elemento2 ?>">Ver
  113.            comentarios</a>
  114.            <? if ($_COOKIE[ucnnick] == $nick_noticia or $_COOKIE[ucnnick] == $administador) { echo "| [<a href='index.php?id=noticias&borrar=$secciones$elemento2'>borrar</a>]"; } ?>
  115.          </td>
  116.          <td width="40%"><strong>Comentarios :
  117. <?
  118. if(file_exists("noticias/$elemento2/")) {
  119. // Usuarios en linea
  120. $path2 = "noticias/$elemento2/";
  121. // Contar el total
  122. $dir2 = opendir($path2);
  123. $i = 0;
  124. while ($elemento = readdir($dir2))
  125. {
  126. $elemento3 = strtolower($elemento);
  127. if (strpos($elemento3, ".php") > 0) {
  128. $i++;
  129. }
  130. }
  131. echo $i ;
  132. closedir($dir2);
  133. }
  134. else {
  135. echo "0";
  136. }
  137. ?>
  138.            </strong></td>
  139.          <td width="20%"><div align="right"><b>Enviada por: </b><? echo $nick_noticia ?>
  140.            </div></td>
  141.        </tr>
  142.      </table> </td>
  143.  </tr>
  144. </table>
  145.  
  146. <br>
  147. <?php
  148.  }
  149. }
  150.  
  151. // Si sobran archivos pondremos el "10 Siguientes"
  152. if ($elemento = @readdir($dir))
  153. {
  154.  $Show['20 Siguientes'] = 1;
  155. }
  156.  
  157. //Cerramos el directorio
  158. @closedir($dir);
  159. ?>
  160. <div align="right">
  161.  <?php
  162. // Mostraos si es necessario el "10 Anteriores" y "10 Siguientes".
  163. if ($Show['20 Anteriores'] == 1) echo("<a href=\"index.php?id=noticias&c=".($Plus-$Config['Show'])."\">20 Anteriores | </a>");
  164. if ($Show['20 Siguientes'] == 1) echo("&nbsp;<a href=\"index.php?id=noticias&c=".($Plus+$Config['Show'])."\">20 Siguientes</a></p>");
  165. }
  166. ?>
  167. </div>
  168. <? if ($n) {
  169. if(file_exists("noticias/$n.php")) {
  170. require ("noticias/$n.php");
  171. }
  172. // Dia en el que se envio la noticia extendida
  173. $diassemana = array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado") ;
  174. $mesesano = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic") ;
  175. $diasemana = date(w,$fecha_noticia) ; $diames = date(j,$fecha_noticia) ; $mesano = date(n,$fecha_noticia) - 1 ; $ano = date(Y,$fecha_noticia) ;
  176. $fecha_noticia = "$diassemana[$diasemana] $diames de $mesesano[$mesano] del $ano" ;
  177. // Ponemos los espacios en la noticia extendida
  178. $noticia_contenido = str_replace("\r\n","<br>",$noticia_contenido) ;
  179. // Si en la noticia extendida hay una direccion ftp o http la interpretamos para que pueda ser visitada
  180. $noticia_contenido = preg_replace("/(?<!')(?<!<a href=\")(?<!<img src=\")(http|ftp)(s)?:\/\/[^,<\'\"\s]+/i","<a href=\"\\0\" target=\"_blank\">\\0</a>",$noticia_contenido) ;
  181. ?>
  182. <table width=100% border=0 cellpadding=5 cellspacing=0 class='tabla_principal'>
  183. <tr>
  184. <td class="tabla_titulo"><p class=t1><? echo $titulo_noticia ?></p></td>
  185. <td class="tabla_titulo"><div align=right><? echo $fecha_noticia ?></div></td>
  186. </tr>
  187. <tr>
  188.    <td colspan=2 class="tabla_mensaje"> <? echo $noticia_contenido ?><br>
  189.      <br>
  190. <hr>
  191. <b>Enviada por:</b> <? echo $nick_noticia ?><br>
  192. <a href="index.php?id=noticias">· Regresar a la página principal</a>
  193. <p>
  194.  
  195.      <p><b>Total de comentarios:</b>
  196. <?
  197. if(file_exists("noticias/$n/")) {
  198. // Usuarios en linea
  199. $path2 = "noticias/$n/";
  200. // Contar el total
  201. $dir2 = opendir($path2);
  202. $i = 0;
  203. while ($elemento = readdir($dir2))
  204. {
  205. $elemento2 = strtolower($elemento);
  206. if (strpos($elemento2, ".php") > 0) {
  207. include("noticias/$n/$elemento2");
  208. $i++;
  209. }
  210. }
  211. echo $i ;
  212. closedir($dir2);
  213. }
  214. else {
  215. echo "0" ;
  216. }
  217. ?>
  218. <br>
  219. <br>
  220. <?php
  221. if(file_exists("noticias/$n/")) {
  222.                                 // Le damos valor a las variables de configuración
  223. $Config['Path'] = "noticias/$n/";         // Directorio donde stan los archivos a mostrar.
  224. $Config['Show'] = 5;             // Numero de archivos a mostrar por páginas.
  225.  
  226. $Show['5 Anteriores'] = 0;        // Por defecto no se mostrara 10 Anteriores
  227. $Show['5 Siguientes'] = 0;        // Por defecto no se mostrara 10 Siguientes
  228.  
  229. if ($c == "") $c = 0;            // Si $c no tiene valor es porque es la primera vez que se visita la página.
  230. $dir = @opendir($Config['Path']);         // Abrimos el directorio donde estan los archivos
  231. $Plus = $c;                    // Le damos el valor de $c a $plus porque el valor de $c se perdera y lo necessitaremos mas tarde.
  232.  
  233. while ($c > 0 && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
  234. {
  235. $Show['5 Anteriores'] = 1;
  236. $c--;
  237. }
  238. $Counter = 0; // Ponemos a 0 el contador
  239. // Si es la primera vez que vez añadimos 2 filas, si no lo es se las quitamos.
  240. if ($Show['5 Anteriores'] == 0) $Counter=$Counter-2; else {
  241. $c = 2;
  242. while ($c > 0 && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
  243. {
  244. $Show['5 Anteriores'] = 1;
  245. $c--;
  246. }
  247. }
  248. // Mostramos el numero de archivos que se tienen que mostrar por página.
  249. while (($Counter != $Config['Show']) && ($elemento = @readdir($dir)))
  250. {
  251. $Counter++;
  252. $elemento1 = strtolower($elemento);
  253. if (strpos($elemento1, ".php") > 0 && $elemento != "index.php") {
  254. include("noticias/$n/$elemento1");
  255. // Asignamos el archivo sin extension
  256. $elemento2 = str_replace(".php","",$elemento);
  257. // fecha
  258. $mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
  259. "Septiembre","Octubre","Noviembre","Diciembre") ;
  260. $diames = date(j,$fecha_noticiacom) ; $mesano = date(n,$fecha_noticiacom) - 1 ; $ano = date(Y,$fecha_noticiacom) ; $hora = date("h:i A",$fecha_noticiacom) ;
  261. $fecha_noticiacom = "$diames $mesesano[$mesano] $ano $hora" ;
  262. // Espacios correspondientes en comentarios
  263. $comentario = str_replace("\r\n","<br>",$comentario)
  264. ?>
  265. <table width=100% border=0 cellpadding=5 cellspacing=0 class='tabla_principal'>
  266.        <tr>
  267.          <td  class="tabla_subtitulo"><b>&lt;<? echo $nick_noticiacom ?>&gt;</b></td>
  268.          <td  class="tabla_subtitulo"><div align=right><b><? echo $fecha_noticiacom ?></b></div></td>
  269.        </tr>
  270.        <tr>
  271.          <td height="4" colspan=2 class="tabla_mensaje"> <? echo $comentario_noticiacom ?>
  272.          </td>
  273.        </tr>
  274. </table>
  275.      <br>
  276.      <?
  277.  }
  278. }
  279.  
  280. // Si sobran archivos pondremos el "10 Siguientes"
  281. if ($elemento = @readdir($dir))
  282. {
  283.  $Show['5 Siguientes'] = 1;
  284. }
  285. //Cerramos el directorio
  286. @closedir($dir);
  287. ?>
  288.      <div align="right">
  289. <?php
  290. // Mostraos si es necessario el "10 Anteriores" y "10 Siguientes".
  291. if ($Show['5 Anteriores'] == 1) echo("<a href=\"index.php?id=noticias&c=".($Plus-$Config['Show'])."&n=$n\">5 Anteriores | </a>");
  292. if ($Show['5 Siguientes'] == 1) echo("&nbsp;<a href=\"index.php?id=noticias&c=".($Plus+$Config['Show'])."&n=$n\">5 Siguientes</a></p>");
  293. }
  294. ?>
  295. </div>
  296.  
  297. <p><br>
  298. <?
  299. if($enviar){
  300. function quitar($texto) {
  301. $texto = trim($texto) ;
  302. $texto = htmlspecialchars($texto) ;
  303. $texto = stripslashes($texto) ;
  304. return $texto ;
  305. }
  306. // distinge entre nick registrado y nick anonimo
  307. if ($_COOKIE[ucnnick]) {
  308. $cnnick = $_COOKIE[ucnnick];
  309. }
  310. else {
  311. $cnnick = "No Registrad@";
  312. }
  313.  
  314. $cnfechacom = time() ;
  315. $cncomentario = quitar($cncomentario) ;
  316.  
  317. $nuevo .= "<"."?\n";
  318. $nuevo .="\$nick_noticiacom = \"$cnnick\";\n";
  319. $nuevo .="\$fecha_noticiacom = \"$cnfechacom\";\n";
  320. $nuevo .="\$noticiacom = \"$cnnoticia\";\n";
  321. $nuevo .="\$comentario_noticiacom = \"$cncomentario\";\n";
  322. $nuevo .= "?".">";
  323.  
  324. // añadimos la nueva noticia a contador.txt
  325. if(!file_exists("noticias/$n/")) { mkdir("noticias/$n/", 0777); }
  326. if(!file_exists("noticias/$n/contador.txt")) { $ncrea = fopen("noticias/$n/contador.txt","w"); fwrite($ncrea, "0"); fclose($ncrea); }
  327.  
  328. $file = "noticias/$n/contador.txt";
  329. $nclicks = fopen($file,"r+");
  330. $clicks = fgets($nclicks,1024);
  331. $clicks++;
  332. rewind($nclicks);
  333. fwrite($nclicks,$clicks);
  334. fclose($nclicks);
  335.  
  336. $new = fopen("noticias/$n/$clicks.php","w");
  337. fputs($new,$nuevo);
  338. fclose($new);
  339.  
  340. echo "<script>location='index.php?id=noticias&n=$n'</script>";
  341. }
  342. ?>
  343.        <br>
  344.        <b>Escribir comentario</b>
  345.      <form method=post action="index.php?id=noticias&n=<? echo $n?>">
  346. <input type="hidden" name="cnnoticia" value="<? echo $n ?>" >
  347. Comentario:<br>
  348. <textarea name="cncomentario" cols="30" rows="5" class="form"></textarea><br><br>
  349. <input type="submit" name="enviar" value="Enviar" class="form">
  350. </form>
  351. </td>
  352. </tr>
  353. </table>
  354. <?
  355. }
  356. ?>
  357.  
  358.  
  359.  

noticiasenviar.php

Código
  1.  
  2. <?
  3. include("login.php") ;
  4. ?>
  5. <?
  6. if($enviar) {
  7.  
  8. function quitar($texto) {
  9. $texto = trim($texto) ;
  10. $texto = htmlspecialchars($texto) ;
  11. $texto = stripslashes($texto) ;
  12. return $texto ;
  13. }
  14. $cnnick = $_COOKIE[ucnnick];
  15. $cnfecha = time() ;
  16. $cntitulo = quitar($cntitulo) ;
  17. $cnnoticia = quitar($cnnoticia) ;
  18.  
  19. $edita .= "<"."?\n";
  20. $edita .="\$nick_noticia = \"$cnnick\";\n";
  21. $edita .="\$fecha_noticia = \"$cnfecha\";\n";
  22. $edita .="\$titulo_noticia = \"$cntitulo\";\n";
  23. $edita .="\$noticia_contenido = \"$cnnoticia\";\n";
  24. $edita .= "?".">";
  25.  
  26. // añadimos la nueva noticia a contador.txt
  27. if(!file_exists("noticias/contador.txt")) { $ncrea = fopen("noticias/contador.txt","w"); fwrite($ncrea, "0"); fclose($ncrea); }
  28.  
  29. $file = "noticias/contador.txt";
  30. $nclicks = fopen($file,"r+");
  31. $clicks = fgets($nclicks,1024);
  32. $clicks++;
  33. rewind($nclicks);
  34. fwrite($nclicks,$clicks);
  35. fclose($nclicks);
  36.  
  37. $edit = fopen("noticias/$clicks.php","w");
  38. fputs($edit,$edita);
  39. fclose($edit);
  40. echo "Tu noticia ha sido enviada con exito. Haz click <a href=index.php?id=noticias>aquí</a> para regresar a la página principal.<br><br>" ;
  41. }
  42. ?>
  43. <p class="t1">Enviar noticias
  44. <p>
  45. <script>
  46. function revisar() {
  47. if(formulario.cnnoticia.value.length == 0) { alert('Debes poner un titulo a la noticia.') ; return false ; }
  48. if(formulario.cnnoticiaext.value.length > 255) { alert('La descripción supera los 255 caractéres.') ; return false ; }
  49. }
  50. </script>
  51. <form name="formulario" method="post" action="index.php?id=noticiasenviar" onsubmit="return revisar()">
  52.  <b>Titulo :</b><br>
  53. <input name="cntitulo" type="text" class="form" id="cntitulo" maxlength="40">
  54.  <br>
  55.  <b>Noticia:</b><br>
  56.  <textarea name="cnnoticia" cols="30" rows="5" class="form" id="cnnoticia"></textarea>
  57.  <br><br>
  58. <input type="submit" name="enviar" value="Enviar" class="form">
  59. </form>
  60.  
  61.  
Este codigo lo tengo hace mucho tiempo que no me funciona solo era que no habia preguntado por que no me funcionaba, es por que estoy haciendo otro diferente. :D
« Última modificación: 23 Septiembre 2010, 01:46 am por neopuerta360 » En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines