Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/01/2009, 17:47
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ya no se puede hacer mas

Has escrito esta misma pregunta en 10 temas distintos. Procura seguir los mismos hilos por favor.

Empezemos desde 0. Hay varios conceptos que los tienes errados. Me gustaría que me dijeras qué es para tí una sesión en php. Resulta que los datos de sesión son datos que existen sólo mientras el usuario entra a tu sitio y permanece en él. Una vez que tu usuario salga, entonces los datos se pierden. Esto es ideal para sistemas de login y autentificación, por ejemplo.

Pero si quieres que tu sistema recuerde algún dato para siempre, entonces no puedes usar sesiones. Debes usar algún sistema de almacenamiento permanente, como una base de datos. Los datos en una base de datos sólo se modifican si tú explícitamente los modificas, y son totalmente independiente de las sesiones.

Enfocándonos a tu problema. Necesitas en tu base de datos un campo adicional que sirva de "bandera", esto quiere decir, que le diga a tu sistema si tu usuario ya llenó el formulario o aún no lo ha hecho. Cuando tu usuario recién se registra, este campo bandera estará en off, osea será un campo con un valor 0. Cada vez que tu usuario inicia sesión, imagino hace suna consulta al estilo

Código PHP:
$usuario $_POST['usuario'];
$contrasena $_POST['contrasena'];
 
$sql mysql_query("SELECT * FROM tabla_de_usuarios WHERE usuario='$usuario' and contrasena = '$contrasena'");
 
// ....
 
$datos mysql_fetch_array($sql); 
Cierto?. En datos tienes todos los datos de tu usuario, incluído eçl de tu cxampo bandera. Eso hace el * en la consulta, e suna solicitud de todas las columnas de tu tabla para los criterios especificados.

Ahora, ya sabiendo que $datos es un array con los datos de tu usuario, es fácil hacer un if para verificar el valor de tu campo bandera "lleno_el_formulario" (p.ej.) y de acuerdo a eso mostrar o no el link a tu formulario, mostrar o no el formulario, y por último procesar o no el formulario.

Basta poner

Código PHP:
if($datos['lleno_el_formulario'] == 0) {
    
// Mostrar formulario
} else {
    
// Ya llenó el form

Obviamewnte deberás pensar en como mantener los datos de tu usuario a lo largo de toda su sesióin (de toda su visita, ahí si usas variables de sesión).

Finalmente, cuando tu usuario llena el formulario, y has verificado que tu campo bandera está en 0, entonces lo procesas, actualizas tu base de datos, y cambias el valor de ese campo bandera a 1.

De verdad no sé qué más podría decirte. Esto lo llevo diciendo en los 10 temas que has creado al respecto. Te sugiero investigar sobre sesiones en php y sobre mysql y php

Mucha suerte,