и у меня теперь получился "редизайн" с кучей нерабочих ссылок
Где там ошибка, я не пойму
<form method="post" action="update.php">
<input type="text" name="user">
<br><input type="submit" value="отправить">
</form>
// страница добавления в базу
$user=$_POST[user];
$user = substr($user,0,30);
mysql_query("SET NAMES cp1251");
$result = mysql_query("update account set user='".mysql_real_escape_string($user)."' where id='".$_SESSION['valid_user']."'");
//страница вывода
echo '<br><b>Ваше новое имя: </b>'.stripslashes($row['user']);
Спустя 4 минуты, 55 секунд (25.08.2010 - 09:26) linker написал(а):
Например
htmlspecialchars($row['user'])
Спустя 13 минут, 13 секунд (25.08.2010 - 09:39) maximka787 написал(а):
Цитата (linker @ 25.08.2010 - 06:26) |
Например htmlspecialchars($row['user']) |
Получилось, теперь имя юзера <?
и ещё я проверил <script></script> тоже попдает в базу данных
так и должно быть? или тут надо ещё как то фильтровать по словам?
Спустя 1 минута, 45 секунд (25.08.2010 - 09:41) linker написал(а):
Ну и пускай попадает, главное что оно не работает. strip_tags()
Спустя 21 секунда (25.08.2010 - 09:41) phz написал(а):
Главное на входе в базу mysql_real_escape_string
на выходе htmlspecialchars, и будет всё в поряде
на выходе htmlspecialchars, и будет всё в поряде
Спустя 4 минуты, 46 секунд (25.08.2010 - 09:46) phz написал(а):
И исправьте
на
ибо будет Notice
$_POST[user];
на
$_POST['user'];
ибо будет Notice
Спустя 8 минут, 9 секунд (25.08.2010 - 09:54) maximka787 написал(а):
Цитата (phz @ 25.08.2010 - 06:46) |
ибо будет Notice |
у меня в кодах то
$_POST[user];
то
$_POST['user'];
и
$_POST["user"];
в принципе везде работает) а что это за Notice?
переменная вроде определена
Спустя 7 минут, 12 секунд (25.08.2010 - 10:01) maximka787 написал(а):
И ещё
htmlspecialchars($row['user'])
теперь если я заключил юзера в кавычки "lexa"
то выводится \"lexa\"
htmlspecialchars($row['user'])
теперь если я заключил юзера в кавычки "lexa"
то выводится \"lexa\"
Спустя 32 секунды (25.08.2010 - 10:02) linker написал(а):
user - это PHP-константа, которая определяется через define()
'user' - это стоковое значение, используется например для доступа к элементу ассоциативного массива по ключу.
Но PHP не дурак, он user представит как 'user', если такая константа не определена.
Это был пример, головой думать ведь никто не запрещал - stripslashes()
'user' - это стоковое значение, используется например для доступа к элементу ассоциативного массива по ключу.
Но PHP не дурак, он user представит как 'user', если такая константа не определена.
Это был пример, головой думать ведь никто не запрещал - stripslashes()
Спустя 1 минута, 38 секунд (25.08.2010 - 10:03) maximka787 написал(а):
Цитата (linker @ 25.08.2010 - 07:02) |
user - это PHP-константа, |
ясно, на всякий заключу в ' '
а на счет поста выше? про кавычки?
Спустя 4 минуты, 20 секунд (25.08.2010 - 10:08) maximka787 написал(а):
оо, сам разобрался))
htmlspecialchars(stripslashes($row['user']))
htmlspecialchars(stripslashes($row['user']))
Спустя 5 минут, 48 секунд (25.08.2010 - 10:13) twin написал(а):
А если таки отключена magic_quotes_gpc?
Спустя 3 минуты, 38 секунд (25.08.2010 - 10:17) linker написал(а):
Ну отработает stripslashes() впустую.
Спустя 1 минута, 3 секунды (25.08.2010 - 10:18) twin написал(а):
Неееет. Она сожрет значимые бэкслэши. Вот такое "\n" запостить не получится.
Спустя 1 минута, 16 секунд (25.08.2010 - 10:19) maximka787 написал(а):
Ой, жесть, а что делать? а как узнать про magic_quotes_gpc
у меня скорее всего 1
кстати "\n" получилось запостить
Вообще я думаю провыерку сделать на разрешение только русских и англ букв кавычек и цифр. думаю это самый нормальный вариант
у меня скорее всего 1
кстати "\n" получилось запостить
Вообще я думаю провыерку сделать на разрешение только русских и англ букв кавычек и цифр. думаю это самый нормальный вариант
Спустя 5 минут, 48 секунд (25.08.2010 - 10:25) twin написал(а):
Цитата |
кстати "\n" получилось запостить |
это потому что включено. А вот скоро выведут из употребления директиву (она деприкатед) и будет косяк.
Вот тут поройся. А лучше сам реши, наука будет на всю жизнь.
Вот тут поройся. А лучше сам реши, наука будет на всю жизнь.
Спустя 7 минут, 58 секунд (25.08.2010 - 10:33) linker написал(а):
Цитата (twin @ 25.08.2010 - 10:18) |
Неееет. Она сожрет значимые бэкслэши. Вот такое "\n" запостить не получится. |
Он не жрет такие слэши

Спустя 2 минуты, 19 секунд (25.08.2010 - 10:35) twin написал(а):
Еще как жрет.

$text = '\n';
echo stripslashes($text);
Спустя 5 минут, 29 секунд (25.08.2010 - 10:41) linker написал(а):
twin
Хех, хитрый, а ты попробуй "\n"
Хех, хитрый, а ты попробуй "\n"
Спустя 3 минуты, 32 секунды (25.08.2010 - 10:44) twin написал(а):
Ы. Я же написал - значимые, а не экранирующие. Из формы можно хоть так '\n', хоть так "\n" - все равно сожрет.

Спустя 1 час, 8 минут, 30 секунд (25.08.2010 - 11:53) Nord написал(а):
Цитата |
Ой, жесть, а что делать? а как узнать про magic_quotes_gpc у меня скорее всего 1 |
Вот так:
if (get_magic_quotes_gpc()) $string = stripslashes($string);
Спустя 4 дня, 7 часов, 54 минуты, 31 секунда (29.08.2010 - 19:47) Tibrum написал(а):
Подскажите, если я перейду со стандартных mysql функций на PDO, я могу не писать всю эту ерунду с "mysql_escape_string / stripslashes" при обращении к БД?
Спустя 3 минуты, 54 секунды (29.08.2010 - 19:51) twin написал(а):
Эту можешь не писать. Будешь писать другую, ничем не лучше.

Спустя 1 день, 2 часа, 15 минут, 58 секунд (30.08.2010 - 22:07) Tibrum написал(а):
Цитата |
Будешь писать другую, ничем не лучше. smile.gif |
Не подскажите, какую например?

_____________
..Работает - не трогай!