Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 03:00   #1
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию Функция system

Читаю по книге, там такой пример.

Документ index.php
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
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 файла через пробел, разве так можно,а дальше параметр что означает?
kilogram вне форума Ответить с цитированием
Старый 22.03.2012, 03:38   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вызов функции LockWorkStation из библиотеки user32.dll, которая блокирует компьютер (экран выбора пользователя)
http://rusapi.narod.ru/LockWorkStation.htm

Советую Вам выкинуть данную книгу, предварительно предав автора анафеме. Причины:
1) В *nix системах работать не будет. А раз уж Вы взялись учить PHP, то будьте готовы, что ориентироваться придётся на *nix
2) Подозреваю, что и в Винде работать не будет (из-за настроек безопасности). Если будет - считайте, что в книге Вам порекомендовали как делать дыры для облегчения взлома своей системы.
3) Ну и самое главное - да нахрена вообще он это написал?!
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 22.03.2012, 03:43   #3
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

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

PHP код:
<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:51   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
</form> <? } else
скобку забыли поставить. И ещё раз - лучше выкиньте system сразу и забудьте про эту ересь
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 22.03.2012, 03:53   #5
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

По сути смысл программы, чтоб если пользователь правильно ввел свой логин и пароль, при нажатии на кнопку он вышел из своей системы Windows?
kilogram вне форума Ответить с цитированием
Старый 22.03.2012, 03:59   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Фактически да. Хотя это находится в логическом противоречии с выводом скрипта
Код:
echo 'Доступ открыт для пользователя '.$_REQUEST['login'];
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 22.03.2012, 04:04   #7
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Зачем здесь нужно получать имя сервера в этой строке?
PHP код:
 <form action="<?=$_SERVER['SCRIPT_NAME']?>" />
kilogram вне форума Ответить с цитированием
Старый 22.03.2012, 04:07   #8
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Unresolved external 'AVIA::AVIA(int, System::AnsiString, System::AnsiString, System::AnsiString, int) mexmexmex C++ Builder 3 27.12.2011 13:31
System of a down crazy horse Свободное общение 11 17.03.2011 00:39
System.Net и System.Net.Sockets Adwenturer Общие вопросы .NET 4 08.02.2010 22:08
system lennon Безопасность, Шифрование 1 31.10.2009 18:31
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50