Hola. Seguimos en eso de aprender a escribir funciones php.
Ahora estamos intentando hacer un buscador, pero la búsqueda no se da a partir de un input, sino de un valor dado.
Es decir, supongamos que el articulo lo escribe Rubén y lo publica cualquier persona en su blog. En el campo autor, el bloguero escribe 'Rubén', y ese valor se guarda en la base de datos.
lo que quiero hacer es que en el articulo, el nombre de Rubén aparezca como un link y que ese link nos lleve a una página donde aparezcan todos los articulos escritos por Rubén. Lo he visto en muchas páginas, pero todavía no consigo hacerlo, porque además, algo muy importante, es que con esta función no se abra una puerta para un ataque xss.
En el articulo, el campo de autor está llamado así:
Código PHP:
<a href="<?php permalink_autor("search.php") ?>" title="<?php the_autor(); ?> "> <?php the_autor(); ?></a>
hasta ahí, todo bien.
ahora la función:
Código PHP:
function permalink_autor($file='') {
global $id,$postdata, $tableposts;
global $querystring_start, $querystring_equal, $querystring_separator;
$autor = get_the_autor();
$query = "SELECT * FROM $tableposts WHERE autor LIKE '%".$autor."%' LIMIT 0, 15";
$result = mysql_query($query);
$autor = mysql_fetch_array($result);
echo $file.$querystring_start.'autor'.$querystring_equal.$autor;
}
he probado varias, pero con esta creo que me he acercado a la solución.
pero el problema está en que el link aparece así:
Código PHP:
http://www.asdfghijkl.net/search.php?autor=Array
es decir, no recupera el valor de $autor en el link, pero no entiendo porqué.
y tampoco se si va a funcionar esta función.
ah!, y cómo la protego contra xss.
espero que alguien pueda orientarme
saludos