Foros del Web » Programando para Internet » PHP »

ayuda con paso de variables

Estas en el tema de ayuda con paso de variables en el foro de PHP en Foros del Web. tengo un sistema de vereficacion de usuario para una encuesta mediante el cual buco en una base de datos por RUT y CLAVE para poder ...
  #1 (permalink)  
Antiguo 13/09/2004, 14:59
 
Fecha de Ingreso: agosto-2004
Mensajes: 12
Antigüedad: 19 años, 8 meses
Puntos: 0
ayuda con paso de variables

tengo un sistema de vereficacion de usuario para una encuesta mediante el cual buco en una base de datos por RUT y CLAVE para poder ingresar luego de estar registrado pasa a otra pag donde abro la sesion guardo el rut y la sesion dentro de una tabla rut

mi consulta es como lo puedo hacer para guadar los datos de la encuesta por usuario asignarle la informacion al usuario especifico y como paso los catos del sid y rut de otra manera ke no sea por la base de datos ???

los datos de la encuesta los paso por options y los guardo en la base dato pero como se los asigno al verdadero usuario ke hizo la encuesta no entiendo si me pueden ayudar muchas gracias
aqui el scrip mio

////////////////////// este es el index.php////////////////////////////////

Código PHP:
<form action="index1.php"  method="POST">
    
Rut <input name="Nombre" type="text" size="20" maxlength="10">
    <
blockquote></blockquote>
    
Password <input name="Clave" type="password" size="10" maxlength="10">
    <
BR><BR>
      <
input name="Submit" type="submit" value="Entrar">

</
form
////////////////////// este es el index1.php////////////////////////////////
Código PHP:
<?PHP
    
/*Sesion iniciada*/
    
session_start();
    
/* Inicio el Contador*/
    
if(!isset($counter))
    {
        
$counter 0;
    }
    
#Saca la ID de la sesion y el contador 
    
printf("la sesion para guadarla es: %s<br>"session_id());
    print(
"valor de contador: $counter");
    
    
#Incremento del Couter
    
$counter++;
    
#registra la variable de nuestra session
    
session_register("counter");
    
$mi_sid=session_id();
    echo 
"<h4> $mi_sid </h4>";
?>
<html>
<head>
<Title> Sistema de Administración DTI </Title> 
    <table width="701" height="59" border="1">
      <tr>
        <td width="533"><img src="UAS_Chico1.JPG" width="119" height="80"></td>
        <td width="152"><img src="dti.JPG" width="158" height="99"></td>
      </tr>
    </table>
    <h1>&nbsp;    </h1>
</head>
<body>
<?php
$dia
=date("w");
switch(
$dia)
{
    case 
0:$dia="Domingo";break;
    case 
1:$dia="Lunes";break;
    case 
2:$dia="Martes";break;
    case 
3:$dia="Miércoles";break;
    case 
4:$dia="Jueves";break;
    case 
5:$dia="Viernes";break;
    case 
6:$dia="Sábado";break;
}

//date("w") nos devuelve el número del día con el switch case lo
//aplicamos a el día correspondiente en Español.

$mes=date("n");
switch(
$mes)
{
    case 
1:$mes="Enero";break;
    case 
2:$mes="Febrero";break;
    case 
3:$mes="Marzo";break;
    case 
4:$mes="Abril";break;
    case 
5:$mes="Mayo";break;
    case 
6:$mes="Junio";break;
    case 
7:$mes="Julio";break;
    case 
8:$mes="Agosto";break;
    case 
9:$mes="Septiembre";break;
    case 
10:$mes="Octubre";break;
    case 
11:$mes="Noviembre";break;
    case 
12:$mes="Diciembre";break;
}

//date("n") nos devuelve el número del mes con el switch case lo
//aplicamos a el mes correspondiente en Español.

$numero=date("j");
$anio=date("Y");  
//Tomamos directos el día del mes y el año.

$difhor "+0"//Diferencia horaria entre el server y la Laguna.
$ajuste = ($difhor 60 60); //Ajustamos por horas 60 seg* 60 min.
$hora date("g:i  a",time() + $ajuste); //la hora es igual a la hora del server + el ajuste.

$fecha = ("$dia $numero $mes $anio"); 
?>
<?php
$link 
mysql_connect("10.3.1.16""root"); 
mysql_select_db("encuesta"$link); 
$result mysql_query("SELECT * FROM persona WHERE rut='".$Nombre."' "$link);
$row mysql_fetch_array($result);
if (
$row["rut"]==$Nombre AND $row["clave"]==$Clave)
{
    
    print 
"<h4> Su acceso a sido autorizado, presione...<A HREF='conexion_base.php'>ENCUESTA</A><BR> </h4>";
    
$guardar=mysql_query("INSERT INTO rut (rut, sesion)
    VALUES ('$Nombre', '$mi_sid') "
,$link);
    
$guardar_fecha=mysql_query("INSERT INTO fecha (fecha, hora)
    VALUES ('$fecha', '$hora') "
,$link);
    
    
}
else
{

    print 
"<h4> Usted No esta Autorizado Para Ingresar....<A HREF='index.php'>VOLVER</A><BR> </h4>";
    
}

