CURLOPT_TIMEOUT => 0 даёт 0 секунд на всё про всё. Как насчёт поставить там что-нибудь ненулевое вроде, скажем, пяти?CURLOPT_TIMEOUT — Максимально позволенное количество секунд для выполнения cURL-функций.https://www.php.net/manual/ru/function.curl-setopt.php
page_id (string) — внутренний идентификатор страницы. Используйте page_id, чтобы разместить два и более независимых виджетов на одной странице.
if event.object.text.lower() == "привет бот" or "Привет бот" or "эй бот" or "Эй бот": читается как «если сообщение равно "привет бот" или всегда».or перечисляет не варианты значения, с которыми производится сравнение, а варианты условий (которыми, в данном случае, должны быть сравнения результата event.object.text.lower() с разными строками.govno в коде. Согласно мануалам, ctime возвращает строку с символом перевода строки в конце. Для иного форматирования там же рекомендуется использовать функцию strftime. Ну и после ] переноса не хватает. Refresh: 0;url=http://site.site.ru/<!-- в <head> -->
<meta http-equiv="refresh" content="0;url=http://site.site.ru/" />window.location.replace("http://site.site.ru/"); DEFINER подразумевается пользователь, который вызвал CREATE TRIGGER. Имея некоторые права, можно при создании триггера сделать дефайнером кого-то другого. В любом случае, код самого триггера будет выполняться с правами дефайнера (а не пользователя в сессии), поэтому они должны быть предоставлены в необходимом объёме. str = document.getElementById('num').valuevar num = Number(str);
if (isNaN(num)) {
// ошибка, введено не число
}<input type="button" id="Button3" value="Посчитать" onclick="calculate()">function calculate() {
// тут, собственно. надо получить число и степень из инпутов, посчитать результат, и куда-нибудь его вывести. Например, через alert(), или в дополнительный инпут:
// document.getElementById('result').value = result;
} mount --bind.mkdir /home/ivan/usr-localmount --bind /usr/local /home/ivan/usr-localumount /home/ivan/usr-local./etc/fstab прописать/usr/local /home/ivan/usr-local none bind<input ... name="idpupil[]">foreach ($idpupil as $pupil) { mysqli_query($link, "INSERT INTO yoqlama(idpupil,date,come,idteacher) VALUES ('$pupil', '$date', '$come', '$idteacher')"); }$prepared = mysqli_stmt_init($link);
mysqli_stmt_prepare($prepared, "INSERT INTO yoqlama(idpupil,date,come,idteacher) VALUES (?, ?, ?, ?)");
$pupil = 0;
mysqli_stmt_bind_param($prepared, 'isii', $pupil, $date, $come, $idteacher);
// 'isii' , если date — строка, а ID и come — целые числа ( https://www.php.net/manual/ru/mysqli-stmt.bind-param.php )
foreach ($idpupil as $id) {
$pupil = $id;
mysqli_stmt_execute($prepared);
}
mysqli_stmt_close($prepared);$_POST и вставлять в запрос. Хотя для внутреннего сайта школы, наверно, сойдёт, вряд ли там будет много хакеров. self.client_address в обработчике запросов.RequestHandler.handle()https://docs.python.org/3.4/library/socketserver.h...
This function must do all the work required to service a request. The default implementation does nothing. Several instance attributes are available to it; the request is available as self.request; the client address as self.client_address; and the server instance as self.server, in case it needs access to per-server information.
./configure && make && make install, но звучит и здоровая критика этого метода, направленная на неудобство удаления (не все озабочиваются реализацией make uninstall) и путаницу с файлами при обновлении.checkinstall, или что-то более специфичное вроде debuild.make install превращает файлы из папки билда в обычные файлы, разбросанные по вашему диску. Частично, наверно, можно с этим бороться, указывая префикс пути для установки. winpty mysql -u root, как там советуют. function promptGrade() {
do {
var grade = prompt('Введите значение от 1 до 100:', '4');
if (grade === null) return null; // чтобы можно было отменить ввод
grade = Number(grade); // ←это и это↓ — проверка, что вводится число
} while (grade < 1 || grade > 100 || Number.isNaN(grade)); // ну и проверка на диапазон
return grade;
}npm i express cors body-parserserver.js следующего содержания:// импорты
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const path = require('path');
const fs = require('fs');
// пользовательские настройки:
// на каком порту слушать по умолчанию, можно заоверрайдить через переменную окружения PORT
const DEFAULT_PORT = 3001;
// полный путь файла, который перезаписываем (тут, относительно файла server.js)
const UPDATE_JSON_FILE = path.join(__dirname, 'rel/path/to/file.json');
// URL на сервере, в которую будем кидать POST-запрос
const UPDATE_JSON_ENDPOINT = '/api/update_json';
// конфигурирование обработчиков сервера и запуск на заданном порту
const server = express();
server.use(cors());
const rawParser = bodyParser.raw({type: '*/*'});
server.post(UPDATE_JSON_ENDPOINT, rawParser, (req, res) => {
const data = req.body instanceof Buffer ? req.body : Buffer.alloc(0);
fs.writeFile(UPDATE_JSON_FILE, data, (err) => {
if (!err) {
console.log(`Wrote ${Buffer.byteLength(data)} bytes`);
res.status(200).send('Success!');
} else {
console.log(err.toString());
res.status(500).send(err.toString());
}
});
});
server.get(UPDATE_JSON_ENDPOINT, (req, res) => { res.status(400).send('POST requests only!'); });
const port = process.env.PORT || DEFAULT_PORT;
console.log(`Listening on port ${port}`);
server.listen(port);node server.jsPORT=8080 node server.jsfetch('http://localhost:3001/api/update_json', {method: 'POST', body: JSON.stringify(data)})…/api/update_json, 500 при ошибке записи в файл, ну и 200 если всё прошло успешно.package.json прописать "proxy": "http://localhost:3001"'/api/update_json', т. е. относительный запрос, без хостнейма, а Реакт догадается, что запрос внешний относительно приложения, и пойдёт к нашему серверу.