есть такой вывод базы данных while ($output = mysql_fetch_assoc($result)) { echo $output["id_msg"].<br />; ; echo $output["name"].'<br />'; echo $output["city"].'<br />'; echo $output["email"].'<br />'; echo $output["url"]. '<br />'; echo $output["msg"].'<br />'; echo $output["answer"].'<br />'.'<a href="admin/add_answer.php">написать ответ</a><br />'; //наверное тут echo $output["puttime"].'<br />'; // echo $output["hide"].'<br />'; } как ПРАВИЛЬНО добавить GET чтобы передать id_msg в add_answer.php чтобы использовать его для связи с таблицей записи (это гостевая книга)
... секунду нет нет просто в своей ссылке добавь <a href="admin/add_answer.php?VAR=$output['id_msg']">написать ответ</a> а в файле add_answer.php ловишь эту переменную $_GET['VAR'] вместо VAR как ты понимаешь любое имя переменной написать можно! ______ параметры get передаются после разделителя "?" парами переменная=значение разделенные символом "&" пример: <a href="www.lll.ru?var1=zn1&var2=zn2"></a>
2eLWAux спс _______ тогда исправляюсь перед использованием переданного параметра отфильтровать всякую ересь PHP: $_GET=array_map('htmlspecialchars',$_GET); $_GET=array_map('strip_tags',$_GET); $_GET=array_map('mysql_escape_string',$_GET); для удобства в случае если передается несколько параметров можно работать с ними как с массивом $_GET не проверяя каждый параметр по отдельности
optimazer Эт типа, давайте просто так, ради смеха испортим весь массив $_GET eLWAux Тож ниче так, забавно получится, что вы собираетесь убрать strip_tags после того, как преобразовали <> в сущности? Так как ID у автора скорее всего число, то достаточно делать запрос: PHP: mysql_query("SELECT * FROM table WHERE id='".intval($_GET['id'])."'"); Все, скули не будет, а вот для результата, лучше будет все же использовать array_map('htmlspecialchars',$output); Всем читать - http://forum.antichat.ru/thread30641.html
2Gifts а почему испортим то? =) ты часто спец.символы get-ом передаешь? =)) по хорошему нада все данные на валидность проверять а если id не число, а генерированная символьная последовательность?
optimazer ссылка дадена просто для красоты наверн. Если символьная - mysql_real_escape_string() Не поверишь, гетом можно передать что угодно, а как часто - это уже дело десятое. Может я хочу md5 не в хекс строке передать?
2Gifts чтобы охватить весь спектр угроз безопасности нужно проверять на валидность данных весь массив get
Используй жесткое приведение типов: Все лишнее, кроме цифр отфильтруется. Для отвода лишних глаз, ставь в начало скрипта Советую почитать вот это про анти-sql-инъекции: https://forum.antichat.ru/thread30641.html
Это пропустит отрицательные и нулевой id. Хорошо - так: PHP: $id=isset($_GET['id']) && !is_array($_GET['id']) ? $_GET['id'] : 0; if(!preg_match("/^\d+$/",$id) || !$id) die('Недопустимый ID');
регулярки рулят: проверяй так: PHP: $f="123"; // число от 1 до 99999 if (!ereg("^([0-9]{1,5})$",$f)) { echo 'Недопустимый ID'; }
vikseriq, про ereg уже много раз говорилось, что функция уязвима к нулевому байту при magic_quotes=off. Лучше всего - preg_match, она помимо этого быстрее ereg.
Никто не запрещает обрезать нульбайт ) Мы тут не все гуру, а мой вариант для начинающих само то - просто и легко расширяемо (напр. , проверка на wmz кошель - полминуты дела).