Foros del Web » Programando para Internet » PHP »

Problemas con variables de session

Estas en el tema de Problemas con variables de session en el foro de PHP en Foros del Web. Hola amigos de FDW, Tengo dos dudas con respecto al uso de variables de sesion La primera, es que en la página donde tengo el ...
  #1 (permalink)  
Antiguo 13/02/2011, 17:29
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años, 1 mes
Puntos: 2
Problemas con variables de session

Hola amigos de FDW,
Tengo dos dudas con respecto al uso de variables de sesion

La primera, es que en la página donde tengo el formulario que quiero pasar a variables los campos establezco la session

formulario.php
Código PHP:
<?
session_start
();
    
$_SESSION['nombre'] = $_POST["nombreCliente"];
    
$_SESSION['apellido'] = $_POST["apellidoCliente"];
    
$_SESSION['rut'] = $_POST["rutCliente"];
    
$_SESSION['direccion'] = $_POST["direccionCliente"];
?>
luego el formulario.

la duda es que me aparece al ejecutar la página notices tales como
Código PHP:
NoticeUndefined indexnombreCliente in C:Documents and SettingsRICARDOMis documentosDownloadsxampp-win32-1.7.4-VC6xampphtdocssav11ingresoot.php on line 6 
Por ahi he leido que esos se pueden ocultar y que no es grave...pero por otros lados que no debería ¿Hay que hacer alguna verificacion o algo para que no aparezca?

La otra duda que tengo:

es que al llenar el formulario y testear las variables, en la página siguiente donde llamo a esas variables:

al llamado de
Código PHP:
<?
 
echo $_SESSION['apellido'];
?>
Aparece:

Código PHP:
WarningUnknownYour script possibly relies on a session side-effect which existed until PHP 4.2.3Please be advised that the session extension does not consider global variables as a source of dataunless register_globals is enabledYou can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to offrespectively in Unknown on line 0 
Pero lo más curioso es que si refresco la página (F5) aparece el valor que pedí que apareciera, o sea El Apellido que pido en ese echo.

¿Cómo puedo hacer que ande todo bien?

Saludos.
  #2 (permalink)  
Antiguo 13/02/2011, 17:41
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problemas con variables de session

bueno voy a darte algunos consejos primero el shor_tag de php no esta recomendado se va a considerar obsoleto en versiones futuras asi que cambia esto <? por esto <?php.

El ocultar un waring o error no lo acomoda sencillamente estas ocultando algo que esta mal, sencillamente el navegador te esta indicando que estas asignando un indice que no has declarado, eso se acomoda haciendo uso del isset.

espero que mis comentarios te sean de ayuda
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 13/02/2011, 17:58
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Problemas con variables de session

Ya mira, como te recomendaron más arriba no uses <? usa <?php, por otra parte es natural que salgan esos notice, ya que asignas a las variables de sesión valores POST cuando aún no has enviado ningún POST, debes hacer más o menos así:

Código PHP:
<?php 
   session_start
();
  
    if (isset(
$_POST['nombreCliente'])) {
       
$_SESSION['nombre'] = $_POST["nombreCliente"];
       
$_SESSION['apellido'] = $_POST["apellidoCliente"];
       
$_SESSION['rut'] = $_POST["rutCliente"];
       
$_SESSION['direccion'] = $_POST["direccionCliente"];
   }

?>
Aunque algunos usan solo isset($_POST) yo prefiero ponerle el primer campo envíado, por si acaso haya más de un formulario en la misma página. Bueno, para el otro caso, no sé exactamente qué será, pero me parece que podría ser la ausencia de colocar session_start() al inicio, debes poner eso cada vez que quieras usar variables de sesión.

Eso sería todo, suerte!
  #4 (permalink)  
Antiguo 13/02/2011, 18:23
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Problemas con variables de session

hola carlos_belisario, gracias por responder, con respecto al short tag de php, el único que estaba en mi archivo asi era el del echo, lo cambie.

apliqué isset de la siguiente forma

$_SESSION['nombre'] = isset($_POST["nombreCliente"]);

Pero al momento de llamar la variable no muestra nada.

¿Esta bien lo que hice?
  #5 (permalink)  
Antiguo 13/02/2011, 18:33
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Problemas con variables de session

Artificium, hice lo que me dijiste, pero sigue sin mostrar nada al echo :/
  #6 (permalink)  
Antiguo 13/02/2011, 18:57
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problemas con variables de session

pues el isset es para una comparacion por lo tanto se utiliza con un condicional tal cual como te lo indico el compañero
if (isset($_POST['nombreCliente'])) {
$_SESSION['nombre'] = $_POST['nombreCliente'];
}
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 13/02/2011, 21:42
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Problemas con variables de session

Cita:
Iniciado por Ojopex2 Ver Mensaje
Artificium, hice lo que me dijiste, pero sigue sin mostrar nada al echo :/
Si lo has hecho bien, se tienen que mostrar después de hacer el envío del form. Así lo intentas ver?
  #8 (permalink)  
Antiguo 14/02/2011, 03:35
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Problemas con variables de session

Ya está solucionado, estaba haciendo todo en el formulario, antes de enviar cualquier dato.

Muchas gracias y saludos

Etiquetas: session, 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 15:42.