Comunidad de diseño web y desarrollo en internet online

comolograr queen vesde ../post.php?id_p=10 se vea ..88879/ejemplo.html

Citar            
MensajeEscrito el 22 Feb 2012 05:40 pm
Hola!!
hace mucho me e preguntado porque en varias paginas web sale la url asi:

=http://www.ejemplo.com/f88/php-ajax-mysql-976596/

o si no aveces asi:

http://www.ejemplo.com/posts/noticias/14088879/ahora-en-Peru_.html

y yo solo e logrado hacerlo asi:

http://ejemplo/post.php?id_post=10

pero yo siempre eh querido hacer que la url se vea ....88879/ahora-en-Peru_.html pero no lo eh logrado, ya busque mucho yy no lo encuentro, quiciera que me ayudaran con eso, que programacion usa o cual es el truco xD
eso es todo Gracias!!!


Saludos!! :D :D

Por nacho23c

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Feb 2012 03:13 am
Por ejemplo, en la url "http://www.ejemplo.com/f88/php-ajax-mysql-976596/" supongo que "php-ajax-mysql-976596" se separa en dos partes.
1- "php-ajax-mysql". Título del post, éste mismo fue parseado para que se pudiera usar en la url del navegador sin que aparezcan los molestos %20 y eso..
2- "976596". Supongo que es la id del post, es por las dudas si un post se llama parecido al otro.


Yo te recomendaría hacer algo así:
Creas una tabla "posts", como mínimo los campos serían: post_id, titulo, seo_titulo, contenido
No he usado el campo autor y eso para que sea lo más breve posible. Para crear el post usas un formulario normal en el cual se pide el titulo y el contenido. Para el campo seo_titulo irá el titulo parseado para que se pueda usar en la url.
Ahora un poco de php:
Mostrar lista de posts:

Código PHP :

$db = mysql_connect("localhost", "user", "password");
mysql_select_db("nombredb");

$posts = mysql_query("SELECT * FROM `posts`");

while($post = mysql_fetch_assoc($posts))
{
echo '<a href="http://tuweb.com/verpost.php?post='.$post['seo_titulo'].'-'.$post['post_id'].'">'.$post['titulo'].'</a>';
}


verpost.php

Código PHP :

$post = $_GET['post'];
$aux = explode('-', $post);
$postid = end($aux);
$postseo = substr($post, 0, (strlen($postid)*-1)-1);

$db = mysql_connect("localhost", "user", "password");
mysql_select_db("nombredb");

$posts = mysql_query("SELECT * FROM `posts` WHERE `seo_titulo`='".$postseo."' AND `post_id`='".$postid."' LIMIT 1");
while($post = mysql_fetch_assoc($posts))
{
echo $post['contenido'];
}


Con eso ya tendrías el script funcional (hice el código muy feo porque estoy acostumbrado a usar MVC.
Por último, para cuando vayas a insertar un post a la base de datos tendrías que hacer algo como esto:

Código PHP :

// FUNCION PARA CREAR EL STRING COMPATIBLE CON LA URL
function seo($input){
    $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //convert UTF-8 string to lowercase
    $a = array('č','ć','ž','đ','š', 'á', 'é', 'í', 'ó', 'ú');
    $b = array('c','c','z','dj','s', 'a', 'e', 'i', 'o', 'u');
    $input = preg_replace("/[^a-zA-Z0-9]+/", "-", $input);
    $input = preg_replace("/(-){2,}/", "$1", $input);
    $input = trim($input, "-");
    return $input; //voila
}

// no pongo la coneccion a la base de datos, solo pongo la consulta
$titulo = $_POST['titulo'];
$contenido = $_POST['contenido'];
$seo = seo($titulo);
$sql = "INSER INTO `posts`(`post_id`, `titulo`, `seo_titulo`, `contenido`) VALUES(NULL, $titulo, $seo, $contenido)";
mysql_query($sql);


Falta mucho más como hacer el formulario y eso pero supongo que ya lo debes saber hacer...

Por Night~

43 de clabLevel



Genero:Masculino  

Geek, Gamer, Otaku

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.