Foros del Web » Programando para Internet » PHP »

Ya no se puede hacer mas

Estas en el tema de Ya no se puede hacer mas en el foro de PHP en Foros del Web. Muchachos de la comunidad les pido un favor al quien me descubra por Dios donde esta el error parezco un imbecil tratando de resolver esto ...
  #1 (permalink)  
Antiguo 20/01/2009, 14:33
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 3 meses
Puntos: 0
Ya no se puede hacer mas

Muchachos de la comunidad les pido un favor al quien me descubra por Dios donde esta el error parezco un imbecil tratando de resolver esto como 4 dias ya pero nada
espero q las criticas si las hay sean como para un niño de 13 años pq solo asi me podre dar cuanta

Miren esto es para q el usuario ya logeado y unico en el sistema solo llene este formulario una sola vez en toda su linda vida de mi sistema osea cuandp ya vuelva a entrar al sistema este mismo usuario encuentre ya deshabilitado esta opcion de link pq ya lo lleno la anterior sesion (q solo llene una sola vez y nada mas en toda su vida de sesion) hice esto pero no me resulta ni controla ni actualiza... estoy volado ahora si...

session_start();
include ("../conectar.php");
$link=Conectarse();
$_SESSION[nombre] = $usuario;
$_SESSION[contrasena] = $contrasena;
$result = mysql_query("select veo from login3 where nick ='".$_SESSION['nombre']."'",$link);

$vista = mysql_result($result,0);
if ($vista == 0){
?>
<li> <a href= "carlos2.html"><font size="3" color="#000000">Ficha Individual</font></a> </li><br>
<?php
mysql_query("Update login3 Set veo = '1' where nick='".$_SESSION['nombre']."'",$link);
}
else {
echo "ya lleno esto";
}
?>
  #2 (permalink)  
Antiguo 20/01/2009, 16:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Ya no se puede hacer mas

1- El usuario ya inicio sesion?
2- De donde sacas $usuario y $contrasena para asignarlos a variables de sesion?
3- En $_SESSION[nombre] y $_SESSION[contrasena] te falta colocar comillas simples o dobles a nombre y contrasena.

Si la respuesta a la primera pregunta es si, deduzco que las variables de sesion para nombre y contrasena ya existen por lo que debes eliminar las siguientes lineas:

$_SESSION[nombre] = $usuario;
$_SESSION[contrasena] = $contrasena;
__________________
- León, Guanajuato
- GV-Foto
  #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,
  #4 (permalink)  
Antiguo 28/01/2009, 18:08
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ya no se puede hacer mas

Puta enserio muchas gracias Okram de verdad q todas tus cargadas me han servido de mucho la pude hacerlo te cuento mas o menos como fue la cosa mira

datos control menu

cuando enviaba los datos a control solo hasta alla llegaban y en menu no podia hacre nada pq no llega nada de post entonces suprimi control y listo

De verdad muchas gracias es muy bueno FELICITO pero tendran mas noticias sobre mi
Una cosita Okram en mi trabajo me pidieron una cosulta mira existe un sistema que funciona muy bien a las exigencias esta echo en php pero ellos me dijeron q quieron llevarlo a php orientado a objetos existe alguna manera de llevarlo rapido o tendre q volver a el analisis
  #5 (permalink)  
Antiguo 28/01/2009, 20:33
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ya no se puede hacer mas

El trabajar con objetos y clases no es un mero cambio de apariencia en el código, ni se trata de agregar class o $this->. Con esto quiero decir que tendrás que rehacer todo el sistema, y puede que basándote en el sistema anterior, pero al final será una lógica totalmente distinta.

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 09:17.