[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ID статей
Страницы: 1, 2
Kekc
Всем доброй ночи!
На моей странице имеются две статьи которые занесены мной вручную в БД, и с помощью запроса успешно вытаскиваются на мою страницу. Статья делится на заголовок, описание и основной текст, чтобы просмотреть весь текст которой содержит в себе статья, необходимо нажать на href "полностью" в конце описания.

Проблема в том, что какую-бы я ссылку не открывал всегда ссылается на 1 пост.

<?php
if(!isset($_GET["id"])){
$id=1;
}else
{
$id=$_GET["id"];
}
$result = mysql_query("SELECT * FROM inf WHERE id='$id'") or die(mysql_error());
$data = mysql_fetch_array($result);
do {
printf ('
<div>
<h1>%s</h1>
<p>%s</p>
</div>
'
,$data ["title"],$data["desc"]);
}
while($data = mysql_fetch_array($result));
?>
inpost
if(!isset($_GET["id"])){
$id=1;
}


я мог у сделать выводы, что ты $_GET['id'] не передаёшь.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Kekc
Я так понял, потому что в $id=1 написано, поэтому и ссылается на одну и ту же статью?

Исправьте пожалуйста, с php очень плохо знаком, додумать сам скрипт не могу.

С уважением к вам!
inpost
ссылка на статью кривая. Подправь так, чтобы передавался.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Xpund
Реально? do while?

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Invis1ble
Реально. do-while + mysql_fetch_array + printf - это дьявольская метка Попова.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Kekc
Помогите пожалуйста найти аналогичный скрипт, сам очень плохо в скриптах разбираюсь.
JohnBraxton
Цитата (Kekc @ 28.05.2015 - 22:55)
Я так понял, потому что в $id=1 написано, поэтому и ссылается на одну и ту же статью?

Исправьте пожалуйста, с php очень плохо знаком, додумать сам скрипт не могу.

С уважением к вам!

Дело в том что в твой скрипт не прилетает ID.

Скорее всего у тебя битая ссылка.

Пример:
<a href="handler.php?id=100">Название статьи</a>


Далее ты ни как не проверяешь то что передаешь, а это черевато последствиями.

Я бы сделал так:
if(!isset((int)$_GET["id"])){


и

$result = mysql_query("SELECT * FROM inf WHERE id = " . $id) or die(mysql_error());


Если ты выводишь одну статью, зачем тебе do while?


$data = mysql_fetch_array($result);

echo 'Название статьи' . $data ["title"] . '<br>';
echo 'Описание статьи' . $data ["desc"] . '<br>';

JohnBraxton
Цитата (Invis1ble @ 29.05.2015 - 06:14)
Реально. do-while + mysql_fetch_array + printf - это дьявольская метка Попова.

+1))
killer8080
Цитата (JohnBraxton @ 29.05.2015 - 10:37)
Далее ты ни как не проверяешь то что передаешь, а это черевато последствиями.

Я бы сделал так:
if(!isset((int)$_GET["id"])){

и как это должно помочь от инъекции ? smile.gif
JohnBraxton
Цитата (killer8080 @ 29.05.2015 - 07:52)
Цитата (JohnBraxton @ 29.05.2015 - 10:37)
Далее ты ни как не проверяешь то что передаешь, а это черевато последствиями.

Я бы сделал так:
if(!isset((int)$_GET["id"])){

и как это должно помочь от инъекции ? :)

пардон забыл вписать... ))
$result = mysql_query("SELECT * FROM inf WHERE id = " . mysql_real_escape_string($id)) or die(mysql_error());
killer8080
JohnBraxton
mysql_real_escape_string тут бесполезен, ты правильно начал с приведения типов, только не в том месте.
JohnBraxton
Цитата (killer8080 @ 29.05.2015 - 08:01)
JohnBraxton
mysql_real_escape_string тут бесполезен, ты правильно начал с приведения типов, только не в том месте.

Блин... Лошара... Точно!

else
{
$id = (int)$_GET["id"];
}

killer8080
можно проще
$id = !empty($_GET['id']) && $_GET['id'] > 0 ? (int) $_GET['id'] : 1;
inpost
Попов сделал свой курс в 2004 году. Вы не поверите, но этому курсу, что смотрит ТС, всего 3-х лет нет, он вышел в 2012(!) году laugh.gif Всё то же самое, что и у Попова, но переснятый недавно.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.