Foros del Web » Programando para Internet » PHP »

Como crear archivos independientes para cada usuario ?

Estas en el tema de Como crear archivos independientes para cada usuario ? en el foro de PHP en Foros del Web. necesito que los usuarios a la hora de registrarse cree un archivo para ese usuario o que solo pueda a acceder ese usuario a su ...
  #1 (permalink)  
Antiguo 04/01/2013, 17:34
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 10 meses
Puntos: 0
Mensaje Como crear archivos independientes para cada usuario ?

necesito que los usuarios a la hora de registrarse cree un archivo para ese usuario o que solo pueda a acceder ese usuario a su informacion.
UN EJEMPLO DE LO QUE QUIERO HACER:
Una "especie" de agenda con 2 archivos (son los que necesito que cree para cada usuario) Que en el primer archivo este el estilo de la pagina para guardar datos con metod post a otro archivo pero que solo lo vea el usuario que ingreso esos datos.
Les paso los codigos de registro y activacion de mi pagina para ver si se puede hacer lo que quiero en estos codigos.
Desde ya muchisimas gracias !
Form de registro
Código PHP:
<?php 

require_once("models/config.php");

securePage($_SERVER['PHP_SELF']);

//Prevent the user visiting the logged in page if he/she is already logged in
if(isUserLoggedIn()) { header("Location: account.php"); die(); }

