Foros del Web » Programando para Internet » PHP »

Problemas con las URL y Get

Estas en el tema de Problemas con las URL y Get en el foro de PHP en Foros del Web. Hola tenga buenos dias ayer me salio de maravilla mi buscador con paginacion funciona asi pongo un nombre por decir juan http://localhost/repasos/proyecto/buscar.html.php y me vota ...
  #1 (permalink)  
Antiguo 25/03/2009, 09:29
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemas con las URL y Get

Hola tenga buenos dias ayer me salio de maravilla mi buscador con paginacion funciona asi pongo un nombre por decir juan
http://localhost/repasos/proyecto/buscar.html.php
y me vota asi
http://localhost/repasos/proyecto/pr...&buscar=Buscar

Bien ahora queria implementarlo de manera modular pongo asi:
http://localhost/proyecto_cisco/inde...tas&pag=buscar y busco juan igual y me vota asi
http://localhost/proyecto_cisco/inde...&buscar=Buscar
no busca y me vota a mi index principal

Este s mi buscar.html.php
Código html:
Ver original
  1. </head>
  2. <form action="index.php?mod=consultas&pag=proceso" method="get" name="buscar">
  3.   <table  border="1" align="center">
  4.   <tr>
  5.     <th scope="col" colspan="2" align="center">*** Consultas *** </th>
  6.    
  7.   </tr>
  8.   <tr>
  9.     <td><input type="text" size="40" value="<?php echo $_GET['frase']; ?>" name="frase"></td>
  10.     <td><input type="submit" name="buscar" value="Buscar"></td>
  11.   </tr>
  12.  
  13.  
  14. </form>
  15. </body>


