Foros del Web » Programando para Internet » PHP » CodeIgniter »

pasar parametro por url NO amigable

Estas en el tema de pasar parametro por url NO amigable en el foro de CodeIgniter en Foros del Web. Estoy trabajando con Codeigniter una pequeña aplicacion, y el server no tiene mod rewrite y no quieren activarlo que barbabros pero bueno hay que trabajar ...
  #1 (permalink)  
Antiguo 05/10/2011, 13:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
pasar parametro por url NO amigable

Estoy trabajando con Codeigniter una pequeña aplicacion, y el server no tiene mod rewrite y no quieren activarlo



que barbabros pero bueno hay que trabajar asi.

entonces me toca escribir la surls asi

web.com/index.php?c=controller&m=index

como la aplicacion es muy pequeña hasta ahora no habia necesitado pasarle un parametro a los metodos usados pero cuando quiero hacerlo me sa un error

digamos que tengo un metodo así en la clase controller por decir algo

Código PHP:
Ver original
  1. public function delete($id){
  2.             $this->load->view('includes/template', 'deleted');
  3.     }

quiero acceder por la siguiente url

Código HTML:
Ver original
  1. localhost/index.php?c=controller&m=delete&id=2

pero me da error dice que falta el argumento $id del metodo, o sea que no se como pasarlo :S

nunca lo habia necesitado y en ningun lado encuentro como

gracias por hecharme un cable.
  #2 (permalink)  
Antiguo 05/10/2011, 14:49
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: pasar parametro por url NO amigable

No conozco CI, pero de alguna forma tendrías que pasar el valor GET de la url a la variable $id.

Si con la url "localhost/index.php?c=controller&m=delete" ejecutas directamente el método delete igual se debería utilizar un constructor, o dentro del propio método.
Código PHP:
public function delete()
{
    
$id $_GET['id']; //u otra función que tenga definida para el mismo fin
    
$this->load->view('includes/template''deleted');

Como digo, no lo conozco, pero igual empezaría a probar por ahí.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 05/10/2011, 19:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: pasar parametro por url NO amigable

CI no depende de mod_rewrite para las URL, yo siempre accedo a mis URL de la siguiente manera:
miweb.net/index.php/controlador/metodo/param1/param2

Alguien corrijame si estoy equivocado ;) Un saludo.

http://codeigniter.com/user_guide/general/urls.html
  #4 (permalink)  
Antiguo 05/10/2011, 20:25
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: pasar parametro por url NO amigable

pues para poder usar esas urls yo tengo que pegar esto en el .htaccess

Código Apache:
Ver original
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteBase /concurso/
  4.     RewriteCond %{REQUEST_URI} ^sistema.*
  5.  
  6.     RewriteRule ^(.*)$ /index.php?/$1 [L]
  7.     RewriteCond %{REQUEST_URI} ^aplicaciones.*
  8.     RewriteRule ^(.*)$ index.php/$1 [L]
  9.  
  10.     RewriteCond %{REQUEST_FILENAME} !-f
  11.     RewriteCond %{REQUEST_FILENAME} !-d
  12.     RewriteRule ^(.*)$ index.php/$1 [L]
  13. </IfModule>
  14.  
  15. <IfModule !mod_rewrite.c>
  16.     ErrorDocument 404 /index.php
  17. </IfModule>

ah y gracias uncontroled_duck pero no me funcionó ni poniendole el constructor :s a ver que diablos hago

Última edición por memoadian; 05/10/2011 a las 20:36
  #5 (permalink)  
Antiguo 05/10/2011, 20:53
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: pasar parametro por url NO amigable

¿No es eso solamente para eliminar el index.php de la URL? Cuando yo uso CodeIgniter no tengo que hacer ningun cambio para que me funcionen las URL, la clase interna CI_Route de CI se encarga de las conversiones.

Bueno, de todas maneras, los datos que provienen por GET los pueden utilizar con la clase input
$this->input->get('llave');
  #6 (permalink)  
Antiguo 05/10/2011, 21:06
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: pasar parametro por url NO amigable

bueno ahora que mencionas lo del index, pues si tienes razón :) estupido->

y si, lo habia solucionado con $this->input->get()

pero ahora ya no tiene sentido

Última edición por memoadian; 05/10/2011 a las 21:14

Etiquetas: clase, parametro, url, amigables
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 09:42.