Soy muy novato en esto, así que déjame explicarte el problema:
Tengo un script de devolución de dinero, el título del minorista está almacenado en la base de datos, mis enlaces se ven así:
ejemplo.com/view_retailer.php?id=232
Quiero cambiar eso a /view_retailer?title=retailer-title
No puedo entender por qué no funciona, tengo en mi base de datos las columnas retail_id, title y retail_url. Retailer_url está vacío.
if (!function_exists('GetRetailerLink')) { function GetRetailerLink($retailer_id, $retailer_title = "") { $retailer_id = (int)$retailer_id; $retailer_link = SITE_URL."view_retailer.php?id=".$retailer_id; return $retailer_link;En la página php view_retailer:
if (isset($_GET['id']) && is_numeric($_GET['id'])) { $retailer_id = (int)$_GET['id']; } else { header ("Location: index.php"); exit(); }Ya jugué con el código a continuación, pero esto no funciona -> no se encontró la tienda.
if (!function_exists('GetRetailerLink')) { function GetRetailerLink($retailer_id, $retailer_title = "") { $retailer_id = (int)$retailer_id; $retailer_link = SITE_URL."view_retailer.php?title=".$retailer_title; return $retailer_link;y
if (isset($_GET['title']) && is_numeric($_GET['title'])) { $retailer_title = (int)$_GET['title']; } else { header ("Location: index.php"); exit(); }¿Como puedó resolver esté problema? ¡Gracias por ayudarme!
Gracias por las soluciones propuestas.
Lo probé ahora con
if (!function_exists('GetRetailerLink')) { function GetRetailerLink($retailer_id, $retailer_title = "") { $retailer_id = (int)$retailer_id; $retailer_link = SITE_URL."view_retailer.php?title=".$retailer_title; return $retailer_link;y
if (isset($_GET['title']) && is_string($_GET['title'])) { $retailer_title = (string)$_GET['title']; } else { header ("Location: index.php"); exit(); }también lo probé con
if (isset($_GET['title'])) { $retailer_title = (int)$_GET['title']; } else { header ("Location: index.php"); exit(); }Desafortunadamente, eso tampoco soluciona el problema -> Tienda no encontrada.
Deberá eliminar is_numeric($_GET['title']) en su código.
is_numeric($_GET['title']) verificará si la variable es un número o una cadena numérica.
¿Quizás puedas intentar eliminar is_numeric? Dado que el título es una cadena de caracteres, siempre devolverá falso.
if (isset($_GET['title'])) { $retailer_title = $_GET['title']; } else { header ("Location: index.php"); exit(); }Espero que esto funcione para usted :)