Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Почему переменная обнуляется
Сообщения
apple

Вообщем, делаю...точнее пробую делать скрипт новостей где к новости добавляются комментарии. На 8ой строке мы получаем id новости ($id_news). Далее идет выборка новости, потом выборка комментариев, потом html форма отправки, которая передает данные по ссылке index.php?action=add. И после того как мы переходим на action=add, (где должна происходить вставка в бд)у нас обнуляется переменная $id_news, соответственно, из-за этого, унас не выводятся ни новости, ни комментариев. Что нужно сделать, или как правильно нужно писать, что бы $id_news не обнулялась?
Код прикрепил.

04 Янв 2013, 2:38
TOOZ

apple, в форму [php:1:57068b7ccc]<form method = "post" action = "index.php?action=add">[/php:1:57068b7ccc]
Добавляй ID новости. Он у тебя обнуляется потому что $_GET['news'] пуст, от куда ему взятся.

04 Янв 2013, 2:49
apple

TOOZ, то есть так?
[php:1:c9e38fdc4f]<form method = "post" action = "index.php?action='.$id_news.'">[/php:1:c9e38fdc4f]

04 Янв 2013, 2:52
TOOZ

Так
<form method = "post" action = "index.php?news='.$id_news.'&action=add">
добавлено спустя 1 минуту:
И еще у тебя скрипт дырявый будет, если так и оставишь. Фильтруй обязательно все суперглобальные массивы.

$id = abs(intval($_GET['news']));

04 Янв 2013, 2:55
apple

TOOZ, ух ты, с такими двойными штуками я не сталкивался. =D и как это принять? ну в смысле если просто index.php?actino=add
я пишу
[php:1:d06f3cffeb]

if ($_GET[action] == add)
{

}

[/php:1:d06f3cffeb]
и тд. а в этом случае не знаю? можешь в моем коде написать, если не сложно, а я разберусь. Буду очень благодарен=)

04 Янв 2013, 2:59
Casper

И символ & лучше прописывать так: &amp; , дабы избежать синтаксическую ошибку

04 Янв 2013, 2:59
TOOZ

apple, просто замени код формы, на тот который я дал.
И отформатируй код...если дальше наращивать функционал скрипта то через некоторое время в нем не разберешься даже ты сам.
добавлено спустя 2 минуты:
Ща сделаю...
добавлено спустя 6 минут:
[php:1:cc671703b2]<?
$id_news = abs(intval$_GET["news"]));
$query = mysql_query("SELECT * FROM `news` WHERE id = $id_news") or die ('<br><div class = "block">Новостей нет, скорее всего это ошибка, сообщите администратору</div>');
$row = mysql_fetch_array($query);
{
echo '<div class = "block">';
echo '<div class = "block event title" style "font: bold;"><table border = "0" width = "100%"><tr><td align = "left"><img src = "../../news/img/news.png"> '.$row["title"].'</td><td align = "right"><span class = "nickBlocked small">'.$row["date"].' в '.$row["time"].'</td></tr></table></div>';
echo '<div class = "block nickAdmin">'.$row["text_news"].'</div>';
echo '</div>';
}
$query = mysql_query("SELECT * FROM `comments_news` WHERE id = $id_news") or die ('<br><div class = "block">Комментариев нет, скорее всего это ошибка, сообщите администратору</div>');
while ($row = mysql_fetch_array($query))
{
echo '<br>';
echo '<div class = "event minor"><table border = "0" width = "100%"><tr><td align = "left"> '.$row["name"].'</td><td align = "right"><span class = "nickBlocked small">'.$row["date"].' в '.$row["time"].'</td></tr></table></div>';
echo '<div class = "block small">'.$row["text"].'</div>';
}
echo '
<!--Форма отправки-->
<br>
<form method = "post" action = "index.php?news='.$id_news.'&amp;action=add">
<span class = "small">Имя:</span> <input type = "name" name = "name"><br>
<textarea name = "post"></textarea><br>
<input type = "submit" name = "ok" value = "Написать">
</form>
<!--Конец формы отправки-->';
$action = $_GET["action"];
if ($action == 'add')
{
echo ' Проверка прошла успешно';
}
?>[/php:1:cc671703b2]


__________
посл.ред. 04 Янв 2013, 3:04; всего 1 раз 04 Янв 2013, 3:11
apple

TOOZ, да, спасибо, я это сделал уже=)) благодарю за быструю помощь, не смотря на то, что уже 5 утра=)
добавлено спустя 8 минут:
а да, кстати, abs(intval()) вставлять везде от куда приходит? я имею ввиду даже когда передаются данные из формы? кстати, по моему intval для чисел только

04 Янв 2013, 3:24
nitron

apple, abs(intval($value)) -для чисел
mysql_real_esqape_string(trim(value)) - при записе в бд
htmlspecialchar($value, ENT_QUOTES) - при выводе из бд

04 Янв 2013, 8:35
SL_NeKrOmAnT

nitron, В двух функциях 2 ошибки.
[php:1:3ca9764868]
mysql_real_escape_string(trim($value)) // при записе в бд
htmlspecialchars($value, ENT_QUOTES) // при выводе из бд
[/php:1:3ca9764868]

04 Янв 2013, 11:03
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.