Ver Mensaje Individual
  #18 (permalink)  
Antiguo 22/10/2013, 15:44
Melisa06
 
Fecha de Ingreso: febrero-2006
Mensajes: 35
Antigüedad: 19 años
Puntos: 1
Respuesta: No puedo generar url amigable

Pruebas en index.php:

-----------------------------
<?php
// var_dump($_GET);

$parts=explode("/",$_GET["page"]);

if($parts[1]=="articulos")
{
$parts2=explode("-",$parts[2]);

var_dump($parts2);

$_GET["ID_articulo"]=intval($parts2[3]);
include("ver_articulo.php");
}
?>

Aparece en blanco con la url amigable ok en el navegador.

-----------------------------

<?php
// var_dump($_GET);

$parts=explode("/",$_GET["page"]);

var_dump($parts[0]);
var_dump($parts[1]);
var_dump($parts[2]);

if($parts[1]=="articulos")
{
$parts2=explode("-",$parts[2]);

$_GET["ID_articulo"]=intval($parts2[3]);
include("ver_articulos.php");
}
?>

Esto devuelve tal como lo escribo y en este orden =

string 'articulos' (length=9)
string 'nombre-color-modelo-1234.html' (length=29)
null

El resto de la página está en blanco con la url amigable ok en el navegador.

-----------------------------

Luego de ver el resultado anterior intenté cambiando los $parts.

<?php
// var_dump($_GET);

$parts=explode("/",$_GET["page"]);

var_dump($parts[0]);
var_dump($parts[1]);
var_dump($parts[2]);

if($parts[0]=="articulos")
{
$parts1=explode("-",$parts[1]);

$_GET["ID_articulo"]=intval($parts1[3]);

var_dump($parts1[3]);

include("ver_articulo.php");
}
?>

Esto trae 1234.html en el var_dump($parts1[3]) que puse antes del include,
supongo que eso no está bien, tendré que ver cómo lo separo, y luego vienen
Warnings como que no encuentra la página de destino.

string 'articulos' (length=9)
string 'nombre-color-modelo-1234.html' (length=29)
null
string '1234.html' (length=9)

Warning: include(ver_articulos.php) [function.include]: failed to open stream: No such file or directory in C:\Archivos de programa\EasyPHP-5.3.6.1\www\misitio\index.php on line 19

Warning: include() [function.include]: Failed opening 'ver_articulos.php' for inclusion (include_path='.;C:\php\pear') in C:\Archivos de programa\EasyPHP-5.3.6.1\www\misitio\index.php on line 19

y continúa todo en blanco.

-----------------------------

el archivo .htaccess está en la carpeta raíz, igual que index.php, están en la misma carpeta:

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
ErrorDocument 404 http://www.misitio.com/404.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

-----------------------------

SkAr88: el código completo de index.php es el que escribo aquí, no hay otra cosa,
y el código de ver_articulos.php con todo respeto pienso que no hace falta
porque debe abrirse con el redireccionamiento al margen del código que tenga,
ya que con la url original:
http://127.0.0.1/misitio/articulos/ver_articulo.php?ID_articulo=1234
la puedo ver sin problemas.

-----------------------------

Les comento que uso $_GET["ID_articulo"] al final porque creo que así debería ir,
probé solo con $_GET["id"] y no hay cambios, cuál de las dos debo usar en esa línea?

Veo que tampoco funciona la redirección 404, sólo en estos casos.
-----------------------------

Trato de aportar todos los datos que puedo, la verdad que no quiero complicar las cosas.

Saludos.