Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Функция system (https://javascript.ru/forum/server/26783-funkciya-system.html)

kilogram 22.03.2012 02:58

Функция system
 
Читаю по книге, там такой пример.

Документ index.php
<html><body>
<form action="form.php">
Логин: <input type="text" name="login" value="" /><br />
Пароль:<input type="password" name="password" value="" /><br />
<input type="submit" value="Нажмите кнопку чтобы запустить сценарий!" />
</form>
</body></html>


Документ form.php
<html><body>
<?php
if($_REQUEST['login']=="root" && $_REQUEST['password']==12345){
echo 'Доступ открыт для пользователя '.$_REQUEST['login'];
system("rundll.exe user32.dll,LockWorkStation");
} else{
	echo 'Доступ закрыт!';
}
?>
</body></html>


Расшифруйте пожалуйста вот эту строку:
Код:

system("rundll.exe user32.dll,LockWorkStation");
Там вижу указаны 2 файла через пробел, разве так можно,а дальше параметр что означает?

Gvozd 22.03.2012 03:13

rundll.exe - это собственно запускаемая программа.
Все что идет дальше - это параметры командной строки для ее запуска.
Некоторые программы умеют обрабатывать эти параметры, но то как она обработает -зависит от конкретной программы.

Например такой код запустит блокнот(notepad), и откроет в нем файл D:\Doc\desktop\1.txt(параметр командной строки)
Код:

notepad D:\Doc\desktop\1.txt
какие параметры принимает rundll.exe предлагаю вам разузнать самостоятельно через гугл

kilogram 22.03.2012 03:42

Попробовал модифицировать код, там пишут что можно все это оформить в одном файле, чего-то не работает.

<html><body>
<?php
if(!isset($_REQUEST['doGo'])) {?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" />
Имя:     <input type="text" name="login" value="" /> <br />
Пароль:  <input type="password" name="password" value="" /><br />
<input type="submit" name="doGo" value="Нажмите кнопку!" />
</form> <? else
if($_REQUEST['login']=="root" && $_REQUEST['password']==12345){
echo 'Доступ открыт для пользователя '.$_REQUEST['login'];
system("rundll32.exe user32.dll,LockWorkStation");
} else{
	echo 'Доступ закрыт!';
}
?>
</body></html>

kilogram 22.03.2012 03:54

По сути смысл программы, чтоб если пользователь правильно ввел свой логин и пароль, при нажатии на кнопку он вышел из своей системы Windows?

kilogram 22.03.2012 04:03

Зачем здесь нужно получать имя сервера в этой строке?
<form action="<?=$_SERVER['SCRIPT_NAME']?>" />

kilogram 22.03.2012 04:07

Перепутал с SERVER_NAME эта строка означает что скрипт обрабатывает сам себя, чтоб второго файла не создавать?

T-sh 22.03.2012 09:36

интересно, а зачем сразу на двух форумах дублировать ветку, да ещё и все посты свои? :)


Часовой пояс GMT +3, время: 12:55.