Foros del Web » Programando para Internet » PHP »

Pasar valores con GET

Estas en el tema de Pasar valores con GET en el foro de PHP en Foros del Web. Buenas! Tengo una duda. ¿Existe una funcion o alguna sentencia de codigo la cual me pueda mandar automaticamente a otra pagina?, Me refiero a que ...
  #1 (permalink)  
Antiguo 16/03/2012, 01:46
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Pasar valores con GET

Buenas!

Tengo una duda.
¿Existe una funcion o alguna sentencia de codigo la cual me pueda mandar automaticamente a otra pagina?, Me refiero a que llegue a una cierta parte del codigo php donde se encuentre esa funcion o sentencia y me redirija a otra pagina, pero, mandando valores por GET sin darle clic a nada.
Algo similar a header(); pero header no permite mandar valores por GET.

Por ejemplo algo tan simple como un IF si la evaluación es true manda los valores a otra pagina por GET si es false no hace nada.

Espero que me puedan ayudar :/
Saludos!
  #2 (permalink)  
Antiguo 16/03/2012, 01:59
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Pasar valores con GET

Los puedes mandar por el enlace:

If (condición = true){
"Vete a la página" http://www.ejemplo.plo/ejemplo.ejemplo?var1=a&var2=b...
}

En el archivo destino (ejemplo.ejemplo) recoges los valores con un get.
__________________
Si quieres conseguir resultados diferentes no hagas siempre lo mismo.

Mejora tu entorno. MestralCadiz con su comunidad.
  #3 (permalink)  
Antiguo 16/03/2012, 02:03
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Pero esa parte de "Vete a la paigina" ¿con que sentencia de codigo se hace?
Con header() ? que lo dudo mucho...
Por que obviamente no voy a poner "Vete a la pagina" xD

Saludos!
  #4 (permalink)  
Antiguo 16/03/2012, 02:15
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar valores con GET

Código PHP:
header("Location: la_pagina_que_quieras.php?variable=valor1&variable2=valor2"); 
Sí se puede o.O
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 16/03/2012, 02:24
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Ya lo hice pero no me manda a la pagina que le pongo...
Es una funcion donde hago varios procesos con variables que se mandan por parametros y en un else hago esto....

Código PHP:
Ver original
  1. else
  2. {  
  3.                                
  4.     $querymedico="select Usu_Nombre,Usu_Apaterno from usuarios, medicos where Med_Id=$medicoid";      
  5.      $tablamedico = mysql_query($querymedico);
  6.                                       $registromedico=mysql_fetch_assoc($tablamedico);
  7.                                 if($turno='M'){$turno='Mañana';}    if($turno='T'){$turno='Tarde';}
  8.                                 $nombredoctor=$registromedico['Usu_Nombre']." ".$registromedico['Usu_Apaterno'];
  9.                                    
  10.                                 header("location:confirmarcita.php?hora=$hora&doctor=$nombredoctor&fechacita=$fechacita&turno=$turno");
  11.                                        
  12.                                    
  13.     }

Saludos.
  #6 (permalink)  
Antiguo 16/03/2012, 02:40
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar valores con GET

En la teoría tu código (del header me refiero) debería de funcionar, cual es el error o la causa para decir que no funciona?

Actualización: viendo el demas código tienes un problema con el if "if($turno='M'){ ya que estas asignando, mas no comparando, te hace falta un signo de igual =...