//Forms posted
if(!empty($_POST))
{
    
$errors = array();
    
$email trim($_POST["email"]);
    
$username trim($_POST["username"]);
    
$displayname trim($_POST["displayname"]);
    
$password trim($_POST["password"]);
    
$confirm_pass trim($_POST["passwordc"]);
    
$captcha md5($_POST["captcha"]);
    
    
    if (
$captcha != $_SESSION['captcha'])
    {
        
$errors[] = lang("CAPTCHA_FAIL");
    }
    if(
minMaxRange(5,25,$username))
    {
        
$errors[] = lang("ACCOUNT_USER_CHAR_LIMIT",array(5,25));
    }
    if(!
ctype_alnum($username)){
        
$errors[] = lang("ACCOUNT_USER_INVALID_CHARACTERS");
    }
    if(
minMaxRange(5,25,$displayname))
    {
        
$errors[] = lang("ACCOUNT_DISPLAY_CHAR_LIMIT",array(5,25));
    }
    if(!
ctype_alnum($displayname)){
        
$errors[] = lang("ACCOUNT_DISPLAY_INVALID_CHARACTERS");
    }
    if(
minMaxRange(8,50,$password) && minMaxRange(8,50,$confirm_pass))
    {
        
$errors[] = lang("ACCOUNT_PASS_CHAR_LIMIT",array(8,50));
    }
    else if(
$password != $confirm_pass)
    {
        
$errors[] = lang("ACCOUNT_PASS_MISMATCH");
    }
    if(!
isValidEmail($email))
    {
        
$errors[] = lang("ACCOUNT_INVALID_EMAIL");
    }
    
//End data validation
    
if(count($errors) == 0)
    {    
        
//Construct a user object
        
$user = new User($username,$displayname,$password,$email);
        
        
//Checking this flag tells us whether there were any errors such as possible data duplication occured
        
if(!$user->status)
        {
            if(
$user->username_taken$errors[] = lang("ACCOUNT_USERNAME_IN_USE",array($username));
            if(
$user->displayname_taken$errors[] = lang("ACCOUNT_DISPLAYNAME_IN_USE",array($displayname));
            if(
$user->email_taken)       $errors[] = lang("ACCOUNT_EMAIL_IN_USE",array($email));        
        }
        else
        {
            
//Attempt to add the user to the database, carry out finishing  tasks like emailing the user (if required)
            
if(!$user->userCakeAddUser())
            {
                if(
$user->mail_failure$errors[] = lang("MAIL_ERROR");
                if(
$user->sql_failure)  $errors[] = lang("SQL_ERROR");
            }
        }
    }
    if(
count($errors) == 0) {
        
$successes[] = $user->success;
    }
}

require_once(
"models/header.php");
echo 
"
<body>
<div id='wrapper'>
<div id='top'><div id='logo'></div></div>
<div id='content'>
<h1></h1>
<h2>Registrar</h2>

<div id='left-nav'>"
;
include(
"left-nav.php");
echo 
"
</div>

<div id='main'>"
;

echo 
resultBlock($errors,$successes);

echo 
"
<div id='regbox'>
<form name='newUser' action='"
.$_SERVER['PHP_SELF']."' method='post'>

<p>
<label>Usuario:</label>
<input type='text' name='username' />
</p>
<p>
<label>Nick:</label>
<input type='text' name='displayname' />
</p>
<p>
<label>Password:</label>
<input type='password' name='password' />
</p>
<p>
<label>Confirm:</label>
<input type='password' name='passwordc' />
</p>
<p>
<label>Email:</label>
<input type='text' name='email' />
</p>
<p>
<label>Capcha:</label>
<img src='models/captcha.php'>
</p>
<label>Ingresar capcha:</label>
<input name='captcha' type='text'>
</p>
<label>&nbsp;<br>
<input type='submit' value='Register'/>
</p>

</form>
</div>

</div>
<div id='bottom'></div>
</div>
</body>
</html>"
;
?>
Token de activacion
Código PHP:
<?php 

require_once("models/config.php");
securePage($_SERVER['PHP_SELF']);

//Get token param
if(isset($_GET["token"]))
{    
    
$token $_GET["token"];    
    if(!isset(
$token))
    {
        
$errors[] = lang("FORGOTPASS_INVALID_TOKEN");
    }
    else if(!
validateActivationToken($token)) //Check for a valid token. Must exist and active must be = 0
    
{
        
$errors[] = lang("ACCOUNT_TOKEN_NOT_FOUND");
    }
    else
    {
        
//Activate the users account
        
if(!setUserActive($token))
        {
            
$errors[] = lang("SQL_ERROR");
        }
    }
}
else
{
    
$errors[] = lang("FORGOTPASS_INVALID_TOKEN");
}

if(
count($errors) == 0) {
    
$successes[] = lang("ACCOUNT_ACTIVATION_COMPLETE");
}

require_once(
"models/header.php");

echo 
"
<body>
<div id='wrapper'>
<div id='top'><div id='logo'></div></div>
<div id='content'>
<h1></h1>
<h2>Activar cuenta</h2>

<div id='left-nav'>"
;

include(
"left-nav.php");

echo 
"
</div>
<div id='main'>"
;

echo 
resultBlock($errors,$successes);

echo 
"
</div>
<div id='bottom'></div>
</div>
</body>
</html>"
;

?>
  #2 (permalink)  
Antiguo 04/01/2013, 18:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Como crear archivos independientes para cada usuario ?

Pero porque no guardar la información en la BD para cada usuario? se supone que al loguearse tendrá acceso a los sus propios datos, por lo pronto, si decidís trabajar con archivos, preferentemente guardalos fuera del document_root y deberás darles un nombre que se corresponda con algún identificador único del usuario que se registra

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 04/01/2013, 20:48
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Como crear archivos independientes para cada usuario ?

Cita:
Pero porque no guardar la información en la BD para cada usuario? se supone que al loguearse tendrá acceso a los sus propios datos, por lo pronto, si decidís trabajar con archivos, preferentemente guardalos fuera del document_root y deberás darles un nombre que se corresponda con algún identificador único del usuario que se registra

Saludos
Si lo se pero hay un archivo que el usuario se lo da a personas que no estan registradas para que completen su informacion DNI NOMBRE etc , para que se las guarde en la DB del USUARIO
  #4 (permalink)  
Antiguo 04/01/2013, 21:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Como crear archivos independientes para cada usuario ?

Es una estructura medio rara, pero así como lo planteas, dando acceso a un usuario anónimo, es medio inseguro.
Una posibilidad sería generarle al usuario una segunda clave publica y que haya un form desde el cual loguearse con la misma y habra el archivo para ese usuario (el registrado). Supongo que el se la facilitará a una persona autorizada a completar la información que decís

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: token, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:17.