<script type="text/ваш-язык-программирования"></script>
Нужно ли фильтровать данные из _COOKIE, _HEADER, _SERVER,
к примеру
?query=
выдает модальное окошко если запустить $_SERVER['[REQUEST_URI']
<html>
<body>
?query=<script>alert('о, привет!'); </script>
</body>
</html>
$unsafe_string_for_html = "<script>alert('о, привет!'); </script>";
echo '<textarea>'.$unsafe_string_for_html.'</textarea>';
$unsafe_string_for_html = "<script>alert('о, привет!'); </script>";
$safe_string_for_html = htmlspecialchars($unsafe_string_for_html);
echo '<textarea>'.$safe_string_for_html.'</textarea>';
select mod_f1, replace(mod_f1, '.png', '.webp') as result_mod_f1,
mod_f2, replace(mod_f2, '.png', '.webp') as result_mod_f2
from table
/*update table
set mod_f1 = replace(mod_f1, '.png', '.webp'),
mod_f2 = replace(mod_f2, '.png', '.webp')*/
/*update table
set mod_f1 = replace(mod_f1, '.png', '.webp'),
mod_f2 = replace(mod_f2, '.png', '.webp')
where mod_f1 like '%.png%'
or mod_f2 like '%.png%'
LIMIT 1000 */
select p.endpoint_id,
p.mode_start as event_start,
(p.mode_start + p.mode_duration) as event_end,
sum(e.kwh) as sum_kwh
from periods p
join energy e on e.endpoint_id = p.endpoint_id -- связываем выставленный период для прибора с показаниями прибора
and p.mode_start <= e.event_time -- связывание начало периода с моментом замера
and (p.mode_start + p.mode_duration) > e.event_time -- связывание конца периода с моментом замера
group by p.endpoint_id, p.mode_start, (p.mode_start + p.mode_duration)
order by p.endpoint_id, p.mode_start
select e.endpoint_id,
p.mode_start as event_start,
(p.mode_start + p.mode_duration) as event_end,
sum(e.kwh) as sum_kwh
from energy e
left join periods p on e.endpoint_id = p.endpoint_id
and p.mode_start <= e.event_time
and (p.mode_start + p.mode_duration) > e.event_time
group by e.endpoint_id, p.mode_start, (p.mode_start + p.mode_duration)
order by e.endpoint_id,
p.mode_start nulls first -- ставим первой строкой сумму замеров с неучтенными значениями (в пределах одного прибора)
SELECT t1.ProductCode, t2.Name
FROM table_one as t1 -- t1 - краткий псевдоним таблицы table_one в пределах select-а
LEFT OUTER JOIN table_two as t2 -- t2 - краткий псевдоним таблицы table_two в пределах select-а
ON t2.id = t1.id_client;
Выделите ошибку и нажмите одновременно клавиши «Ctrl» и «Enter»
Есть роль А И B. Только роль A может начать чат с ролью B
Чат может содержать только 2х лиц
$max_cart_item_count = 500;
$curr_cart_item_count = min(count($_SESSION['cart']), $max_cart_item_count);
for($i = 0; $i < $curr_cart_item_count; $i++)
....
WHERE `type`= '$id'
$stmt = $conn->stmt_init();
$stmt->prepare("SELECT * FROM `items` WHERE `type` = ?"); // подставляем текст запроса, причем на месте входных параметров ставим специальные маркеры - плейсхолдеры.
$stmt->bind_param("i", $id); // подставляем на место плейсхолдера значение параметра как целочисленный тип
$stmt->execute(); // вот теперь можно выполнить запрос
$result = $stmt->get_result();
while($row = $result->fetch_assoc())
{
// Обработка результатов
}
btn_send.addEventListener('click',async() => {
let blob = await new Promise(resolve => canvasElem.toBlob(resolve, 'image/png'));
let formData = new FormData(); // Создаем объект формы для наполнения данными, словно мы работаем с тегом form в html.
formData.append('canvas_field', blob, 'canvas.png'); // это эквивалент тому, что в нашей html форме создаем поле input type="file" name="canvas_field" value="canvas.png" и прикрепляем туда содержимое blob (метод append сам расшаривает blob, дополнительных преобразований не требуется). Естественно, на DOM-дереве это никак не отразится, это модель формы в памяти JS.
let response = await fetch('web_tp_word.php', {
method: 'POST',
body: formData // для fetch не нужно дополнительных параметров, чтобы объяснить как работать с formData. Идеально, чтобы завернуть файл в форму и отправить на сервер.
});
});
var_dump($_FILES['canvas_field']); // Сервер при вызове скрипта сложит данные файла во временный файл, а как их получить - в $_FILES. Далее можно обрабатывать всеми теми способами, предназначенные для работы с $_FILES. И после уже неважно, как их сгенерировали на клиенте.
...args
arguments
какая из реализаций лучше?
SELECT SUM(rating) as rating, SUM(vote_num) as num
FROM " . PREFIX . "_post_extras as pe
inner join " . PREFIX . "_post as p on p.post_id = pe.post_id -- тут название ключей post_id с обеих сторон нужно уточнять!
WHERE pe.user_id ='{$id}'
and p.category = '{$category_id}'
select C.Id
from News N
join Categories_Of_News CoN on CoN.News_Id = N.Id
join Category C on C.Id = CoN.Category_Id
where N.Id = :news_id
<select id="selectTheme" onchange="alert('Theme changed')">
</select>
sel.addEventListener('change', (event) => {
alert('Theme changed');
})