Código PHP:
Ver original
  1. //Asignas el valor M a la variable $turno
  2. if($turno='M'){
  3. }
  4.  
  5. //Comparas que el valor de $turno sea M
  6. if($turno=='M'){
  7. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 16/03/2012, 02:57
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Gracias por la observación, me iba a dar otro error a futuro.

Y referente al error que me causa, después de llegar a esa parte del código no carga a confirmarcita.php
Se queda en blanco en el archivo php(que se llama evaluacioncita.php) donde hace todo el proceso.

Otro detalle, corrigiendo lo antes dicho, no es una funcion, es un archivo php que recibe valores por POST y SESSION.

Saludos
  #8 (permalink)  
Antiguo 16/03/2012, 03:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar valores con GET

Y ya verificaste que no sea otro el error, quizás de lógica?, probando otras cosas, tienes los mensajes de errores y warnings activados en el servidor?, estas completamente seguro que el error es en el archivo donde esta el header y no en confirmarcita.php?, así como están las cosas, el código de header que tienes funcionaria, sin ver el demás código y sin saber si se muestran o no los errores es estar adivinando
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 16/03/2012, 03:06
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar valores con GET

¿Tienes activado el error reporting de php?
__________________
>> Eleazan's Source
>> @Eleazan
  #10 (permalink)  
Antiguo 16/03/2012, 03:20
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Pues según yo tengo todo bien.
Aun soy novato en esto por lo que han podido notar haha.
Apenas voy para mi titulo de tecnico :/ pero bueno, estos son mis archivos que estoy usando, que segun yo esta correcto.
Este es el archivo evaluacioncita.php

Código PHP:
Ver original
  1. <?php
  2.     mysql_connect('localhost','root') or die ('error al conectarse al servidor');
  3.     mysql_select_db('uttweb43_medico') or die('error en la base de datos');
  4.     session_start();
  5.     $fechacita=$_POST['txtFecha'];
  6.     $medicoid=$_POST['cmbMedico'];
  7.     $turno=$_POST['cmbTurnos'];
  8.     $usuarioid=$_SESSION['Usu_Id'];
  9.            
  10.             $dia=date("w", strtotime($fechacita));
  11.             if($dia==0){$dia='domingo';} if($dia==0){$dia='lunes';} if($dia==0){$dia='martes';} if($dia==0){$dia='miercoles';}
  12.             if($dia==0){$dia='jueves';} if($dia==0){$dia='viernes';} if($dia==0){$dia='sabado';}
  13.             if($turno==1){$turno='M';}if($turno==2){$turno='T';}
  14.             $inhabiles = "select Inh_Fecha_Inicio from inhabiles where '$fechacita' between Inh_Fecha_Inicio and Inh_Fecha_Fin";
  15.             $tablainhabiles = mysql_query($inhabiles);
  16.             $mensaje = '0';
  17.            
  18.             if(mysql_num_rows($tablainhabiles)==0)
  19.             {
  20.                 if($dia=='lunes' || $dia=='martes' || $dia=='miercoles' || $dia=='jueves' || $dia=='viernes')
  21.                 {
  22.                    
  23.                     $horarios = "select Hor_Sem_Entrada, Hor_Sem_Salida from horarios where Hor_Med_Id = '$medicoid'";
  24.                     $tablahorarios = mysql_query($horarios);
  25.                     if(mysql_num_rows($tablahorarios)>0)
  26.                     {
  27.                         $registrohorarios=mysql_fetch_assoc($tablahorarios);
  28.                                    
  29.                             if($turno=='M')
  30.                             {
  31.                                
  32.                                 $hora = $registrohorarios['Hor_Sem_Entrada'];
  33.                                 $disponible = "select Cit_id, Cit_Medico_Id from citas where cit_hora='$hora' and Cit_Medico_Id=$medicoid and Cit_Fecha_Cita='$fechacita'";
  34.                                 $tabladisponible = mysql_query($disponible);
  35.                                 if(mysql_num_rows($tabladisponible)>0)
  36.                                 {
  37.                                
  38.                                     while(mysql_num_rows($tabladisponible)>0 && $hora < 12) {
  39.                                         $disponible = "select Cit_id, Cit_Medico_Id from citas where cit_hora='$hora' and Cit_Medico_Id=$medicoid and Cit_Fecha_Cita='$fechacita'";
  40.                                         $tabladisponible = mysql_query($disponible);
  41.                                         if(mysql_num_rows($tabladisponible)>0)
  42.                                         {
  43.                                             $hora++;
  44.                                         }
  45.                                         if($hora==12)
  46.                                         {
  47.                                                 $mensaje='1';
  48.                                         }
  49.                                    
  50.                                     }
  51.                                 }
  52.                             }
  53.                            
  54.                         if($turno=='T')
  55.                         {
  56.                        
  57.                                
  58.                                 $hora=12;
  59.                                 $disponible = "select Cit_id, Cit_Medico_Id from citas where cit_hora='$hora' and Cit_Medico_Id=$medicoid and Cit_Fecha_Cita='$fechacita'";
  60.                                 $tabladisponible = mysql_query($disponible);
  61.                             if(mysql_num_rows($tabladisponible)>0)
  62.                             {
  63.                                 while(mysql_num_rows($tabladisponible)>0 && $hora < $registrohorarios['Hor_Sem_Salida']) {
  64.                                     $disponible = "select Cit_id, Cit_Medico_Id from citas where cit_hora='$hora' and Cit_Medico_Id=$medicoid and Cit_Fecha_Cita='$fechacita'";
  65.                                     $tabladisponible = mysql_query($disponible);
  66.                                     if(mysql_num_rows($tabladisponible)>0)
  67.                                     {
  68.                                         $hora++;
  69.                                     }
  70.                                     if($hora==$registrohorarios['Hor_Sem_Salida'])
  71.                                     {
  72.                                             $mensaje='1';
  73.                                     }
  74.                                
  75.                                 }
  76.                             }
  77.                         }
  78.                            
  79.                            
  80.                             if($mensaje=='1')
  81.                             {
  82.                                 echo 'No hay horarios disponibles este dia para este turno';
  83.                             }
  84.                            
  85.                             else
  86.                             {  
  87.                                
  88.                                 $querymedico="select Usu_Nombre,Usu_Apaterno from usuarios, medicos where Med_Id=$medicoid";
  89.                                 $tablamedico = mysql_query($querymedico);
  90.                                 $registromedico=mysql_fetch_assoc($tablamedico);
  91.                                 if($turno=='M'){$turno='Mañana';} if($turno=='T'){$turno='Tarde';}
  92.                                 $nombredoctor=$registromedico['Usu_Nombre']." ".$registromedico['Usu_Apaterno'];
  93.                                    
  94.                                 header("location:confirmarcita.php?hora=$hora&doctor=$nombredoctor&fechacita=$fechacita&turno=$turno");
  95.                                        
  96.                                    
  97.                             }
  98.                        
  99.                     }
  100.                     else
  101.                     {
  102.                         echo'Error en horarios';
  103.                     }
  104.                 }
  105.                
  106.                
  107.             }
  108. ?>

Y este es el archivo confirmarcita.php

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <title>Confirmar Cita</title>
  4.         <link href="estilo.css" rel="stylesheet" type="text/css"></link>
  5.         <script src="menu.js" type="text/javascript"></script>
  6.         <script type="text/javascript" src="menu.js"></script>
  7.         <link rel="SHORTCUT ICON" href="icon.JPG">
  8.         <link href="calendario/calendario.css" rel="stylesheet" type="text/css"></link>
  9.         <script type="text/javascript" src="calendario/calendario.js"></script>
  10.         <script type="text/javascript">
  11.            
  12.         </script>
  13.         <?php
  14.             session_start();
  15.             include('datos/menu.php');
  16.             require('datos/conexion.php');
  17.             require('datos/Consulta.php');
  18.             require('datos/dbcontrols.php');
  19.             $hora=$_GET['hora'];
  20.             $doctor=$_GET['doctor'];
  21.             $fechacita=$_GET['fechacita'];
  22.             $turno=$_GET['turno'];
  23.            
  24.            
  25.             $login=false;
  26.             if (isset($_SESSION['Usu_Email']))
  27.             {
  28.                 $login=true;
  29.                
  30.             }
  31.         ?>
  32.     </head>
  33.     <body leftmargin="0px" topmargin="0px">
  34.         <center>
  35.         <div id="contenedor">
  36.        
  37.        
  38.        
  39.        
  40.        
  41.         <div id="banner"></div>
  42.         <div id="menu">
  43.         <?php
  44.            
  45.             if(!$login)
  46.             {
  47.                 menuPrincipal();
  48.                
  49.                 if($_SESSION['Usu_Tipo']==1)
  50.                 {
  51.                     menuPaciente();
  52.                 }
  53.             }
  54.             else
  55.             {
  56.                
  57.                 if($_SESSION['Usu_Tipo']==1)
  58.                 {
  59.                     menuPaciente();
  60.                 }
  61.                 if($_SESSION['Usu_Tipo']==2)
  62.                 {
  63.                     menuDoctor();
  64.                 }
  65.             }
  66.            
  67.         ?>
  68.         </div>
  69.         <div id="barra"></div>
  70.         <div id="barra2"></div>
  71.         <div id="texto" align =  "left">
  72.         <form action="abcs/insertcita.php" method="POST">
  73.  
  74.         <br><br>       
  75.         <center><h1><font color="#007EFC">¿Los datos son correctos?</font></h1></center>
  76.         <table align="center">
  77.         <tr>
  78.             <td align="right">Tu cita es a las: </td><td><input type="text" readonly value="$hora" name = "txtHora" size="3"></td>
  79.         </tr>
  80.         <tr>
  81.             <td align="right">Con el/la Doctor(a):</td><td> <input type="text" readonly value="$doctor" name = "txtDoctor" size="23"></td>
  82.         </tr>  
  83.         <tr>   
  84.             <td align="right">Fecha: </td><td><input type="text" readonly value="$fechacita" name = "txtFecha"></td>
  85.         </tr>
  86.         <tr>
  87.             <td align="right">Turno: </td><td><input type="text" readonly value="$turno" name = "txtTurno"></td>
  88.         </tr>
  89.         </table>
  90.         <br>
  91.         <center><input type="submit" name="confirmar" value="Confirmar"></input><input type="button" name="editar"  onClick="window.location='cita.php'" value="Editar"></input><input type="button" value="Cancelar" name="Cancelar"  onClick="window.location='index.php'"></input></center>
  92.         </form>
  93.        
  94.         </div>
  95.         </div>
  96.        
  97.         <div id="calendario"></div>
  98.     </body>
  99. </html>

Se que talvez mi forma de programar es fea haha pero aun soy un noob...
Y gracias por tomarse el tiempo para tratar de resolver mi problema.
Muchas gracias
  #11 (permalink)  
Antiguo 16/03/2012, 03:26
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar valores con GET

El primer código que muestras en una telaraña, difícil de seguir, pero vamos, en el segundo código comienzan los errores y uno muy básico, session_start() DEBE estar SIEMPRE como segunda linea de código, claramente la primera debe de ser<?php, así que confirmarcita.php te debería de mandar un error diciendo que las cabeceras ya se han enviado, verifica esto primero...

Actualización: vamos amigo, no le veo nada de logica a este trozo de código, todas las validaciones se ejecutaran cuando $dia su valor sea 0, osea no al final $dia tendrá el valor sabado

Código PHP:
Ver original
  1. if($dia==0){$dia='domingo';} if($dia==0){$dia='lunes';} if($dia==0){$dia='martes';} if($dia==0){$dia='miercoles';}
  2. if($dia==0){$dia='jueves';} if($dia==0){$dia='viernes';} if($dia==0){$dia='sabado';}
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 16/03/2012, 03:36
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

El problema es que confirmarcita.php no carga, se queda en evaluacioncita.php
y confirmarcita.php no puede cargar sin que se le manden valores por GET obviamente.
Hice una prueba escribiendo Yo, unos datos cualquiera en el URL y efectivamente, en confirmarcita.php no esta el error, funciona perfectamente.
  #13 (permalink)  
Antiguo 16/03/2012, 03:37
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Y gracias a la prueba modifique un error que tenia en los input si es que lo vez hehe
  #14 (permalink)  
Antiguo 16/03/2012, 03:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Oh!!! hahaha
Te digo que soy un noob apenas, no le habia cambiado los valores de 0 a 6 por que hice copy paste a los IFS
Perdon por mi brutada haha
Es que amigo, estoy a la vuelta de la esquina para entregar esto, es el proyecto final y ando estresado haha
  #15 (permalink)  
Antiguo 16/03/2012, 03:46
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar valores con GET

Lo siento, pero este código te va a funcionar "nunca". El problema de lo apunta @Nemutagk, si lo resuelves, debería funcionarte ;)

