Foros del Web » Programando para Internet » PHP »

Pasar datos de BD de una pantalla a otra

Estas en el tema de Pasar datos de BD de una pantalla a otra en el foro de PHP en Foros del Web. Ya publique mi duda pero parece que no me explique bien y no obtuve respuestas: Tengo un sistema de autenticación donde quiero pasar los datos ...
  #1 (permalink)  
Antiguo 30/06/2005, 18:25
 
Fecha de Ingreso: agosto-2004
Mensajes: 27
Antigüedad: 13 años, 3 meses
Puntos: 0
Pasar datos de BD de una pantalla a otra

Ya publique mi duda pero parece que no me explique bien y no obtuve respuestas:
Tengo un sistema de autenticación donde quiero pasar los datos de una pantalla donde inicié la sesión, y que me envia a la siguiente pantalla de la aplicacion y poder mostrarle al invitado sus datos en esta última.
A la segunda pantalla voy con:
header ("Location: aplicacion.php");
pero cunado hago echo de los datos no consigo que aparezcan.
Muchas Gracias
  #2 (permalink)  
Antiguo 30/06/2005, 20:26
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 12 años, 6 meses
Puntos: 1
Cita:
Iniciado por cherubene
Ya publique mi duda pero parece que no me explique bien y no obtuve respuestas:
Tengo un sistema de autenticación donde quiero pasar los datos de una pantalla donde inicié la sesión, y que me envia a la siguiente pantalla de la aplicacion y poder mostrarle al invitado sus datos en esta última.
A la segunda pantalla voy con:
header ("Location: aplicacion.php");
pero cunado hago echo de los datos no consigo que aparezcan.
Muchas Gracias
podrias poner un poco de codigo asi podemos ver en donde esta tu error. No se si has cargado las variables de sesion y esas cosas.
  #3 (permalink)  
Antiguo 01/07/2005, 02:33
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 5 meses
Puntos: 2
Primero este tipo de consultas se tendrian que hacer junto al codigo, aqui nadie podra darte una mano sino podemos ver que cosas haces en los script's, no digo que pongas todo el codigo, solamente la parte en la que se producen los errores o lo sospechas.
Segundo, estas usando sesiones o cookies?? si es asi solamente puedo esperar a que pongas el codigo del script o hacer un pedido como lo hizo deet, podrias poner un poco del codigo?. Si no usas sesiones y cookies deberias, pero talvez quieras pasarlo por la url y esa información tendria que ser agregada en el header... De todas formas tendria que esperar que postees codigo para poder ayudarte... Saludos...
  #4 (permalink)  
Antiguo 02/07/2005, 10:13
 
Fecha de Ingreso: agosto-2004
Mensajes: 27
Antigüedad: 13 años, 3 meses
Puntos: 0
Es un sistema de validación que ya he publicado.
El usuario registrado ya tiene sus datos en la BD, e inicia sesión.

script validacion.php

<form action="controlando.php" method="POST">
<table align="center" width="284" cellspacing="2" cellpadding="2" border="0">
<tr>
<td align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><font size="3">Datos incorrectos</font></span>
<?}else{?>
bgcolor=#cccccc><font size="3">Introduzca sus datos de acceso</font>
<?}?>
</td>
</tr>
<tr>
<td width="276"><div align="center">Nombre de Usuario:<font size="3" face="Tahoma"><br>
</font>
<input type="Text" name="usuario" size="28" maxlength="50">
</div></td>
</tr>
<tr>
<td><div align="center">Password:<br>
<input type="password" name="contrasena" size="28" maxlength="50">
</div></td>
</tr>
<tr>
<td align="center"><input name="Submit" type="Submit" value="Entrar"></td>
</tr>
</table>
</form>


script controlando.php

