Foros del Web » Programando para Internet » PHP »

no muestra datos

Estas en el tema de no muestra datos en el foro de PHP en Foros del Web. Tengo el siguiente script que es una pagina index.php Código PHP: <?php session_start (); session_destroy (); $titulo = 'Identificaci&oacute;n' ; require( 'cabecera.inc' ); ?> <form method="POST" action="login.php"> ...
  #1 (permalink)  
Antiguo 08/10/2004, 06:50
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
no muestra datos

Tengo el siguiente script que es una pagina index.php
Código PHP:
<?php
session_start
();
session_destroy();

$titulo='Identificaci&oacute;n';
require(
'cabecera.inc');
?>

<form method="POST" action="login.php">

<center>
<table>
<tr>
    <td>Usuario:</td>
    <td><input type="text" name="usuario" value="" size="8"></td>
</tr>
<tr>
    <td>Clave:</td>
    <td><input type="password" name="clave" value="" size="8"></td>
</tr>
</table>
<input type="submit" value="Entrar"></td>
</center>

</form>
<?php require('pie.inc'); ?>
Y aca la recibo pero no me muestra los dostos del usuario como nombre y clave, y lo recibo con $_POST, pagina de login.php
Código PHP:
<?php

// Array bidimensional con las parejas usuario/clave
$identificacion = array(
    array(
'edward''capuleto' ),
    array(
'nestor',  'tilla' ),
    array(
'armando''bronca')
);

// Recorremos cada pareja del array
foreach ($identificacion as $datos) {
    
// Extraemos los dos campos
    
$id_usuario $datos[0];
    
$id_clave $datos[1];

    if (
$_POST['usuario'] == $id_usuario) {
        if (
$_POST['clave'] == $id_clave) {
            
// Si coincide el usuario y la clave
            // Almacenamos la fecha en la cookie
            
$nombre_cookie 'CURSOPHP_ultima_visita';
            
$ultima_visita = $$nombre_cookie;
            
setcookie($nombre_cookiedate('d/m/Y H:i:s'), time()+13140000 );

            
// Redireccionamos a la siguiente página
            
header('Location: principal.php');

            
// Y guardamos las variables de sesión
            
session_register('usuario');
            
session_register('clave');
            
session_register('ultima_visita');
        } else {
            
// Si coincide el usuario pero no la clave
            // salimos del bucle
            
break;
        }
    }
}

// Si llegamos a ejecutar hasta aquí, ha habido algún error
$titulo 'ERROR EN LOGIN';
require(
'cabecera.inc');

echo 
'<center><h2>';
if (
$_POST['usuario'] != $id_usuario) {
    echo 
"Error, usuario '$usuario' desconocido";
} else {
    echo 
'Error, clave incorrecta';
}
echo 
'</h2><br>';

echo 
'<a href="index.php">Volver</a></center>';


require(
'pie.inc');
?>
Bueno asi no me muestra los datos del usuario, sera quu hay un problemas con las variables de sesion?? Y este es el principal.php
Código PHP:
<?php

$titulo
='P&aacute;gina Principal';
require(
'cabecera.inc');

// Iniciamos la sesión. Todas las variables que hayamos registrado
// estarán ahora disponibles.
session_start();
?>

<center><table>
<tr>
    <td>Usuario:</td>
    <td><?=$_POST['usuario'];?></td>
</tr>
<tr>
    <td>Clave:</td>
    <td><?=$_POST['clave'];?></td>
</tr>
<tr>
    <td>&Uacute;ltima visita:</td>
    <td><?php if(!$ultima_visita)
            echo 
'Esta es su primera visita';
           else
            echo 
$ultima_visita;?></td>
</tr>
</table>

<a href="index.php">Salir</a>
</center>

<?php require('pie.inc'); ?>
Solo me imprime esta es su primera visita, sin los demas datos....
Que estara fallando, seran las variables de seion que hayy que configurarlas..? o las cookies, espero su pronta ayuda...
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #2 (permalink)  
Antiguo 08/10/2004, 08:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No uses los session_register para trabajar con sesiones .. usa los arrays superglobales: $_SESSION .. tanto para registrar una variable (con su valor) en una sesión como para leer su valor (igual que haces con tus $_POST y demás variable externas a tu script).

Puede ser que uses register_globals a OFF y por eso no puedes usar session_register() .. además que si usas PHP 4.1.x en adelante debes trabajar con los arrays superglobales y así hacer independiente tus aplicaciones del valor de esa directiva (php.ini).

Otros problemas que puedas tener son sobre la propagación del SID, .. por lo que usas en tu código lo haces por cookies (o estás obligando a la propagación del SID de sesión .. no de las otras cookeis que a su vez usas tu en tu aplicación). La propagación del SID en cookies requiere de: (php.ini o lo puedes ver en un phpinfo()):

session.use_cookies = ON

Y un navegador que acepte cookies.

más info:
www.php.net/session

Por lo demás .. tampoco uses:
if(!$ultima_visita){

sino en tal caso:
if (!isset($_SESSION['ultima_visita'])){

La función isset() (o incluso empty()) te sirve para ver si una variable está definida o no.

------

Otro detalle .. session_register() registra variables $variables (globales) no $_POST['variable'] ..

Por eso insisto que deberías hacer (uso de los arrays superglobales) para asigar tus variabels de sesión tipo:

$_SESSION['variable']=$_POST['variable']

Y .. el header("location: .. pagina ... ");

hacerlo al final de la declaración de las variables junto con un exit; para terminar la ejecución de tu script en ese punto, pues .. es lo que estás haciendo: llegar a ese punto y redireccionar tu script a otro para "cambiar" .. no te interesa que siga ejecutandose el código que viene a continuación.

Un saludo,

Última edición por Cluster; 08/10/2004 a las 08:37
  #3 (permalink)  
Antiguo 08/10/2004, 15:19
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
ok

siempre que quiera usar sesiones, debo empezar con session_registerr();
y despues de eso, ya puedo asignar las variables que vienen de mi formulario a variables de sesion, luego que se hace??, las destruyo??
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #4 (permalink)  
Antiguo 08/10/2004, 15:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No, .. siempre que uses sesiones necesitas usar session_start() antes de pretender acceder a un valor de esta .. y recuerda usar los arrays superglobales para todo incluido las sesiones: $_SESSION

Cita:
luego que se hace??, las destruyo??
Pues si no necesitas más esos datos para nada mas .. o te deshaces de esas variabels (por si necesitas usar sesiones en el resto del proceso .. ) con unset() o bien destruyes absolutamente toda la sesión con session_destroy()

Pero, .. si usas sesiones para usarlas en una sóla página/scripts desde donde las recoges (tu formulario y script de proceso de estas) .. no tiene mucho sentido usar sesiones. Ahora, si usas >2 páginas/scripts donde requieras de esas variables .. OK, usa sesiones.


Un saludo,
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 01:59.