Foros del Web » Programando para Internet » PHP »

Problema con las sesiones...

Estas en el tema de Problema con las sesiones... en el foro de PHP en Foros del Web. A ver si alguien me lo puede explicar....Tengo dos scripts: Nombre del script 1: formaAlta.php -------------------------------------------- Código: <?php session_start(); $nombre=$_SESSION['nombre']; ?> <html> <head> <title></title> </head> ...
  #1 (permalink)  
Antiguo 21/11/2002, 17:23
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
Problema con las sesiones...

A ver si alguien me lo puede explicar....Tengo dos scripts:

Nombre del script 1: formaAlta.php
--------------------------------------------
Código:

<?php 
	session_start();	
	$nombre=$_SESSION['nombre']; 
?> 

<html>
<head>
<title></title>
</head>

<body>

<form method="post" action="insertar.php">
	<input type="text" name="nombre" value="<? echo $nombre; ?> ">
</form>

</body>
</html>
Nombre del script 2: insertar.php
------------------------------------------
Código:
<?
	session_start(); 
	$_SESSION['nombre']=$nombre;

?> 

<html>
<head>
<title></title>
</head>

<body>

<?php 	
	$link = conectaBD(); 'ConectaDB es una funcion que me devuelve un valor de enlace.Funciona bien.
	$sql = "insert into T_Nombre (nombre) values  ('$nombre')";

	if ($result = mysql_query($sql,$link)) {
		printf ("El nombre fue insertado con exito");
		$nombre = "";

	}else{
		printf ("Hubieron problemas durante la inseción del nombre");
		printf ("<br><br>Inténtelo de nuevo en unos minutos");
	}    
?>    </body>
</html>
En teoria lo que quiero es que si el nombre no se pudo insertar (por lo que fuera) que el valor del nombre se quede en la variable de sesion, de manera que cuando el tio vuelva al formualrio de alta no tenga que meter el nombre de nuevo, sino que este aparezca ya escrito.

Si la insercion no da problemas todo va bien y todo sale bien. EL problema es que si hubieron problemas, el tio vuelve a la pagina de alta y ve el nombre (hasta aqui como quiero), pero si modifica ese nombre por otro, vuelve a darle al submit, vuelve a haber un error y vuelve a la pgina de alta de nuevo, el valor del nombre sigue siendo el antigua. O sea, que parece que una vez coge un valor el nombre ya no tengo manera de quitarmelo de encima...


Complicado de explicar....lo se.....pero alguien me entendio???



Gracias a todos!!

ToKaTa.
  #2 (permalink)  
Antiguo 21/11/2002, 17:33
Avatar de GhostRider  
Fecha de Ingreso: julio-2001
Ubicación: en mi propio infierno
Mensajes: 248
Antigüedad: 22 años, 8 meses
Puntos: 0
el $nombre en insertar lo estas tomando desde la sesión, en vez de tomarlo desde el input de la forma, entonces es obvio que si lo cambia en el input en insertar aun aparecerá el nombre anterior que ya estaba registrado en la sesion.

Última edición por Ferdy; 24/11/2002 a las 08:42
  #3 (permalink)  
Antiguo 22/11/2002, 10:34
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
hola!!


en el insertar.php estoy utiilizando:


$_SESSION['nombre']=$nombre;


esto es tomar los datos desde la sesion???, es que como yo entendi el tema de las variables de session pensaba que lo que estoy haciendo en este caso en guardar en la variable de sesion lo que me esta llegando del campo nombre del formulario de la pagina de alta. No estoy haciendo eso????


Gracias por conestar!!


ToKaTa.
  #4 (permalink)  
Antiguo 22/12/2002, 10:26
 
Fecha de Ingreso: febrero-2002
Mensajes: 9
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola Tokata,
pues bien, tu variable nombre si la incluyes al principio de pagina en variable session sera siemmpre recuperada con el contenido inicial.
Ahora bien, lo que pasa es que en tu formulario metes una variable que tiene el mismo nombre y de ahi viene la confusion.
Espero que esto te aclare un poco.
Hasta pronto.

ToNy3
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 23:12.