declare(strict_types=1);
public function __get(string $var) : ?string {
if (property_exists($this, $var)) {
return $this->$var;
}
throw new Exception('property doesn’t exist');
}
public function __set(string $var, string $value) {
if (property_exists($this, $var)) {
$this->$var = $value;
return;
}
throw new Exception('property ' . $var . ' doesn’t exist');
}
display_errors = On
error_reporting = E_ALL | E_STRICT
error_reporting(E_ALL | E_STRICT);
error_reporting(-1);
ini_set('error_reporting', E_ALL | E_STRICT);
php_flag display_startup_errors on
php_flag display_errors on
date_default_timezone_set("Europe/Moscow");
$now=date("D");
$days=array(
"Sun"=>array("Воскресенье"),
"Mon"=>array("Понедельник"),
"Tue"=>array("Вторник"),
"Wed"=>array("Среда"),
"Thu"=>array("Четверг"),
"Fri"=>array("Пятница"),
"Sat"=>array("Суббота")
);
echo $days[$now][0];
$r = bin2hex(random_bytes(16));
$t =time();
$token='client token';
$params=array(
'value1'=>1,
'value2'=>'test'
);
$data=http_build_query($params);
$hash=hash('sha256',$r.$t.$token.$data);
set_time_limit(0);
$arr = array(1,2,3,4,5);
foreach ($arr as $elem) {
ob_start();
echo $elem."<br>";
ob_end_flush();
ob_flush();
flush();
sleep(5);
}
но с каждым месяцем вижу как JavaScript, Python набирают +50-100 новых вакансий (говорю про Москву и Санкт-Петербург), а PHP на ~10% за год уменьшилось.PHP имеет более простой "вход" в язык, поэтому освоение - происходит гораздо быстрее.
не смог менять их значение
Можно сделать отправку формы на js, но не хочу, поскольку javascript можно остановить и изменить значениядля этого существует подпись, которую Вы кладёте в поле hidden при формировании страницы.
Выполнить задачу надо без лишних post и get запросов. В идеале "встроить в страницу".1. Или AJAX/fetch() с POST/GET-запросом,
Как и где мне хранить дефолтовую "соль" так, чтобы её не так просто было стащить вместе с базой данных?Ответ прост: хранить базу пользователей отдельно от основной базы данных (на другом сервере) и взаимодействовать с ним по API и там уже хешировать как хотите, т.к. база с пользователями/паролями уже будет недоступна из-вне.