?>
////////////////////// este es el pregunta2.php////////////////////////////////
Código PHP:
<?PHP
$link 
mysql_connect("10.3.1.16""root"); 
mysql_select_db("encuesta",$link);
$mi_sid=session_name()."=".session_id();
echo 
"<h4> $mi_sid </h4>";
$voto1 "'".substr ("$voto",,5)."'";
/*guardar la fecha pregunta 1*/
$guardar_fecha=mysql_query("INSERT INTO fecha (fecha, hora)
VALUES ('$fecha', '$hora') "
,$link);
/* Capturar fechas de la Base*/
$fecha_hora mysql_query("SELECT * FROM fecha"$link);
$fecha mysql_result($fecha_hora0"fecha");
$hora mysql_result($fecha_hora0"hora");
/*Pregunta*/
$pregunta mysql_query("SELECT * FROM pregunta"$link);
echo 
"     ".mysql_result($pregunta1"pregunta")."<br>"."<br>";
/* obtener el rut */
$rut mysql_query("SELECT * FROM rut"$link);
$rut1 mysql_result($rut0"rut");
/*obterner el cod de la pregunta*/
$cod_preg mysql_query("SELECT * FROM pregunta"$link);
$cod_preg1 mysql_result($cod_preg0"cod_pre");
/* colsulta si ya voto*/
$result mysql_query("SELECT * FROM encuesta WHERE rut='".$rut1."' AND cod_preg='".$cod_preg1."' "$link);
$row mysql_fetch_array($result);
if (
$row["cod_preg"]==$cod_preg1 AND $row["rut"]==$rut1)
{
    
$actualizarmysql_query("UPDATE encuesta SET rut='$rut1', cod_alt=$voto1,".
      
"cod_preg='$cod_preg1', fecha_modi='$fecha', hora_modi='$hora' WHERE cod_preg='$cod_preg1' AND rut='$rut1'"$link);

}
else
{
    
$guardar=mysql_query("INSERT INTO encuesta  (rut, cod_alt, cod_preg, fecha_modi, hora_modi)
    VALUES ('$rut1', $voto1, '$cod_preg1', '$fecha', '$hora') "
$link);

}
?>
los datos de la encuesta los paso por options y los guardo en la base dato pero como se los asigno al verdadero usuario ke hizo la encuesta no entiendo si me pueden ayudar muchas gracias

Última edición por Cluster; 13/09/2004 a las 15:24 Razón: Cualquier persona puede ayudarte ..
  #2 (permalink)  
Antiguo 13/09/2004, 15:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías poner el modelo de datos que usas en tu BD (las estructuras de las tablas).. y como relacionas los datos entre sí (eso de ir haciendo "ingenería inversa" e imaginar el modelo de datos que tienes bajo el código PHP/SQL que pusistes es complicado .. hazlo fácil). Todavía no alcanzo a ver donde gestionas tus usuarios (supongo que tendrás algún registro de usuarios .. o no? .. será esa tabla "rut"?)

Por lo demás .. el uso de sesiones que haces no me parece el más apropiado (usando session_register() ..) DEBES! usar los arrays superglobales $_SESSION (www.php.net/session)

Cita:
mi consulta es como lo puedo hacer para guadar los datos de la encuesta por usuario asignarle la informacion al usuario especifico y como paso los catos del sid y rut de otra manera ke no sea por la base de datos ???
No sé por qué usas una BD para eso . la sesión es para eso mismo . .para guardar temporalmente la información de tu usuarioa autentificado y que ya guardas en una variable de sesión ese dato de "quien" es tu usuario autentificado por ese tal "rut". A todo esto .. si validas en la misma página y sólo tienes una "página" de encuesta no veo mucho sentido usar ni tan siquiera sesiones .. no vale la pena.

Un saludo,
  #3 (permalink)  
Antiguo 14/09/2004, 06:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 12
Antigüedad: 19 años, 8 meses
Puntos: 0
[QUOTE=Cluster]Deberías poner el modelo de datos que usas en tu BD (las estructuras de las tablas).. y como relacionas los datos entre sí (eso de ir haciendo "ingenería inversa" e imaginar el modelo de datos que tienes bajo el código PHP/SQL que pusistes es complicado .. hazlo fácil). Todavía no alcanzo a ver donde gestionas tus usuarios (supongo que tendrás algún registro de usuarios .. o no? .. será esa tabla "rut"?)

Modelo de base datos

Nombre: encuesta
Tablas: encuesta, fecha, persona, pregunta, respuesta, resultado, rut, sede

