У вас нет проблемы с «последними двумя».
Однако у вас есть проблема со всеми из них, но одна точка за другой.
. Ваши даты интерпретируются как ММ-ДД-ГГГГ. Эта интрепретация зависит от культуры вашей системы. Первые три превращаются в неправильные даты, но работают. 4-й перерыв и пятый никогда не выполняются (из-за ошибки до этого).
Таким образом, фактическая ошибка лежит в строке 4.
Всякий раз, когда вы занимаетесь датами, используйте независимые от культуры форматы , Лучше использовать любой из следующих вариантов:
20150730 (=> the 30th of July in 2015)
{d'2015-07-30'} or {t'23:30:59'} or {ts'2015-07-30 23:30:59'}
'2015-07-30T00:00:00'
. файлы httpasswd являются просто текстовыми файлами с определенным форматом в зависимости от указанной хеш-функции. Если Вы используете MD5, они похожи на это:
foo:$apr1$y1cXxW5l$3vapv2yyCXaYz8zGoXj241
Это - вход в систему, двоеточие, $apr1$, соль и 1000 раз md5 закодированный как base64. Если Вы выбираете SHA1, они похожи на это:
foo:{SHA}BW6v589SIg3i3zaEW47RcMZ+I+M=
Это - вход в систему, двоеточие, строка {SHA} и хеш SHA1, закодированный base64.
, Если Ваш язык имеет реализацию или MD5 или SHA1 и base64, можно просто создать файл как это:
<?php
$login = 'foo';
$pass = 'pass';
$hash = base64_encode(sha1($pass, true));
$contents = $login . ':{SHA}' . $hash;
file_put_contents('.htpasswd', $contents);
?>
Вот больше информации о формате:
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
Trac поставлется с заменой Python для htpasswd, который я уверен, что Вы могли портировать на свой предпочтительный язык: htpasswd.py.
Из того, что это говорит относительно веб-сайта PHP, можно использовать склеп () в следующем методе:
<?php
// Set the password & username
$username = 'user';
$password = 'mypassword';
// Get the hash, letting the salt be automatically generated
$hash = crypt($password);
// write to a file
file_set_contents('.htpasswd', $username ':' . $contents);
?>
Часть этого примера может быть найдена: http://ca3.php.net/crypt
Это, конечно, перезапишет весь существующий файл, таким образом, Вы захотите сделать некоторую конкатенацию.
я не на 100% уверен, что это будет работать, но я вполне уверен.