entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Pasar variable de .php a otro .php

Hola a todos de nuevo. Voy con la consulta que les hago.
Estoy creando una web, en la que al clicar una opción tiene que enviar a la página siguiente una variable, que es un identificador.
La cuestión es que en modo local, con el xampp me funciona perfectamente. Pero alojados en hostinger (es el hosting que utilizo), no recibe el id.
El envío lo hago con el método $_GET.
Les pongo el código a ver que les parece.
El envió:

<a href="portfolio.php/<?php echo $pop['id'] ?>/<?php echo urls_amigables($pop['autor'])?>">

(el autor lo envío también por que puede ser que lo necesite, aunque ahora mismo estaría de más.
Recibir con método GET:

    <?php 
   $id = $_GET['p'];
    require_once('assets/utils.php');
    $qRead = $bd->Consultar("select * from portfolio where id = '$id'");

    $campBd = mysqli_fetch_array($qRead);
   ?>

Como les digo, esto mismo en modo local me funciona perfetamente, y alojado en el host no funciona.
Gracias.

1 Respuesta

2votos

carlossevi Puntos63580

Suponiendo los siguientes valores:

  • id: 504
  • autor: nachito777sk

La URL que genera el código que pones es:

portfolio.php/504/nachito777sk

Sin embargo, la estructura de una URL para recoger parámetros GET es la siguiente:

// Una variable:
http://rutahastascriptphp?variable=valor
// Dos variables:
http://rutahastascriptphp?variable1=valorvariable1&variable2=valorvariable2

De alguna manera, se debe convertir la petición "bonita" /504/nachito777sk a la necesaria ?p=504&nombreautor=nachito777sk.

¿Es posible que en el Wamp local tengas implementado URL rewrite?

0voto

nachito777sk comentado

que yo sepa no............ y estoy buscando por que de alguna manera en local me lo hace bien, por que como tu bien dices, en la estructura debería de poner la p = al id, para después recogerla en el otro php. Y al intentar hacerlo de la manera correcta me da errores........... no entiendo nada.

0voto

nachito777sk comentado

Bueno, cosas raras raras....
Al hacerlo correctamente, localmente no me coge los estilos en el segundo php, pero en el host me lo hace bien......
Pero al hacerlo como dije antes, me sale perfecto localmente, pero no funciona en el host.
Eso si, he tenido que cambiar la variable "p", que debe estar por algún sitio, pero no logro encontrarlo........ un lío.......

0voto

carlossevi comentado

¿Has hecho tu el desarrollo o sólo lo estás manteniendo? Viendo que tienes una función llamada urls_amigables() me hace pensar que algo al respecto debes tener implementado, y las URL amigables vienen siempre acompañadas de técnicas de escritura del URL. Revisa la configuración del servidor web, tanto el local como el remoto y asegúrate de que tienen la misma configuración.

0voto

nachito777sk comentado

la función urls_amigables() es para cambiar caracteres como por ejemplo letras con acento, etc...... esta función la implemento por que me la hacían implementar en el grado en que estuve. Lo he revisado y no veo nada que pueda deberse al error que tengo.
Dejo el código para que lo vean:

<?php
            function urls_amigables($url) {    

        // Tranformamos todo a minusculas

                $url = strtolower($url);

        //Rememplazamos caracteres especiales latinos

                $find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');

                $repl = array('a', 'e', 'i', 'o', 'u', 'n');

                $url = str_replace ($find, $repl, $url);

        // Añaadimos los guiones

                $find = array(' ', '&', '\r\n', '\n', '+'); 
                $url = str_replace ($find, '-', $url);

       // Eliminamos y Reemplazamos demás caracteres especiales

                $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');

                $repl = array('', '-', '');

                $url = preg_replace ($find, $repl, $url);

                return $url;

              }
              ?>

0voto

carlossevi comentado

Correcta la función, por el nombre interpreté que iba por otro camino.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta