Foros del Web » Programando para Internet » PHP »

PHP No puedo tomar variables de session

Estas en el tema de PHP No puedo tomar variables de session en el foro de PHP en Foros del Web. Hola a todos, recientemente me uni a su comunidad con el fin de ver si me pueden ayudar con un codigo php, que me seria ...
  #1 (permalink)  
Antiguo 31/03/2011, 08:43
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
PHP No puedo tomar variables de session

Hola a todos, recientemente me uni a su comunidad con el fin de ver si me pueden ayudar con un codigo php, que me seria de mucha ayuda. Me explico mi problema es el siguiente:

Estoy desarrollando un programa que se encarga de hacer reservas e ingresarlas en una tabla en la bd. el acceso al programa es mediante un login en el cual solo pide el el rut y el digito verificador del usuario. El punto es que en la pagina principal no puedo tomar la variable se session del rut para luego insertarla en la tabla. mi codigo es el siguiente:

<?php
session_start();
require_once "class.con.php";
$con = new DB("localhost","root","","reservas");
echo"<font color='blue' style='font-size:1.2em'>Bienvenido $_SESSION[nombre] $_SESSION[apellido_pat] $_SESSION[apellido_mat]</font>";

//$rut_Profe='9980971';

$_SESSION['rut']=$rut_profe;


if(isset($_POST['producto'])){
$producto = $_POST['producto'];
$sala = $_POST['sala'];
$hora = $_POST['hora'];
$fecha=$_POST['fecha'];

$revisarDisponibilidad = "SELECT reserva_fecha_reserva,reserva_id_hora,reserva_sala _reserva
FROM reserva
where reserva_fecha_reserva = '$fecha'
AND reserva_id_hora = '$hora'
AND reserva_sala_reserva = '$sala'";

$con->query($revisarDisponibilidad);

if($con->affected_rows()>0){
echo "<script type = 'text/javascript'>alert('No se puede tomar hora ocupada');</script>";
}else{

$insertReserva="insert into reserva values('','$fecha',$rut_profe,'$sala',$producto,$h ora)";

$con->query($insertReserva);


al imprimir el insert me aparece esto:

insert into reserva values('','2011-03-31',,'Primero Medio C',05,3)You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Primero Medio C',05,3)' at line 1

no me captura la variable de session del rut. No se que pueda tener malo?.

Ojala me puedan ayudar

espero haber posteado bien el tema, ya que soy nuevo integrante de la comunidad.

Quedo atento a sus comentarios.
  #2 (permalink)  
Antiguo 31/03/2011, 08:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: PHP No puedo tomar variables de session

en que momento le asignas valor a $rut_profe ???
donde declaras tus variables de session ??

$a = $b; no es lo mismo que $b = $a;

Saludos.
  #3 (permalink)  
Antiguo 31/03/2011, 09:10
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP No puedo tomar variables de session

Hola Death_empire,gracias por responder, la variable de sesion la saco desde el login, ahi estan declaradas
el login es el siguiente:


<?php

session_start();
require_once "class.con.php";
//Aca se crea el constructor de la clase class.con.php se llama al constructor de la clase
$con = new DB ("localhost","root","","reservas");

//Se pregunta si se envia el rut haga esto sino haga esto otro.
if(isset($_POST['txtRut'])){
$rut_profe = $_POST['txtRut'];
$dv_profe = $_POST['txtDv'];
$nombre = $_POST['txtNombre'];
$apellido_pat = $_POST['txtApellido_Pat'];
$apellido_mat = $_POST['txtApellido_Mat'];



//se hace la consulta sql
$sql = "SELECT profesor_rut_profesor AS rut,profesor_dv_profesor AS dv, profesor_nombre_profesor AS nombre, profesor_apellido_paterno AS apellido_pat,
profesor_apellido_materno AS apellido_mat
FROM Profesor WHERE profesor_rut_profesor ='$rut_profe' AND profesor_dv_profesor = '$dv_profe'";


//se ejecuta el sql
$con->query($sql);
//Ahora se pregunta si se obtuvo resultados usando metodos de class.con.php
if($con->num_rows()>0){
while($rs = $con->fetch()){
$rut_profe = $rs['rut'];
$dv_profe = $rs['dv'];
$nombre = $rs['nombre'];
$apellido_pat = $rs['apellido_pat'];
$apellido_mat = $rs['apellido_mat'];
$pag ="reservar.php";

//variables de session

$_SESSION['rut']=$rut_profe;
$_SESSION['dv']=$dv_profe;
$_SESSION['nombre']=$nombre;
$_SESSION['apellido_pat']=$apellido_pat;
$_SESSION['apellido_mat']=$apellido_mat;

}
echo"<script type = 'text/javascript'>location.href='$pag'</script>";

}else{
echo"<script type = 'text/javascript'>alert('El rut no existe, Intente denuevo')</script>";
}
}

?>

desde ahi tomo la variable $_SESSION['rut']=$rut_profe; y la uso la pagina principal que esta arriba. No se si estoy en lo correcto o me falta algo?
  #4 (permalink)  
Antiguo 31/03/2011, 09:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: PHP No puedo tomar variables de session

no la usas en el insert, $rut_profe dejo de existir
donde tienes
Código PHP:
//$rut_Profe='9980971';
$_SESSION['rut']=$rut_profe
deberia ser
Código PHP:
$rut_profe$_SESSION['rut'];
//y en el insert
$insertReserva="insert into reserva values('','$fecha','$rut_profe','$sala','$producto','$hora')"
  #5 (permalink)  
Antiguo 31/03/2011, 09:37
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP No puedo tomar variables de session

use el codigo q me diste borre lo que tenia comentado, arregle la variable se sesion, pero me da error el insert no puedo ponerle comillas a '$rut_profe' porke en la bd es un int y me reclamaque no es igual con la clave foranea de la otra tabla en ambas esta cmo int(11).
quedaria asi :

$insertReserva="insert into reserva values('','$fecha',$rut_profe,'$sala','$producto', '$hora')";

pero pasa lo mismo da el mismo error. no toma la variable $rut_profe

sale : ('','2011-03-30','','Octavo Basico C','02','3').

que puede ser?
  #6 (permalink)  
Antiguo 31/03/2011, 09:59
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: PHP No puedo tomar variables de session

el error que me sale al colocar el insert todo con comillas simples es el siguiente:

insert into reserva values('','2011-03-31','','Octavo Basico A','08','9')Cannot add or update a child row: a foreign key constraint fails (`reservas/reserva`, CONSTRAINT `fk_rut_profesor` FOREIGN KEY (`reserva_rut_profesor`) REFERENCES `profesor` (`profesor_rut_profesor`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Las tablas son :

Profesor:
profesor_rut_profesor int(11)
profesor_dv_profesor varchar(1)
profesor_nombre_profesor varchar(60)
profesor_apellido_paterno varchar(50)
profesor_apellido_materno varchar(50)
profesor_tipo_profesor varchar(45)

y la otra

Reserva:
reserva_fecha_reserva datetime
reserva_rut_profesor int(11)
reserva_sala_reserva varchar(45)
reserva_id_producto int(11)
reserva_id_hora int(11)

Etiquetas: session, tomar, variables
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:01.