2013-04-28 8 views
-1

так я сохранил статью слизняка в моей базе данных и, как правило, я бы фильтровать страницы с art_id, как это так,PHP Статья Slug вместо ID

$sql_articles = "SELECT * FROM app_articles WHERE art_id=".$_GET['art_id']; 
$result_articles = query($sql_articles); 

и я прохожу бы пройти art_id через URL со ссылкой, как так

<a href="index.php?art_id=<?php echo $article['art_id']; ?>"> 

и мне интересно, как я могу пройти art_slug вместо art_id так что мой URL будет как www.site.com/index.php/lorem-ipsum-slug и он будет отображать статьи заранее спасибо за любую помощь

ответ

3

Прежде всего, похоже, что у вас есть возможность впрыска SQL. Погугли это.

Во-вторых, вам понадобится создать столбец art_slug в вашей базе данных. После этого вы должны быть в состоянии сделать следующее:

$sql_articles = "SELECT * FROM app_articles WHERE art_id=".$_GET['art_slug']; 
$result_articles = query($sql_articles); 

и вы будете в состоянии передать art_slug через URL со ссылкой, как так

<a href="content.php?art_slug=<?php echo $article['art_slug']; ?>"> 

Вы обновляемой вопрос и вещи стали более ясными. Вас может заинтересовать rewriting your URL on the server side. Данная документация предназначена для Apache, но эта функциональность существует во всех основных веб-серверах.

+0

Спасибо, да, у меня уже есть это настроение, но мой URL-адрес похож на 'content.php? Art_slug = lorme-ipsum', но я вижу много сайтов, таких как stackoverflow и их URLS, как' content.php/lorem-ipsum' – user2201765

+0

@ user2201765 Обновлено – vaultah

+0

Спасибо, это именно то, что я искал, очень ценю! – user2201765

1

Точно так же вы должны пройти идентификатор.

$sql_articles = "SELECT * FROM app_articles WHERE art_slug=".$_GET['art_slug']; 
$result_articles = query($sql_articles); 

и

<a href="content.php?art_slug=<?php echo $article['art_slug']; ?>">

Вы должны дезинфицировать переменные, а не использовать его из $ _GET непосредственно, потому что это делает вас уязвимым для инъекции SQL атаки.

Смежные вопросы