Autor Tema: registro de usuarios sin MySQL  (Leído 3708 veces)

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
registro de usuarios sin MySQL
« en: 24 de Diciembre de 2009, 08:16:47 am »
Voy a escribir este post despues de no dormir en toda la noche por segunda vez en mi vida (espero no caer dormido en la cena de navidad)

primero el login de usuarios

index.php
Código: [Seleccionar]
<?php if($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;]) {     //Comprobamos si las cookies estan activas
echo "Hola,".$_COOKIE[&#39;usuario&#39;]."!<br>";
echo "<a href=&#39;salir.php&#39;>[Salir]</a>";
} else {     
//Y si no es asi pues mostramos el formulario de entrada
echo &#39;

<form name="form1" method="post" action="conectar.php">
Usuario:
<
input type="text" name="usuario" id="usuario">
<
br>
Contraseña:
<
input type="text" name="contrasena" id="contraseña">
<
br>
<
input type="submit" name="ok" id="ok" value="Conectar">
<
a href="registro.php" >Regístrate</a>
</
form>

&
#39;;
}
?>


...ahora el formulario de registro...

Código: [Seleccionar]

<?php

if (isset($_POST[&#39;ok&#39;])) {     //comprobamos si se ha pulsado el boton de registro


if (is_dir$_POST[&#39;usuario&#39;]  )) {     //comprobamos si existe el usuario
die(&#39;ya existe un usuario con ese nombre&#39;);
} else {


   if (
$_POST[&#39;contrasena1&#39;] != $_POST[&#39;contrasena2&#39;]) {   //vemos si las contraseñas no son iguales
   
die(&#39;las contraseñas no coinciden&#39;);
   
} else {
   

   
//creamos un directorio con el nombre del usuario
   
mkdir$_POST[&#39;usuario&#39;] );
   //escribimos los datos del usuario en un archivo llamado perfil.php dentro de esa carpeta

      
$perfil=fopen($_POST[&#39;usuario&#39;]."/perfil.php", "w");     //creamos el archivo perfil.php, el parámetro W en esta funcion indica que si el archivo no existe que lo cree
      
fwrite($perfil"<?php
      \$contrasena="
.$_POST[&#39;contrasena1&#39;].";
      
\$email=&#39;".$_POST[&#39;email&#39;]."&#39;;
      
?>
"); //escribimos los datos del usuario en lenguaje php
      fclose($perfil);     //cerramos el archivo creado

      echo "Te has registrado sin ningun problema, ENORABUENA! ahora puedes logearte con tus datos";
         }
      }

} else {   //si no pulsamos el boton mostramos el formulario

echo '
<form id="form1" name="form1" method="post" action="">
Usuario:
<input type="text" name="usuario" id="usuario" /><br />
contraseña:
<input type="text" name="contrasena1" id="contrasena1" />
<br />
repite la contraseña:
<input type="text" name="contrasena2" id="contrasena2" /><br />
Email:
<input type="text" name="email" id="email" /><br />
<input type="submit" name="ok" id="ok" value="Enviar" />
</form>
';

}
?>

..ahora el conectar.php que servira para entrar en el panel de usuario despues de habernos logeado correctamente
Código: [Seleccionar]

<?php
if(isset($_POST[&#39;ok&#39;])) {

if (!($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;])) {
   
if (!$_POST[&#39;usuario&#39;] and !$_POST[&#39;contrasena&#39;]) {   //comprobamos si se han introducido valores en los 2 campos de texto
   
die(&#39;Debes entrar el usuario y la contraseña&#39;);
   
} else {
      if (!
is_dir($_POST[&#39;usuario&#39;])) {   //comprobamos si existe el usuario
      
die (&#39;usuario o contraseña incorrectos&#39;);
      
} else {
      include(
$_POST[&#39;usuario&#39;]."/perfil.php");   //incluimos el archivo de texto para que lea la contraseña
         
if ($_POST[&#39;contrasena&#39;] != $contrasena) {
         
die(&#39;usuario o contraseña incorrectos&#39;);
         
} else {   //si no es asi creamos las cookies
         
setcookie("usuario",$_POST[&#39;usuario&#39;],time()+3600);      //la diracion de la sesion se pone en segundos
         
setcookie("contrasena",$_POST[&#39;contrasena&#39;],time()+3600);
         
header("location: index.php");      //llevamos al usuario al panel de usuario
         
}
      }
   }
   
} else {
echo 
"Error, Ya estas identificado";
}
}
?>


finalmente para finalizar y terminar de escribir este post hay que hacer el salir.php que servira para desconectarse

Código: [Seleccionar]
<?php
if ($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;]) {   //comprobamos si esta identificado el usuario
//quitamos las cookies!
setcookie("usuario");
setcookie("contrasena");
//ya no estan, xD
header("location: index.php"); //lo redirigimos al index
} else {
echo 
"No estas identificado, asi que no puedes desconectarte";
}
?>



bueno, espero que sirva como orientacion.

SALUDOS.

Comunidad PHPeros

registro de usuarios sin MySQL
« en: 24 de Diciembre de 2009, 08:16:47 am »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #1 en: 24 de Diciembre de 2009, 11:06:31 am »
quita el ?> en esta linea, si no no funcionara (o asi era hace 2 años xD)
      \$email=&#39;".$_POST[&#39;email&#39;]."&#39;;
      
?>"); //escribimos los datos del usuario en lenguaje php

del resto muy bien, pero no es peligroso? si son archivos de texto los usuarios no podran ver los datos de los demas?

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
Re:registro de usuarios sin MySQL
« Respuesta #2 en: 24 de Diciembre de 2009, 11:16:48 am »
no pasa nada en esa linea porque es una cadena donde tengo los caracteres, el foro no reconoce si es una cadena o no :S

no es plagio, te aseguro que escribi directamente los codigos en el post.

si que la seguridad en este codigo es un tema delicado, no te voy a engañar (son archivos php (perfil.php))
« Última modificación: 24 de Diciembre de 2009, 11:24:54 am por german95 »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #3 en: 24 de Diciembre de 2009, 11:26:54 am »
no insinuo que estes plageando, y no entendi tu respuesta. (con lo de dos años me referia a que yo programaba hace dos años y esas eran las "reglas") pero aqui:
<?php
      \$contrasena=".$_POST['contrasena1'].";
      \$email='".$_POST['email']."';
      ?>"
porque tienes etiquetas php dentro de php?
y con lo de las cadenas. pregunto que si yo entro en web.com/usuario/pass.txt vere la pass

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
Re:registro de usuarios sin MySQL
« Respuesta #4 en: 24 de Diciembre de 2009, 11:52:50 am »
no insinuo que estes plageando, y no entendi tu respuesta. (con lo de dos años me referia a que yo programaba hace dos años y esas eran las "reglas") pero aqui:
<?php
      \$contrasena=".$_POST['contrasena1'].";
      \$email='".$_POST['email']."';
      ?>"
porque tienes etiquetas php dentro de php?
y con lo de las cadenas. pregunto que si yo entro en web.com/usuario/pass.txt vere la pass

hay etiquetas php porque esta creando un archivo php, no es txt

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #5 en: 24 de Diciembre de 2009, 13:26:02 pm »
ah listo, ya entendi. entonces asi si es seguro
muy bien + karma

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
Re:registro de usuarios sin MySQL
« Respuesta #6 en: 24 de Diciembre de 2009, 14:04:29 pm »
ah listo, ya entendi. entonces asi si es seguro
muy bien + karma

gracias :)

Desconectado broo

  • PHPer@
  • **
  • Mensajes: 56
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #7 en: 24 de Diciembre de 2009, 15:59:28 pm »
Mmm... Man buen aporte pero entonses en donde se supone que se guardan los usuarios y las passwords?

Desconectado german95

  • PHPer@
  • **
  • Mensajes: 99
  • Karma: 6
    • Ver Perfil
    • germangb
Re:registro de usuarios sin MySQL
« Respuesta #8 en: 24 de Diciembre de 2009, 16:50:52 pm »
Mmm... Man buen aporte pero entonses en donde se supone que se guardan los usuarios y las passwords?

se guardan en el mismo directorio

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #9 en: 24 de Diciembre de 2009, 16:51:47 pm »
Esto es un codigo? Es que no se, pero me parecio leer que estaba prohibido dar codigos...

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #10 en: 25 de Diciembre de 2009, 11:56:21 am »
Esto es un codigo? Es que no se, pero me parecio leer que estaba prohibido dar codigos...

Esta prohibido dar códigos como respuesta a temas en los que se plantea una duda, pero no veo problema este código, que bien se puede interpretar como un tutorial.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Kikers

  • PHPer@ Fijo
  • ***
  • Mensajes: 151
  • Karma: 2
  • Sexo: Masculino
  • <?="NO a la sección MC";?>
    • Ver Perfil
    • PHPMasters, Portal PHP
Re:registro de usuarios sin MySQL
« Respuesta #11 en: 15 de Enero de 2010, 04:49:30 am »
Muchas gracias, lo edite y te deje los creditos, con la ayuda de Masato le colocamos rangos
<?="NO a la sección MC";?>

Desconectado Caobiita!

  • PHPer@ Fijo
  • ***
  • Mensajes: 214
  • Karma: 5
  • Sexo: Masculino
  • ¡Aprendiendo!
    • Ver Perfil
    • Próximamente
Re:registro de usuarios sin MySQL
« Respuesta #12 en: 17 de Enero de 2010, 23:53:37 pm »
He subido el registro, y he ido al link de la web, me he registrado y pongo mis datos en el index.php y le doy a entrar y me sale:



Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php:2) in /var/www/vhost/habbofly.es/home/html/habbolands/login/conectar.php on line 18



Me dice que da error el conectar.php, aquí dejo el conectar porque yo no le veo ningún error :confused:
Código: [Seleccionar]
<?php
if(isset($_POST[&#39;ok&#39;])) {

if (!($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;])) {
   
if (!$_POST[&#39;usuario&#39;] and !$_POST[&#39;contrasena&#39;]) {   //comprobamos si se han introducido valores en los 2 campos de texto
   
die(&#39;Debes entrar el usuario y la contraseña&#39;);
   
} else {
      if (!
is_dir($_POST[&#39;usuario&#39;])) {   //comprobamos si existe el usuario
      
die (&#39;usuario o contraseña incorrectos&#39;);
      
} else {
      include(
$_POST[&#39;usuario&#39;]."/perfil.php");   //incluimos el archivo de texto para que lea la contraseña
         
if ($_POST[&#39;contrasena&#39;] != $contrasena) {
         
die(&#39;usuario o contraseña incorrectos&#39;);
         
} else {   //si no es asi creamos las cookies
         
setcookie("usuario",$_POST[&#39;usuario&#39;],time()+3600);      //la diracion de la sesion se pone en segundos
         
setcookie("contrasena",$_POST[&#39;contrasena&#39;],time()+3600);
         
header("location: index.php");      //llevamos al usuario al panel de usuario
         
}
      }
   }
   
} else {
echo 
"Error, Ya estas identificado";
}
}
?>

En construcción.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:registro de usuarios sin MySQL
« Respuesta #13 en: 18 de Enero de 2010, 15:27:23 pm »
no puedes usar la funcion header() despues de escribir texto...

Desconectado Caobiita!

  • PHPer@ Fijo
  • ***
  • Mensajes: 214
  • Karma: 5
  • Sexo: Masculino
  • ¡Aprendiendo!
    • Ver Perfil
    • Próximamente
Re:registro de usuarios sin MySQL
« Respuesta #14 en: 18 de Enero de 2010, 16:20:28 pm »
¿Entonces le borro esa función? ¿Quedaría así?

Código: [Seleccionar]
<?php
if(isset($_POST[&#39;ok&#39;])) {

if (!($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;])) {
   
if (!$_POST[&#39;usuario&#39;] and !$_POST[&#39;contrasena&#39;]) {   //comprobamos si se han introducido valores en los 2 campos de texto
   
die(&#39;Debes entrar el usuario y la contraseña&#39;);
   
} else {
      if (!
is_dir($_POST[&#39;usuario&#39;])) {   //comprobamos si existe el usuario
      
die (&#39;usuario o contraseña incorrectos&#39;);
      
} else {
      include(
$_POST[&#39;usuario&#39;]."/perfil.php");   //incluimos el archivo de texto para que lea la contraseña
         
if ($_POST[&#39;contrasena&#39;] != $contrasena) {
         
die(&#39;usuario o contraseña incorrectos&#39;);
         
} else {   //si no es asi creamos las cookies
         
setcookie("usuario",$_POST[&#39;usuario&#39;],time()+3600);      //la diracion de la sesion se pone en segundos
         
setcookie("contrasena",$_POST[&#39;contrasena&#39;],time()+3600);
         //llevamos al usuario al panel de usuario
         
}
      }
   }
   
} else {
echo 
"Error, Ya estas identificado";
}
}
?>

En construcción.