bueno este es mi controdor
Código php:
Ver original
  1. <?php
  2.     $pagina = $_GET['pag'];
  3.    
  4.     include('modulos/jugadores/jugadores.mod.php');
  5.     $MOD['jugadores'] = new Jugadores();
  6.    
  7.     switch($pagina) {
  8.         case 'buscar':
  9.         // if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==3)||($_SESSION['usuario_nivel']==2)){
  10.             include('modulos/consultas/vistas/buscar.html.php');
  11.         //} else {
  12.           // echo "<center> Usted no tiene permisos para acceder </center>";
  13.         //}
  14.         break;
  15.         case 'proceso':
  16.         // if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==3)||($_SESSION['usuario_nivel']==2)){
  17.              $frase = addslashes($_GET['frase']);  
  18.             include('modulos/consultas/vistas/proceso_busqueda.html.php');
  19.         //} else {
  20.           // echo "<center> Usted no tiene permisos para acceder </center>";
  21.         //}
  22.         break;
  23.         case 'insertar':

Y este es mi proceso_busqueda.html.php
Código php:
Ver original
  1. <td>Estado </td>
  2.     <td>Lugar </td>
  3.     <td>Nombre Padre </td>
  4.     <td>Nombre Madre </td>
  5.     <td colspan="2">Opciones</td>
  6.     </tr>
  7. <?php
  8. // conectar al servidor
  9.  include ('PHPPaging.lib.php');
  10.         $server_link = mysql_connect("localhost", "root", "");
  11.         if(!$server_link){ die("Fallo de conexion ". mysql_error());
  12.         }
  13.         // seleccionamos la base de datos
  14.         $db_selected = mysql_select_db("bd_asociacion", $server_link);
  15.         if(!$db_selected){ die("No se pudo seleccionar la Base de Datos ". mysql_error());
  16.         }
  17.         // varificamos que el formulario halla sido enviado
  18.         if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
  19.                 $frase = addslashes($_GET['frase']);  
  20.  
  21.                
  22.                  // Instanciamos el objeto
  23.                  $paging = new PHPPaging;
  24.                 // Poniendo 20 resultados por página
  25.                  $paging->porPagina(10);

No entiendo donde esta el error aqui http://localhost/proyecto_cisco/inde...&buscar=Buscar

Deberia ser algo asi http://localhost/proyecto_cisco/inde...&buscar=Buscar algo asi pero no se como puedo arreglar esto
  #2 (permalink)  
Antiguo 25/03/2009, 09:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas con las URL y Get

Código:
index.php?proceso_busqueda?frase=juan&buscar=Buscar
Esa URL esta mal generada, debería en dado caso ser algo como así:
Código:
index.php?pag=proceso_busqueda&frase=juan&buscar=Buscar
Necesitas especificarle (supongo) el modulo a cargar.

Saludos.
  #3 (permalink)  
Antiguo 25/03/2009, 09:37
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con las URL y Get

El primer ejemplo corre bien pero mi problema es a implementarlo modularmente con un controlador
  #4 (permalink)  
Antiguo 25/03/2009, 09:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas con las URL y Get

Por eso mismo, tu problema es que debes de pasar las variables correctamente y armar correctamente tu URL, si no arreglas eso no va a servir.

Saludos.
  #5 (permalink)  
Antiguo 25/03/2009, 09:56
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta

mmmmmmmmmm Gator hice esto y note diferencias :

1: http://localhost/repasos/proyecto/pr...&buscar=Buscar (Este esta correcto funciona)

2: http://localhost/proyecto_cisco/inde...&buscar=Buscar (este con la misma busqueda no funcionad, pasa directamente al index principal )

Ahora hice estas modificaciones
En mi buscar.html.php llamo asi
http://localhost/proyecto_cisco/inde...tas&pag=buscar (correcto me muestra el buscar)

Bien ahora hice esta modificacion en mi buscar.html.php
Código php:
Ver original
  1. <body>
  2. <form action="modulos/consultas/vistas/proceso_busqueda.html.php?mod=consultas&pag=proceso" method="get" name="buscar">
  3.   <table  border="1" align="center">
  4.   <tr>
  5.     <th scope="col" colspan="2" align="center">*** Consultas *** </th>
  6.    
  7.   </tr>
  8.   <tr>
  9.     <td><input type="text" size="40" value="<?php echo $_GET['frase']; ?>" name="frase"></td>
  10.     <td><input type="submit" name="buscar" value="Buscar"></td>
  11.   </tr>
  12. </table>
  13.  
  14.  
  15. </form>
  16. </body>

Busco por decir juan y la url que me vota es esta:
http://localhost/proyecto_cisco/modu...&buscar=Buscar

Funciona pero ya mo modularmente me vota directo fuera de mi index principal

Me nuestra asi cuando busco algo
http://localhost/proyecto_cisco/inde...&buscar=Buscar lo cual falla
Me deberia mostrar asi
http://localhost/proyecto_cisco/inde...&buscar=Buscar , pero es como si no existeria el mod no entiendo porque

Última edición por GatorV; 25/03/2009 a las 11:42
  #6 (permalink)  
Antiguo 25/03/2009, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con las URL y Get

El problema es que en el action no puedes poner variables GET si el formulario tiene como método GET. Debes usar campos ocultos (hidden) si quieres colocar algunos valores adicionales.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 25/03/2009, 10:40
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Gracias David hice esto

<body>
<form action="index.php?mod=consultas&pag=proceso" method="get" name="buscar">
<input type="hidden" name="text" value="<?php $_GET['frase']; ?>">
<table border="1" align="center">
<tr>
<th scope="col" colspan="2" align="center">*** Consultas *** </th>

</tr>
<tr>
<td><input type="text" size="40" name="frase"></td>
<td><input type="submit" name="buscar" value="Buscar"></td>
</tr>
</table>


</form>
</body>

Me vota la url asi
http://localhost/proyecto_cisco/inde...&buscar=Buscar y no lo busca
Ahora hice este otro cambio
<form action="index.php?mod=consultas&pag=proceso" method="post" name="buscar">
<input type="hidden" name="text" value="<?php $_GET['frase']; ?>">
<table border="1" align="center">
<tr>
<th scope="col" colspan="2" align="center">*** Consultas *** </th>

</tr>
<tr>
<td><input type="text" size="40" name="frase"></td>
<td><input type="submit" name="buscar" value="Buscar"></td>
</tr>
</table>


</form>
Con el metodo post me lanza esto http://localhost/proyecto_cisco/inde...as&pag=proceso esta bien pero no me vota resultados
Mi pregunta es tenfo que cambiar mis get por post en aqui

// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
$frase = addslashes($_GET['frase']);


// Instanciamos el objeto

O como debe hacer

A si lo hice asi
<form action="index.php?mod=consultas&pag=proceso" method="post" name="buscar">
<table border="1" align="center">
<tr>
<th scope="col" colspan="2" align="center">*** Consultas *** </th>

</tr>
<tr>
<td><input type="text" size="40" name="frase" value="<?php $_POST['frase'];?>"></td>
<td><input type="submit" name="buscar" value="Buscar"></td>
</tr>
</table>


Y recogi datos por post y funciona gracias DAVID EL GRANDE

Última edición por GatorV; 25/03/2009 a las 11:42
  #8 (permalink)  
Antiguo 25/03/2009, 10:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con las URL y Get

Es que tú esperas (en el código), recibir datos por GET.

A lo que yo me refería, es que esto: index.php?mod=consultas&pag=proceso, no se permite en el action de un form GET, se perderán esas variables.

Por lo que mi sugerencia iba a esto, deja en el action: index.php. Y agrega dos campos hidden:
Código html:
Ver original
  1. <input name="mod" type="hidden" value="consultas" />
  2. <input name="pag" type="hidden" value="proceso" />
Así, podrás continuar usando el método GET.

Creo que con eso ya se entiende la idea.

EDITO: Respondiste mientras estaba respondiendo , me alegra que lo solucionaras .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 14:12.