Я строю CMS, и я пытаюсь создать систему управления версиями.
Каждый раз, когда пользователь учитывает обновление к существующей веб-страницы, я хочу таблицы «Управление версиями», чтобы сохранить журнал событий, из которых отредактированный поля ...
, чтобы сделать это, я запустить кучу чтобы проверить, отличается ли содержимое формы, которое пользователь только что заполнил, до содержимого на веб-сайте до нажатия кнопки ...
поэтому перед тем, как я сделаю обновление, у меня есть следующий код (извинения если форматирование искажено):
$sql = "select * from pages where ID =" .$_POST[id];
$rs = odbc_exec ($db, $sql);
$contents_original = odbc_result($rs,"content");
$title_original = odbc_result($rs,"title");
$pageorder_original = odbc_result($rs,"pageorder");
$parent_original = odbc_result($rs,"parent");
$footer_original = odbc_result($rs,"footer");
$updated_content = trim(stripslashes(strtolower(htmlentities($_POST['content']))));
$original = trim(strtolower($contents_original));
if ($updated_content == $original) {
$a = 'n';
} else {
$a = '<p>Contents changed.';
}
// и так далее от переменных $ Ь - $ е ... то:
$update = "$a $b $c $d $e";
который затем следует обновляемым процедуры (все из которых работает хорошо и денди), и в конце Версии обновить, я вставляю содержимое $ update в SQL в столбце «события» (это также работает просто отлично)
Однако! предположив, что пользователь загружает форму с исходным содержимым страницы и нажимает на отправку ... если в форму ничего не изменилось, тогда $ a will = '' и, следовательно, ничто не должно вводиться в столбец «события». Кроме того, он продолжает вводить «содержимое изменено» и, фактически, делает это для каждой отдельной строки (например, поле заголовка, поле нижнего колонтитула и т. Д.)! странная вещь есть 2 целых ввода, и они записываются в меню событий просто отлично.
Если я распечатать STRLEN (stripslashes (strtolower (htmlentities ($ _ POST [ 'содержание'])))) и StrLen (strtolower ($ contents_original)) это показывает, что длины различны ...
нет ничего в коде или длине базы данных, чтобы вызвать это торможение.
ВЫХОД ИЗ: stripslashes (strtolower (stripcslashes ($ thenewcontent)))
Привет из осьминога!
добро пожаловать в jonathan m. edwards ".
все, что вам нужно для проектирования - бизнес-сайт, логотип группы, вы называете его - у меня есть навыки, чтобы предоставить вам творческий и профессиональный продукт.
нажмите на картинки ниже, чтобы иметь быстрый просматривание:
организовать для цитаты или если вы просто хотите поговорить идею до конца, напишите мне письмо по адресу: контакт [в] angry-octopus.co .uk или позвоните мне по (0789) 694-3379
ВЫХОД иЗ stripslashes (strtolower (html_entity_decode ($ contents_original)))
привет из осьминога!
добро пожаловать в jonathan m. edwards ".
все, что вам нужно для проектирования - бизнес-сайт, логотип группы, вы называете его - у меня есть навыки, чтобы предоставить вам творческий и профессиональный продукт.
нажмите на картинки ниже, чтобы иметь быстрый просматривание:
организовать для цитаты или если вы просто хотите поговорить идею до конца, напишите мне письмо по адресу: контакт [в] angry-octopus.co .uk или позвоните мне (0789) 694-3379
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _
Ваш код очень уязвимы для SQL-инъекций – Madbreaks
Почему вы не используете firebug для просмотра фактических сообщений, идущих туда и обратно? – Julian
Он должен быть скрыт и закодирован. он не находится на странице домена по умолчанию. –