Tienes la variable día:
Código PHP:
$dia=date("w"strtotime($fechacita)); 
Pongamos que es... lunes... te devuelve un 1.

Luego tienes esto:
Código PHP:
if($dia==0){$dia='domingo';} if($dia==0){$dia='lunes';} if($dia==0){$dia='martes';} if($dia==0){$dia='miercoles';}
if(
$dia==0){$dia='jueves';} if($dia==0){$dia='viernes';} if($dia==0){$dia='sabado';} 
Como $dia es un 1, no cambia de valor.


Y para entrar al "mogollon", tienes esta condición:
Código PHP:
if($dia=='lunes' || $dia=='martes' || $dia=='miercoles' || $dia=='jueves' || $dia=='viernes'
Que, recuerda, día es un 1 ;)



PD: Te lo podrías ahorrar así: (pero esto ya es otro tema xD)
Código PHP:
$dia=date("w"strtotime($fechacita));
//..
//Esto no hace falta
/*if($dia==0){$dia='domingo';} if($dia==0){$dia='lunes';} if($dia==0){$dia='martes';} if($dia==0){$dia='miercoles';}
if($dia==0){$dia='jueves';} if($dia==0){$dia='viernes';} if($dia==0){$dia='sabado';} */
//..
//Y en vez de 
//if($dia=='lunes' || $dia=='martes' || $dia=='miercoles' || $dia=='jueves' || $dia=='viernes')
if($dia >=&& $dia <=5//Es decir, si está entre el 1 (lunes) o el 5 (viernes) 
__________________
>> Eleazan's Source
>> @Eleazan
  #16 (permalink)  
Antiguo 16/03/2012, 03:46
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar valores con GET

Cita:
Iniciado por satania135 Ver Mensaje
El problema es que confirmarcita.php no carga, se queda en evaluacioncita.php
y confirmarcita.php no puede cargar sin que se le manden valores por GET obviamente.
Hice una prueba escribiendo Yo, unos datos cualquiera en el URL y efectivamente, en confirmarcita.php no esta el error, funciona perfectamente.
Eso para mi deja claro que no tienes activados los errores ni los warnings, al decir que funciona perfectamente lo confirmas, es scritp por ningún motivo funciona a la perfección por el error que te comente, agrega al inicio de ambos script (antes que todo el código tanto php como html!)....

Código PHP:
Ver original
  1. <?php
  2. ini_set ('error_reporting', E_ALL);
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #17 (permalink)  
Antiguo 16/03/2012, 03:53
 
Fecha de Ingreso: marzo-2012
Mensajes: 15
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Pasar valores con GET

Vaya que pena me doy haha xD soy un asco.
Es verdad, ese era mi error la comparación de los días.
Nunca entraba a hacer todo eso.
Ya funciona!!
Enserio, muchas gracias a los dos.
Y gracias por los tips Nemutagk, los tomare en cuenta.

Saludos!
  #18 (permalink)  
Antiguo 16/03/2012, 03:54
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Pasar valores con GET

Creo que tu error está en el header(...)
El location, debe llevar la l mayúscula 'Location' en lugar de 'location'

Etiquetas: Ninguno
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 02:07.