en la tabla encuesta tengo los siguientes campos
y es donde guardo los datos de la encuesta
+------------+---------+----------+--------------------------+-----------+
| rut | cod_alt | cod_preg | fecha_modi | hora_modi |
+------------+---------+----------+--------------------------+-----------+
| 15772913-6 | 00011 | 00003 | Lunes 13 Septiembre 2004 | 3:32 pm |
| 15772913-6 | 00006 | 00002 | Lunes 13 Septiembre 2004 | 3:32 pm |
| 15772913-6 | 00001 | 00001 | Lunes 13 Septiembre 2004 | 3:32 pm |
| | 00001 | 00001 | Lunes 13 Septiembre 2004 | 3:30 pm |
+------------+---------+----------+--------------------------+-----------+

donde estan los usuarios permitidos
+------------+------------------+----------+--------+
| rut | nombre | cod_sede | clave |
+------------+------------------+----------+--------+
| 15772913-6 | Marcelo Cornejo | 00001 | marce |
| 15136518-3 | Jorge Guerrero | 00001 | 153264 |
| 14533292-3 | Victor Donoso | 00001 | marce |
| 12785317-7 | Cristian Cordova | 00001 | 1313 |
+------------+------------------+----------+--------+

los codigos de respuesta y pregunta
+--------+----------+-----------+
| codigo | pregunta | respuesta |
+--------+----------+-----------+
| 00001 | 00001 | 00001 |
| 00002 | 00001 | 00002 |
| 00003 | 00001 | 00003 |
| 00004 | 00001 | 00004 |
| 00005 | 00001 | 00005 |
| 00006 | 00002 | 00001 |
| 00007 | 00002 | 00002 |
| 00008 | 00002 | 00003 |
| 00009 | 00002 | 00004 |
| 00010 | 00002 | 00005 |
| 00011 | 00003 | 00006 |
| 00012 | 00003 | 00007 |
| 00013 | 00004 | 00001 |
| 00014 | 00004 | 00002 |
| 00015 | 00004 | 00003 |
| 00016 | 00004 | 00004 |
| 00017 | 00004 | 00005 |
+--------+----------+-----------+

tabla rut donde guardo el rut y el ID de sesion de la persona ke estan en linea con la encuesta
+-----+--------+
| rut | sesion |
+-----+--------+
| 15772913-6| 41564564asd56asd5464asd54a65sd|
+-----+--------+

las preguntas de la encuesta
+---------+--------------------------------------------------------------------------------------------+
| cod_pre | pregunta |
+---------+--------------------------------------------------------------------------------------------+
| 00001 | Al comenzar la jornada de trabajo, normalmente el aseo de su estacion de trabajo es: |
| 00002 | Al medio d�, el personal de aseo realiza una lavor de aseo que en su percepcion es |
| 00003 | La basura de su papelero es retirada todos los d�s? |
| 00004 | El personal de aseo tiene una preocupacion por el aseo del bao y la reposicion de insumos |
+---------+--------------------------------------------------------------------------------------------+
las respuestas
+---------+-----------+
| cod_alt | alt_text |
+---------+-----------+
| 00001 | Muy Bueno |
| 00002 | Bueno |
| 00003 | Regular |
| 00004 | Malo |
| 00005 | Muy Malo |
| 00006 | Si |
| 00007 | No |
+---------+-----------+
  #4 (permalink)  
Antiguo 15/09/2004, 19:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
mi consulta es como lo puedo hacer para guadar los datos de la encuesta por usuario asignarle la informacion al usuario especifico y como paso los catos del sid y rut de otra manera ke no sea por la base de datos ???
Sigo sin comprender lo que deseas hacer:

Veo que ya asignas a las respuestas de tu usuario (que lo identificas por el RUT en la tabla de respuestas. Realmente no sé si es que no sabes hacer una consulta SQL a esa tabla de respuestas por tal rut (serán las respuestas de ese usuario).

El tema que comentas de "guardar" las respuestas que vá dando tu usuario en tu BD .. y que quieres hacerlo en una sesión, deberías crear un array con las respuestas y ese array propagarlo en la sesión. Al finalizar tu encuesta si corresponde, creas tus registros en tu BD con esas respuestas.

El array para una "sesión" es exactamente igual que un array común ..Puedes ir usando array_push() para ir añadiendo elemento/s a tu array/s (dos unidimensionales o una bidimiensional) y luego leer ese array/s para ir creando tus registros en tu BD (bajo un bucle que lea el array tipo for() o foreach() .. ir haciendo los INSERT de esos elementos en la tabla que corresponda).

Ahora .. visto el modelo de datos que usas .. permiteme algunos consejos:
1) trabajar con Identificadores autonuméricos para las relaciones entre las tablas y no por tus "códigos" o campos como ese "rut". Así podrás indexar tus tablas y obtener mejor rendimiento de tus consultas SQL.

Te recomiendo la lectura de los tutoriales de:
www.mysql-hispano.com (hay uno que trata de "normalización" y otro sobre crear Indices para las BD)

2) trabaja con fechas standars de la BD (Mysql en tu caso) .. Usa campos DATE o en tu caso un DATETIME para guardar fecha y hora de ese evento .. Usa las funciones de tratamiento de fechas de Mysql para formatear la fecha de salida para tu aplicación como necesites: DATE_FORMAT()

www.mysql.com

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 16:42.