<?
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("mibase",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM stone WHERE nick='$usuario' and password='$contrasena'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: form_respuesta.php");

}else {
//si no existe le mando otra vez a la portada
header("Location: validacion.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>

script seguridad.php

<?
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: validacion.php");
//ademas salgo de este script
exit();
}
?>

Este es el formulario para enviar la respuesta form_respuesta.php

<?
include ("seguridad.php");
?>
<form action="respuesta.php" method=post>
<div align="left">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="206" colspan="2" valign="top"><p align="center"> <br>
RESPUESTA 1(*):<br>
<input type=text name="respuesta1" size=40>
<br>
RESPUESTA 2(*):<br>
<input type=text name="respuesta2" size=40>
<br>
Comentarios:<br>
<textarea name=coment cols=30 rows=6></textarea>
<br>
(*) Datos Obligatorios </p></td>
</tr>
<tr>
<td height="13" colspan="2" valign="top"><div align="center">
<div align="center"></div>
<div align="center">Seleccione el rubro de su inter&eacute;s</div>
</div></td>
</tr>
<tr>
<td width="244" height="38" valign="top"><p>
<label>
<input name="opcion1" type="checkbox" value="Opcion 1">
</label>
Opcion 1<br>
<label>
<input name="opcion2" type="checkbox" value="Opcion 1">
</label>
Opcion 2
<label></label>
<br>
</p></td>
<td width="256" valign="top"><label>
<input name="opcion3" type="checkbox" value="Opcion 3">
</label>
Opcion 3<br> <label>
<input name="opcion4" type="checkbox" value="Opcion 4">
</label>
Opcion 4
<label></label></td>
</tr>
</table>
<div align="center"><br>
<input name="submit" type=submit value="Enviar">
<input name="submit2" type=reset value="Borrar">
</div>
</div>
</form>


Y el fichero respuesta.php donde me envía el mail con las respuestas y los datos del usuario

<?
include ("seguridad.php");
?>
<?
//Pido los datos obligatorios
if(trim($HTTP_POST_VARS["opcion1"]) != "" && trim($HTTP_POST_VARS["opcion2"]) != "" )
{
if (!$HTTP_POST_VARS){
}else{
//Estoy recibiendo el formulario, compongo el cuerpo y esta es la parte
//que además me debe tomar datos de la BD
$cuerpo .= "Formulario enviado desde MI PORTAL\n"."\n";
$cuerpo .= "Empresa: " . $HTTP_POST_VARS["empresa"] . "\n";
$cuerpo .= "Contacto: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Dirección: " . $HTTP_POST_VARS["address"] . "\n";
$cuerpo .= "Ciudad: " . $HTTP_POST_VARS["city"] . "\n";
$cuerpo .= "País: " . $HTTP_POST_VARS["pais"] . "\n";
$cuerpo .= "Código Postal: " . $HTTP_POST_VARS["postal"] . "\n";
$cuerpo .= "Telefono: " . $HTTP_POST_VARS["telefono"] . "\n";
$cuerpo .= "Fax: " . $HTTP_POST_VARS["fax"] . "\n";
$cuerpo .= "Horario de Contacto: " . $HTTP_POST_VARS["horario"] . "\n";
$cuerpo .= "Respuesta1: " . $HTTP_POST_VARS["respuesta1"] . "\n";
$cuerpo .= "Respuesta2: " . $HTTP_POST_VARS["respuesta2"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";
$cuerpo .= "Respuestas:" . "\n";
$cuerpo .= "" . $HTTP_POST_VARS["opcion1"] ;
$cuerpo .= " -" . $HTTP_POST_VARS["opcion2"] ;
$cuerpo .= " -" . $HTTP_POST_VARS["opcion3"] ;
$cuerpo .= " -" . $HTTP_POST_VARS["opcion4"] ;

$email_webmaster = "[email protected]";
//mando el correo...
mail("[email protected]","Cuerpo del mensaje",$cuerpo,"FROM: $email_webmaster");

//doy las gracias por el envío
echo "El formulario se ha enviado correctamente";
}
}else{
echo "Por favor escriba LAS RESPUESTAS";
}
?>

El tema que solo me llega las Respuestas y las Opciones y no los datos de registros de la DB. Tampoco sé como el usuario al identificarse puede ver en la segunda pantalla todos los datos con los que se registró.
Muchas gracias
  #5 (permalink)  
Antiguo 02/07/2005, 21:51
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 12 años, 6 meses
Puntos: 1
primero que nada, te recomendaria poner la directiva register_globals=off, a partir de PHP 4.2.0 esta directiva por defecto esta en "off"
chequeate esto
http://www.php.net/manual/es/security.globals.php

segundo que no hace falta la funcion session_start() si vas a hacerlo con session_register()
http://www.php.net/manual/es/ref.session.php

tercero que no definiste ninguna variable de sesion que haga referencia al usuario, con lo cual no vas a saber en las paginas siguientes cual es el usuario logueado.

cuarto que en el archivo respuesta.php deberias tomar los datos restantes de la DB con la variable de sesion que hace referencia al usuario.

para mas claridad en el codigo yo uso las funciones session_start() con $_SESSION["mi_variable"], ademas asi puedo saber de donde provienen las variables.

aqui te dejo los archivos modificados


Código PHP:
<form action="controlando.php" method="POST">
<table align="center" width="284" cellspacing="2" cellpadding="2" border="0">
<tr> 
<td align="center" 
<? if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><font size="3">Datos incorrectos</font></span> 
<? }else{?>
bgcolor=#cccccc><font size="3">Introduzca sus datos de acceso</font> 
<? }?>
</td>
</tr>
<tr> 
<td width="276"><div align="center">Nombre de Usuario:<font size="3" face="Tahoma"><br>
</font> 
<input type="Text" name="usuario" size="28" maxlength="50">
</div></td>
</tr>
<tr> 
<td><div align="center">Password:<br>
<input type="password" name="contrasena" size="28" maxlength="50">
</div></td>
</tr>
<tr> 
<td align="center"><input name="Submit" type="Submit" value="Entrar"></td>
</tr>
</table>
</form>
//-------------------------------------------
<? 
$usuario
=$_POST["usuario"];
$contrasena=$_POST["contrasena"];
//conecto con la base de datos 
$conn mysql_connect("localhost","root",""); 
//selecciono la BBDD 
mysql_select_db("mibase",$conn); 

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM stone WHERE nick='$usuario' and password='$contrasena'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 

//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos 
//defino una sesion y guardo datos 
session_start(); 
$_SESSION["autentificado"]="SI"
//guardo el nombre de usuario para luego buscar en la DB los datos del mismo
$_SESSION["dat_usr"]=$_POST["usuario"];
header ("Location: form_respuesta.php");
exit();
}else { 
//si no existe le mando otra vez a la portada 
header("Location: validacion.php?errorusuario=si"); 
exit();

//mysql_free_result($rs); 
//mysql_close($conn); 
?>
//--------------------------------------------------
<?
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: validacion.php?aut=$autentificado");
//ademas salgo de este script
exit();

?>
//-------------------------------------------------
<?
include ("seguridad.php");
?>
<form action="respuesta.php" method=post>
<div align="left">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> 
<td height="206" colspan="2" valign="top"><p align="center"> <br>
RESPUESTA 1(*):<br>
<input type=text name="respuesta1" size=40>
<br>
RESPUESTA 2(*):<br>
<input type=text name="respuesta2" size=40>
<br>
Comentarios:<br>
<textarea name=coment cols=30 rows=6></textarea>
<br>
(*) Datos Obligatorios </p></td>
</tr>
<tr> 
<td height="13" colspan="2" valign="top"><div align="center"> 
<div align="center"></div>
<div align="center">Seleccione el rubro de su inter&eacute;s</div>
</div></td>
</tr>
<tr> 
<td width="244" height="38" valign="top"><p> 
<label> 
<input name="opcion1" type="checkbox" value="Opcion 1">
</label>
Opcion 1<br>
<label> 
<input name="opcion2" type="checkbox" value="Opcion 1">
</label>
Opcion 2
<label></label>
<br>
</p></td>
<td width="256" valign="top"><label> 
<input name="opcion3" type="checkbox" value="Opcion 3">
</label>
Opcion 3<br> <label> 
<input name="opcion4" type="checkbox" value="Opcion 4">
</label>
Opcion 4
<label></label></td>
</tr>
</table>
<div align="center"><br>
<input name="submit" type=submit value="Enviar">
<input name="submit2" type=reset value="Borrar">
</div>
</div>
</form> 
//----------------------------------------------
<?
session_start
();
include (
"seguridad.php");
?>
<?
//Pido los datos obligatorios
if(trim($_POST["opcion1"]) != "" && trim($_POST["opcion2"]) != "" )
{
//Estoy recibiendo el formulario, compongo el cuerpo y esta es la parte
//que además me debe tomar datos de la BD 

//conecto con la base de datos 
$conn mysql_connect("localhost","root",""); 
//selecciono la BBDD 
mysql_select_db("mibase",$conn); 

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM stone WHERE nick='{$_SESSION["dat_usr"]}'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 
$row=mysql_fetch_array($rs);
$cuerpo .= "Formulario enviado desde MI PORTAL\n"."\n"
$cuerpo .= "Empresa: " $row["empresa"] . "\n";
$cuerpo .= "Contacto: " $row["nombre"] . "\n";
$cuerpo .= "Email: " $row["email"] . "\n";
$cuerpo .= "Dirección: " $row["address"] . "\n";
$cuerpo .= "Ciudad: " $row["city"] . "\n";
$cuerpo .= "País: " $row["pais"] . "\n";
$cuerpo .= "Código Postal: " $row["postal"] . "\n";
$cuerpo .= "Telefono: " $row["telefono"] . "\n";
$cuerpo .= "Fax: " $row["fax"] . "\n";
$cuerpo .= "Horario de Contacto: " $row["horario"] . "\n";
$cuerpo .= "Respuesta1: " $_POST["respuesta1"] . "\n";
$cuerpo .= "Respuesta2: " $_POST["respuesta2"] . "\n";
$cuerpo .= "Comentarios: " $_POST["coment"] . "\n";
$cuerpo .= "Respuestas:" "\n";
$cuerpo .= "" $_POST["opcion1"] ;
$cuerpo .= " -" $_POST["opcion2"] ;
$cuerpo .= " -" $_POST["opcion3"] ;
$cuerpo .= " -" $_POST["opcion4"] ;

$email_webmaster "[email protected]"
//mando el correo... 
//mail("[email protected]","Cuerpo del mensaje",$cuerpo,"FROM: $email_webmaster"); 

//doy las gracias por el envío 
echo "El formulario se ha enviado correctamente";
}else{
echo 
"Por favor escriba LAS RESPUESTAS";
}
?>
no lo probe, pero asi deberia andar, espero que te sirva
  #6 (permalink)  
Antiguo 04/07/2005, 23:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 27
Antigüedad: 13 años, 3 meses
Puntos: 0
Gracias deet !!! Lo probé y funcionó de maravillas.
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 13:00.