Экранирование переменных в MySql: для MU онлайн, веб-сайтов, помощи Web

Автор logic, 2010 Авг. 04, 18:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mysqlпеременныеэкранирование

logic

Почему переменные в mysql выносятся как текст? Есть способ, как-то их экранировать?

DobrjaG

Цитата: logic от 2010 Авг. 04, 18:16  Почему переменные в mysql выносятся как текст? Есть способ, как-то их экранировать?
Это как понять?
Я сам не понимаю

8BitCore

Спойлер
Цитата: DobrjaG от 2010 Авг. 04, 21:07  Это как понять?
Я сам не понимаю
так какого х** ты сюда пишешь?
[свернуть]

GrInYa

если я правильно понял то попробуй так

mysql_query('insert into table (column) values (`'.$value1.'`)');

DobrjaG

Цитата: 8BitCore от 2010 Авг. 05, 01:40  
Спойлер
так какого х** ты сюда пишешь?
[свернуть]
Спойлер
Так какого х** спрашиваешь?
Мне было самому интересно узнать!
[свернуть]

logic

#5
Цитата: GrInYa от 2010 Авг. 05, 01:50  если я правильно понял то попробуй так

mysql_query('insert into table (column) values (`'.$value1.'`)');
Нет, это занос в базу, а меня вынос инетрисует
Допустим в базе, в колонке text, находиться следующий текст: Привет $var!

<?php
$var 
"x-mu";

$services mysql_query("SELECT * FROM services where title='".mysql_real_escape_string($_GET['view'])."' ");
$services_assoc mysql_fetch_assoc($services);
echo 
$services_assoc['text'];
В итоге на экран выйдет: Привет $var! А мне надо, чтобы вышло: Привет x-mu!

epmak

Спойлер
я уже тебе писал, что держать весь сайт в базе по-моему не рационально. Что тебе мешает хранить само значение $var а когда надо вытаскивать его оттуда и подставлять в текст?
[свернуть]

logic

Цитата: epmak от 2010 Авг. 05, 14:32  
Спойлер
я уже тебе писал, что держать весь сайт в базе по-моему не рационально. Что тебе мешает хранить само значение $var а когда надо вытаскивать его оттуда и подставлять в текст?
[свернуть]
Да это тоже можно, НО все-таки очень интересует данный вопрос, как же переменную вытащить не превращая ее в текст)

epmak


MaMoHT

Цитата: 8BitCore от 2010 Авг. 05, 01:40  
Спойлер
так какого х** ты сюда пишешь?
[свернуть]
посты набивает..

GrInYa

Цитата: logic от 2010 Авг. 05, 12:43  Нет, это занос в базу, а меня вынос инетрисует
Допустим в базе, в колонке text, находиться следующий текст: Привет $var!

<?php
$var 
"x-mu";

$services mysql_query("SELECT * FROM services where title='".mysql_real_escape_string($_GET['view'])."' ");
$services_assoc mysql_fetch_assoc($services);
echo 
$services_assoc['text'];
В итоге на экран выйдет: Привет $var! А мне надо, чтобы вышло: Привет x-mu!

не знаю поможет или нет но попробуй...или примерно так

echo eval ($services_assoc['text']);

но это тупость по моему...не пробовал...но попробуй так...

echo "".$services_assoc['text'].""; либо
echo stripslashes($services_assoc['text']);

либо
echo "".stripslashes($services_assoc['text'])."";

epmak

Спойлер
как попробует кто-нить, отпишитесь, самому стало интересно :D
[свернуть]

worldhero

#12
немного не верное определение eval
она выполняет текст (string) как php.
поэтому вызвать:
echo eval ($services_assoc['text']);
получим нечто
<?
fkjhdshfdshhfds
ddhfjdshkl
fkjdshfdshkj и другой бред который был в поле текст, из за этого выдаст ошибка.
?>
Хотя если прописать в
$services_assoc['text']='echo "привет как дела? меня зовут $name"';
реально что сработает.

поэтому большее предпочтение выдаст такой формат:
eval("$peremennaya = "$services_assoc['text']";");
в этом случаи можно хранить запись в таблице, следующим видом:
$services_assoc['text']='привет как дела меня зовут $name'; без дополнительных команд.

да и в обще, хранить php код в базе данных, это полный абсурд, да еще и нужно будет htmlspecialshars(); делать + желательно base64_encode(); и чтобы не стырели сайт, еще желательно все это дело закодировать.
А вот текст выводимый пользователям вполне подойдет для хранения :)

GrInYa

Цитата: worldhero от 2010 Авг. 06, 09:05  да и в обще, хранить php код в базе данных, это полный абсурд
нет не абсурд ;) такое часто используют и вполне логично ;)

epmak

ребят, это дело вкуса, где хранить и как юзать. Просто вопрос в опыте всегда стоит.

logic

#15
Все проще, подсказали
Занести в базу, вместо $var - %var%
а при выводе просто
echo str_replace('%var%', $var, $services_assoc['text']);

GrInYa

#16
logic, зачем изменять? str_replace('$var', $var, $services_assoc['text'], 1);

Похожие темы (5)