2015-06-25 3 views
1

Я полный новичок в PHP. Я пытаюсь создать HTML/PHP Script, который будет использовать пользовательский ввод из формы HTML, и использовать php shell_exec для поиска файлов с этим вводом с помощью команды «find/var/www -Name».Использование HTML с PHP и оболочкой exec для поиска файлов

Я знаю, как ро запустить простой скрипт с PHP, но я понятия не имею, как это сделать с помощью пользовательского ввода ... Например: «

<?php 
    if (isset($_POST['button'])) 
    { 
     exec('test.sh'); 
    } 
?> 
<html> 
<body> 
    <form method="post"> 
    <p> 
     <button name="button">Run Script</button> 
    </p> 
    </form> 
</body> 

»

Это как далеко У меня есть. Я решил сделать два к файлам, один HTML, второй один РНР скрипт:

search.html

<html> 
<body> 
<form action="search.php" method="post"> 
keyword: <input type="text" name="keyword"><br> 
<input type="submit"> 
</form> 
</body> 
</html> 

PHP скрипт: search.php

<html> 
<body> 

<?php shell_exec('find /var/www -Name "keyword"') $_POST["keyword"]; ?> 
</body> 
</html> 

ответ

2

Это должно сделать трюк:

<?php 
$keywords=$_POST["keyword"]; 
$result=shell_exec('find /var/www -Name "'.$keywords.'"'); 
echo '<pre>'.$result.'</pre>'; 
?> 

BEWARE: Плохая идея использовать такую ​​команду, потому что вы используете пользовательский ввод напрямую, пользователь может запускать любую команду на сервере.

Например, если пользователь вводит "; rm -rf /var/www;echo " в качестве поиска, он удалит весь контент вашей папки /var/www. Вам лучше реализовать функцию php, которая будет делать то же самое, что и ваша команда find.

Однако ВСЕГДА делать дезинфицировать любой вход пользователя, все, что исходит от внешнего мира зла ..

+0

Спасибо, очень помогло. – and93hil

+0

добро пожаловать;) – n00dl3

0

Понял:

<?php 
$keyword=$_POST["keyword"]; 
$result=shell_exec(' find /var/www -name '.$keyword.''); 
if (!isset($_POST['submit'])) { // if page is not submitted to itself echo the form 
?> 
<html> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> 
</head> 
<body> 

<div class="container"> 

<div class="jumbotron"> 
    <h1>Search</h1> 

</div> 

<div class="row"> 

<div class="col-md-4"> 
    <title>Search</title> 
</head> 

<body> 
<form method="post" action="<?php echo $PHP_SELF;?>"> 
Suchen:<input type="text" size="12" maxlength="500" name="keyword"><br /> 
<input type="submit" value="submit" name="submit"> 
</form> 
<? 
} else { 
echo " ".$result."<br />";