PHP - Variable Global?

 
Vista:

Variable Global?

Publicado por thefalcon (7 intervenciones) el 28/03/2018 20:02:26
Tengo un Formulario de Login, Login.html , que envía el formulario a Login.php el cual recoge El nombre y usuario en variables y comprueba que son correctos y hasta hay todo perfecto.

Cuando te identificas te redirecciona a Fichas.html o .php lo e probado de los 2 modos, pero no puedo recoger hay el valor del usuarío de Login.html

La idea es que cuando te loqueas , el usuario es único asi que en la zona fichas cargaria todo lo referente a dicho usuarío.

Probe lo de $_SESSION y no me va o no se recoger la variable en otro formulario.


tengo un formulario de login, tipico qeu recoge user y password, y manda a login.php, en el cual pongo esto:
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
$use = $_POST["user"];            // Asi recogemos el nombre desde el formulario  
    $user = strip_tags($use);    // Eliminamos la etiquetas que puedan existir  
    $n_user = strlen($user);      // Contamos el numero de caracteres  
 
 
    $clav = $_POST["clave"];            // Asi recogemosla clave desde el formulario  
    $clave = strip_tags($clav);    // Eliminamos la etiquetas que puedan existir  
    $n_clave = strlen($clave);      // Contamos el numero de caracteres  
 
 
 
include("abre_conexion.php");
 
 
 
 
$user_con = mysql_num_rows(mysql_query("SELECT user FROM usuarios WHERE user='$user'"));
$clave_con = mysql_num_rows(mysql_query("SELECT clave FROM usuarios WHERE clave='$clave'"));
 
session_start();
 
 
if ($user_con <> 0 and $clave_con <>0) {
 
 
 $_SESSION['$usuario_login'] = $_POST["user"];;
 
        echo "Identificación Correcta";
 
 
?><meta http-equiv="refresh" content="1;url=fichas2.php"><?  }


Aqui me recoge la variable bien pero luego desde fichas2.php no consigo mostrarla ni en label ni en textbox(para verificar que existe) ni tan siquiera en una consulta.


yo la intento recoger en otro formulario así:
1
2
3
4
<?php
     session_start();
    echo $_SESSION['$usuario_login']
    ?>

Y mostrarlo asi

1
<input type="text" name="nombre" value="<?php echo $_SESSION['$usuario_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
sin imagen de perfil

Variable Global?

Publicado por EloFran (6 intervenciones) el 29/03/2018 23:42:45
1
2
3
4
5
6
<?php
session_start();
if(!isset($_SESSION["usuario"])){
header("Location: login.php");
exit(); }
?>
En este ejemplo que te doy ya que tu código no lo he leído entero, "username" no es una variable pero no creo que eso cambie mucho.
La cuestión es que necesitas añadir un include con un código similar a este en la página donde precises la sesión.
Supongamos que esta se llama sesion.php, pues en tu otra página deberías de tener include(sesion.php);
de esta manera arrastras el valor que es lo que creo que quieres.

Espero haberte dado una idea.
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

Variable Global?

Publicado por Thefalcon (7 intervenciones) el 30/03/2018 00:06:01
A ver si entendi, e probado esto que no se si es lo que me dices.

Cuando me identifico y va a LOGIN.PHP , hay meto el usuario que e puesto en $S_SESION['FALCON_LOG'];

Y con un ECHO muestro en pantalla que esa variable tiene el dato.

Luego en el otro formulario que quiero recoger la variable pongo.

1
2
3
4
5
6
<?php
session_start();
if(!isset($_SESSION['FALCON_LOG'])){
header("Location: login.php");
exit(); }
?>

pero no consigo mostrarlo en un ECHO ni ver si la variable recogió datos.

No obstante mañana viendo lo que me comentas que no sabia que existía esa posibilidad, buscare por internet y haré pruebas y ya te comento.

Muchas Gracias
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
sin imagen de perfil

Variable Global?

Publicado por EloFran (6 intervenciones) el 30/03/2018 00:45:15
El código tiene que estar en algo como verificar.php o como quieras, y lo pones como un include en tu web de inicio, arriba del todo, antes de la etiqueta de html
1
2
include("verficar.php"); //incluir en todas las páginas que precisen sesión>
<!DOCTYPE html>
este lo que hace es comprobar primero si ya está logueada la sesion, si es que no redirecciona a login.php.
En tu página de login.php despues de sesión de usuario pones algo así:
1
2
$_SESSION['username'] = $username;
header("Location: inicio.php");

En tu código veo que tu le das el valor del POST, creo que eso da igual, en este ejemplo que te pongo, el usuario se guarda en la variable $username; una vez hecho esto aquí redireccionas a dónde quieres que vaya una vez esté logueado y con eso se debe de llevar la sesión de usuario también. Igual no me explico bien, pero es la manera más segura de hacerlo.

Edito: Imagino que luego con poner :
1
<p>Bienvenido <?php echo $_SESSION['username']; ?>!</p>
Debería funcionarte. Que por cierto en tu código no tiene el ";" al final, mira también eso.
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 italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Variable Global?

Publicado por italo (150 intervenciones) el 31/03/2018 17:17:00
hola

@thefalcon, el login no se comprueba de esa manera, es verdad que hay varias maneras de hacerlo, pero la que has escrito no es una de ellas...

normalmente:

login.php - form de username y password

login_exec.php:
- recibo ambos paramentros (username y password) tramite $_POST y los guardo en sus respectivas variables.
- ejecuto la query mysql de la tabla usuarios, (select username, password (y el resto de campos) from usuario where username = $usuario and password = $password)
- verifico si la query no ha dado error.
- verifico que el numero de record sea igual 1 (ya que solo puede existir un solo username en el sistema).
- si existe solo un record, recupero los datos del usuario con la query en un while ($row = fetch_array) y declaro las variables para las $_SESSION que serviran:

abro session_start

1
2
3
$_SESSION['username'] = $row["username"];
$_SESSION['nombre_usuario'] = $row["nombre_usuario"];
$_SESSION['apellido_usuario'] = $row["apellido_usuario"];

- redirecciono a la pagina que deseo, fichas.php

luego en la pagina fichas.php recibo los datos que deseo de las session

- abro session_start
- echo $_SESSION['username'];

o las uso

1
$username = $_SESSION['username']:

ese es el mecanismo que normalmente se emplea, repito hay otros modos pero la logica es esa.

salu2.
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

Variable Global?

Publicado por TheFalcon (7 intervenciones) el 02/04/2018 18:59:24
E Probado como me decia EloFran , y mas o menos con ayuda de tutoriales consigo mostrar una variable a la que yo le meto un valor a mano, pero no consigo mostrar la variable que recoje el Form. Pongo lo que hago


Login.html
1
2
3
4
5
6
<form method="POST" action="login1.php">
 
    <p>Usuario: <input type="text" name="user" size="20"></p>
    <p>Clave: <input type="password" name="clave" size="20"></p>
 
  <p><input type="submit" value="Guardar datos" name="B1"></p>

Este manda a login1.php que es el siguiente codigo e borrado todo lo demas para mostrar solo lo que quiero.

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
<?php
 
 
$use = $_POST["user"];            // Asi recogemos el nombre desde el formulario 
    $user = strip_tags($use);    // Eliminamos la etiquetas que puedan existir 
    $n_user = strlen($user);      // Contamos el numero de caracteres 
 
 
	$clav = $_POST["clave"];            // Asi recogemosla clave desde el formulario 
    $clave = strip_tags($clav);    // Eliminamos la etiquetas que puedan existir 
    $n_clave = strlen($clave);      // Contamos el numero de caracteres 
 
	// Abrimos la conexion a la base de datos    
include("abre_conexion.php");
 
 
$user_con = mysql_num_rows(mysql_query("SELECT user FROM usuarios WHERE user='$user'"));
$clave_con = mysql_num_rows(mysql_query("SELECT clave FROM usuarios WHERE clave='$clave'"));
 
 
if ($user_con <> 0 and $clave_con <>0) {
		echo "Identificación Correcta";
 
 
 
	$fran = $user_con;
 
	echo $fran; // para comprobar que si lo guarda
 
?><meta http-equiv="refresh" content="1;url=fichas2.php"><?  }
 
// Cerramos la conexion a la base de datos    
include("cierra_conexion.php");
?>

Este redirecciona a fichas2.php en al cual voy a intentar recoger con el include la variable $fran (que cuando la escribo me reconoce que es global)

1
2
3
4
5
6
7
8
9
10
11
12
<tr>
   <?php include 'login1.php';?>
    <td><p>Bienvenido <?php echo $fran; ?>!</p></td>
 
    <td></td>
    <td><a href="fichas3.php">ficha</td>>
  </tr>
 
</table>
 
 
	<?php $color = 'ROJO' ;?>

La variable color puesta a mano si me la recoge en el siguiente formulario con include. pero en este que uso el include para recoger Fran , lo que me recoge es el
1
echo "Identificación Correcta";

en Resumen si hago variables a mano si me las muestra en otros form con include , pero si la variable que meto es la del post no me va.



ITALO lo que me comentas mas o menos lo e probado por que no entiendo bien .

No obstante seguiré probando y buscare algún tutorial de hacer un login en condiciones a ver si el problema es por ahí
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 italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Variable Global?

Publicado por italo (150 intervenciones) el 02/04/2018 20:53:58
Login.html
1
2
3
4
5
<form method="POST" action="login1.php">
  <p>Usuario: <input type="text" name="user" size="20"></p>
  <p>Clave: <input type="password" name="clave" size="20"></p>
  <p><input type="submit" value="Guardar datos" name="B1"></p>
</form>

login1.php

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
37
38
39
<?php
$use = $_POST["user"];            // Asi recogemos el nombre desde el formulario 
$user = strip_tags($use);    // Eliminamos la etiquetas que puedan existir 
$n_user = strlen($user);      // Contamos el numero de caracteres 
 
$clav = $_POST["clave"];            // Asi recogemosla clave desde el formulario 
$clave = strip_tags($clav);    // Eliminamos la etiquetas que puedan existir 
$n_clave = strlen($clave);      // Contamos el numero de caracteres 
 
// Abrimos la conexion a la base de datos    
include("abre_conexion.php");
 
//preparo query, a un usuario le corresponde solo una password
$numero_query_login = mysql_num_rows(mysql_query("SELECT user, clave FROM usuarios WHERE user='$user' and clave='$clave'"));
 
//recuerda que $numero_query_login contiene solo el numero de records de la query ejecutada (mysql_num_rows)
if ($numero_query_login == 1) {
 
	echo "Identificación Correcta";
 
	$fran = $numero_query_login;
 
	echo $fran; // para comprobar que si lo guarda
 
  //inicio la session para hacer que los datos que deseo sean globales dentro de la aplicacion.
  session_start();
 
  //declaro los datos:
  $_SESSION['fran'] = $fran;
 
  //redireciono al file fichas2.php
  header('Location: fichas2.php');
  exit();
 
}
 
// Cerramos la conexion a la base de datos    
include("cierra_conexion.php");
?>

fichas2.php en tu file agrega al inicio

1
2
3
4
5
<?php
//en tu file fichas2.php agrega:
  //inicio la session
  session_start();
?>

tu file fichas2.php quedaria asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//en tu file fichas2.php agrega:
  //inicio la session
  session_start();
?>
 
<tr>
   <?php include 'login1.php';?>
    <td><p>Bienvenido <?php echo $_SESSION['fran']; ?>!</p></td>
 
    <td></td>
    <td><a href="fichas3.php">ficha</td>>
  </tr>
 
</table>
 
 
	<?php $color = 'ROJO' ;?>

en tu caso

1
$_SESSION['fran'] = $fran;

te dara solo un numero "1" ya que con mysql_num_rows te regresa solo el numero de records de la query, solo eso, si deseas tambien los datos (cosa que imagino) necesitaras hacer la query mysql_query.

en la parte de la query se agrego sea al usuario y a la clave en la misma query, ya que el usuario y su clave deben de coincidir.

recuerda que el include "incluye" el contenido de un file ya interpretado, si ese file se espera paramentros y lo llamas con el include si no los tienes te dara error.

prueba, si tienes errores escribelos.

salud2
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 italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Variable Global?

Publicado por italo (150 intervenciones) el 02/04/2018 21:53:43
hola, en tu file fichas2.php no debes de hacer el inclue al file login1.php, ya que, ese file te redirecciona a fichas2.php...

en tu file fichas2.php borra esto:

1
<?php include 'login1.php';?>

salud2.
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

Variable Global?

Publicado por TheFalcon (7 intervenciones) el 03/04/2018 21:04:55
Muchas Gracias por tus molestias Italo, sigue sin irme, el header no se que función tiene , pero no me redirecciona( si es que es esa su función) asi que puse la linea que yo tenia de redireccionar pero nada.


Lo que si es comprobado al identificarme que
1
$_SESSION['fran']
y
1
$fran
me muestran un 1 con ECHO
a la hora de mostrar el "Identificación correcta"

E puesto el código tal cual me pusiste No obstante esta semana estoy liado de trabajo, así qeu ire probando a ratos y te comento el fin de semana que tendre mas tiempo.

Muchísimas Gracias No obstante.

por si hay otro modo mas facil yo lo que quiero conseguir con todo este follon, es poder recuperar el usuario desde otro formulario, me da igual como.

Un Saludo
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