PHP - Añadir usuario al array cada vez que se da de alta uno nuevo

   
Vista:

Añadir usuario al array cada vez que se da de alta uno nuevo

Publicado por regino (2 intervenciones) el 05/02/2018 21:50:18
Tengo que realizar un registro de usuarios y un login con php y sin base de datos. He de decir que es la primera vez que toco php y estoy muy perdido al respecto. Estoy utilizando variables de sesion para moverme de una página a otra sin perderlas y uso un array para guardar los usuarios y otro para las contraseñas. El problema viene al añadir un usuario, tengo el tipico "admin" que viene de serie y despues al meter uno nuevo en el array no se como he de hacerlo puesto que con la funcion $array_push() solo puedo introducir usuarios una vez, a la siguiente vez se me sobrescriben. Solo me salen el usuario admin que meto yo directamente y uno mas que obtengo del formulario.¿Como hago para que se vayan añadiendo nuevos usuarios al array sin sobrescribir el anterior?. Imagino que tendre que recorrer el array con un for he ir añadiendo alfinal de este pero no he sido capaz.
Agradeceria cualquier ayuda.

Este es el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<meta http-equiv="refresh" content="3; url=login.php" />
 
<?php session_start();
 
$usuario=$_POST['nom'];
$password=$_POST['pass'];
$lista_usuarios = array('admin'); /* Creo array con la lista de los usuarios */
 
$lista_usuarios[] = $usuario;
/*array_push($lista_usuarios, $usuario);*/
 
$lista_passwords = array('admin'); /* Hago lo mismo con las passwords */
$lista_passwords[] = $password;
/*array_push($lista_passwords, $password);*/
 
$_SESSION['usuarios'] = serialize($lista_usuarios);
$_SESSION['passwords'] = serialize($lista_passwords);
 
print_r ($lista_usuarios);
echo "El usuario $usuario se introdujo correctamente, redirigiendo al Login...";
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Añadir usuario al array cada vez que se da de alta uno nuevo

Publicado por Alejandro (331 intervenciones) el 06/02/2018 15:56:43
Intenta comprender lo que haces

Creas un array conteniendo 'admin'
Agregas el usuario que recibes mediante post
Los guardas en una session
Imprimes el array de usuarios

Todo eso cada vez que ingresas a la pagina.
¿En que momento recuperaste la session?

Si existe la session el arreglo de usuarios es igual a la session
de lo contrario crea el array de usuarios con admin

Agregas el usuario que recibes y continuas con lo demas que ya tienes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Añadir usuario al array cada vez que se da de alta uno nuevo

Publicado por regino (2 intervenciones) el 07/02/2018 21:12:32
Buenas,

La sesion la recupero en el login, al cual redirigo automaticamente al hacer el registro para tener el array con el usuario y hacer la comprobación y a partir de ahí ingresar en la pagina (dependiendo del tipo de usuario se muestra una pagina u otra). La comprobación y posteriores tareas las realiza sin problema, el único problema que tengo es este de añadir usuarios al array cada vez que vuelvo del login al registro de usuario para dar de alta a un usuario nuevo, siempre me sobrescribe el segundo en vez de añadir un tercero.

El print es simplemente para comprobar el contenido del array no es parte de la funcionalidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Añadir usuario al array cada vez que se da de alta uno nuevo

Publicado por Alejandro (331 intervenciones) el 08/02/2018 15:58:19
No lo entiendes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<meta http-equiv="refresh" content="3; url=login.php" />
<?php session_start();
 
//Recibes los datos enviados por el formulario
$usuario=$_POST['nom'];
$password=$_POST['pass'];
 
// Creas el array para usuarios inicializado con 'admin', cada que se ejecuta el php vuelves a inicializarlo
$lista_usuarios = array('admin'); /* Creo array con la lista de los usuarios */
 
// Agregas el usuario que recibiste
$lista_usuarios[] = $usuario;
 
/*array_push($lista_usuarios, $usuario);*/
 
 // Creas el array para passwords y lo inicializas con 'admin', cada que se ejecuta el php vuelves a inicializarlo
$lista_passwords = array('admin'); /* Hago lo mismo con las passwords */
 
//Agregas el password que recibiste
$lista_passwords[] = $password;
 
/*array_push($lista_passwords, $password);*/
 
 
//Guardas el array de usuarios en la session usuarios, reemplazando lo ya existente
$_SESSION['usuarios'] = serialize($lista_usuarios);
 
//Guardas el array de passwords en la session usuarios, reemplazando lo ya existente
$_SESSION['passwords'] = serialize($lista_passwords);
 
 
//muestras el array de usuarios
print_r ($lista_usuarios);
 
echo "El usuario $usuario se introdujo correctamente, redirigiendo al Login...";
?>

En ningun momento recuperaste los valores de la session algo como esto:
1
2
3
4
5
if( isset($_SESSION['usuarios'])){
$lista_usuarios = $_SESSION['usuarios'];
}else{
$lista_usuarios = array('admin');
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad