Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Colocar variable global

Estas en el tema de Colocar variable global en el foro de Bases de Datos General en Foros del Web. Hola amigos. Lo que pasa que le he declarado a una variable el valor de una consulta. Y dicha variable la imprimo en el mismo ...
  #1 (permalink)  
Antiguo 12/01/2011, 14:35
Avatar de Kurozaki  
Fecha de Ingreso: diciembre-2010
Ubicación: Con mi Zanpakutou (Colima, MEX).
Mensajes: 175
Antigüedad: 13 años, 11 meses
Puntos: 9
Colocar variable global

Hola amigos.

Lo que pasa que le he declarado a una variable el valor de una consulta.
Y dicha variable la imprimo en el mismo documento .php y si me funciona.

El problema es que yo quiero que esta variable que se encuentra en el php donde accedo a la base de datos y hago la consulta.

esta variable la quiero imprimir en otro php llamado index.php (donde hago la consulta se llama validar.php)

Como hago esto:

Actualmente en el documento validar.php tengo declarado asi:
$_MAILTO = $row['email'];

Y si en esta misma hoja o pagina o documento (validar.php)

agrego una linea para imprimir dicha variable, ejemplo:
echo 'tu mail es '.$_MAILTO.'.';

Si me dice que mail es.

Pero cuando agrego en el archivo index.php

La misma linea:
Código PHP:
echo 'tu mail es '.$_MAILTO.'.'
No me imprime nada.
Es por eso que creo, que se tiene que hacer alguna variable global o algo asi, para que funcione en cualquier archivo .php externo.

Me ayudan

Última edición por Kurozaki; 12/01/2011 a las 16:39
  #2 (permalink)  
Antiguo 12/01/2011, 22:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Colocar variable global

Si incluyes validar.php en tu archivo index.php, deberia funcionar. A menos que la variable se sobreescriba luego de que hagas el include.

Muestranos el codigo
  #3 (permalink)  
Antiguo 12/01/2011, 23:09
Avatar de Kurozaki  
Fecha de Ingreso: diciembre-2010
Ubicación: Con mi Zanpakutou (Colima, MEX).
Mensajes: 175
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Colocar variable global

son 5 archivos. Nomas pondre 3 que son los mas importantes.

El index.
Código PHP:
Ver original
  1. <?php
  2. echo 'Bienvenido ';
  3. if (isset($_SESSION['k_username'])) {
  4.     echo '<b>'.$_SESSION['k_username'].'</b>.';
  5.     echo '<p><a href="logout.php">Logout</a></p>';
  6. }else{
  7.     echo '<p><a href="login.php">Login</a></p>
  8.      <p><a href="registrar.php">Registrar</a></p>';
  9. }
  10. ?>
*En este, estan las opciones de login, y registrarse.
**Este mismo index, una vez que te logueas, ya no muestras las opciones login ni registrarse. Pero muestra un dato de la BD que es el usuario y lo imprime diciendo "Bienvenido (Usuario)"



Este es el archivo de login, solo contiene el form donde ingresas los datos (creo que no es importante)
Código HTML:
Ver original
  1. <form action="validar_usuario.php" method="post">
  2. Usuario:<input type="text" name="usuario" size="20" maxlength="20" />
  3. <br />
  4. Password:<input type="password" name="password" size="10" maxlength="10" />
  5. <br />
  6. <input type="submit" value="Ingresar" />
  7. </form>

Y por ultimo, el mas importantisimo. (Cuando ingresas tus datos en login, y le das "enviar) por medio del action="validar_usuario.php" Se envia a este php que pondre a continuacion y hace muchas funciones, entre ellas ver si el usuario y pass existen etc etc...
Código PHP:
Ver original
  1. <?php
  2. //datos para establecer la conexion con la base de mysql.
  3. mysql_connect('Host server SQL','USUARIO SQL','PASSWORD SQL')or die ('Ha fallado la conexión: '.mysql_error());
  4. mysql_select_db('NAME SQL')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  5. function quitar($mensaje)
  6. {
  7.     $nopermitidos = array("'",'\\','<','>',"\"");
  8.     $mensaje = str_replace($nopermitidos, "", $mensaje);
  9.     return $mensaje;
  10. }
  11. if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
  12. {
  13.  
  14.     $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
  15.     $password = $HTTP_POST_VARS["password"];
  16.     $result = mysql_query('SELECT password, usuario, email FROM usuarios WHERE usuario=\''.$usuario.'\'');
  17.     if($row = mysql_fetch_array($result)){
  18.         if($row["password"] == $password){
  19.             $_SESSION["k_username"] = $row['usuario'];
  20.             echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
  21.             echo '<a href="index.php">Index</a></p>';
  22.             echo 'Ingreso exitoso, ahora sera dirigido a la pagina principal.';
  23.             echo    '<script type="text/javascript">
  24.                     setTimeout("location.href=\'index.php\'",7000)
  25.                     </script>';
  26.         }else{
  27.             echo 'Password incorrecto';
  28.         }
  29.     }else{
  30.         echo 'Usuario no existente en la base de datos';
  31.     }
  32.     mysql_free_result($result);
  33. }else{
  34.     echo 'Debe especificar un usuario y password';
  35. }
  36. ?>

Si ven en esta linea:
$result = mysql_query('SELECT password, usuario, email FROM usuarios WHERE usuario=\''.$usuario.'\'');

consulto el password, usuario y email.
Lo que quiero es hacer que este dato (email) cuando redireccione a index.php me diga (Este es su correo: (email) )

Ya intente haciendo esto:
$Mailto = $row['email'];

Y despues pongo echo 'tu mail es: '.$mailto;


esto si me funciona, si lo coloco en validar_usuarios.php
Pero cuando lo coloco en index.php (Que es donde quiero que me muestre el correo de dicho usuario) No lo puedo hacer
  #4 (permalink)  
Antiguo 13/01/2011, 04:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Colocar variable global

Eso deben resolvértelo en el foro PHP. Ellos te orientarán sobre las variables de sesión y lo que tienes que hacer en este caso.
  #5 (permalink)  
Antiguo 13/01/2011, 09:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Colocar variable global

Solo tienes que guardar una variable de SESSION, luego mostrarla donde pones el usuario:
Código PHP:
if($row["password"] == $password){
            
$_SESSION["k_username"] = $row['usuario'];
            
$_SESSION["email"] = $row['email']; //Agregas esto 
Luego en tu archivo index.php solo tienes que imprimir la variable $_SESSION['email'] donde quieras mostrarla.
Código PHP:
<?php
session_start
();
echo 
'Bienvenido ';
if (isset(
$_SESSION['k_username'])) {
    echo 
'<b>'.$_SESSION['k_username'].'</b>.';
    echo 
' Tu correo es: '$_SESSION['email'];
    echo 
'<p><a href="logout.php">Logout</a></p>';
}else{
    echo 
'<p><a href="login.php">Login</a></p>
     <p><a href="registrar.php">Registrar</a></p>'
;
}
?>
  #6 (permalink)  
Antiguo 13/01/2011, 09:49
Avatar de Kurozaki  
Fecha de Ingreso: diciembre-2010
Ubicación: Con mi Zanpakutou (Colima, MEX).
Mensajes: 175
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Colocar variable global

Por intuicion, anteriormente, habia hecho algo casi casi 100% similar, a pura logica.
Pero veo que el $_SESSION es algo muy importante.

Yo creia que era una sola variable y hacia el mismo metodo solo que ponia $MAILTO = $row ['email'];

Bueno bueno... Ta quedo, Muchisimas Gracias por tu respuesta Ronruby.

Aunque me quedo la dudita de por que en el archivo validar.php agregamos comillas dobles:
$_SESSION["email"] = $row['email'];

y en el index, las agregamos normales.
$_SESSION['email'];

Es lo unico que me anda picando por saber =P
Desde ya Gracias
  #7 (permalink)  
Antiguo 13/01/2011, 11:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Colocar variable global

En este caso es lo mismo, las comillas dobles interpretan variables en caso de tenerlas dentro de la cadena y las simples no, pero en tu caso no afecta en nada.

Etiquetas: global, variables
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 14:37.