2013-07-17 3 views
0

Итак, у меня есть файл proxy.php с этим содержимым, и я хочу сделать это, если какая-либо из форм заполняется значением и отправлена, проверка «если» должен стать истинным и запустить команды, но у меня есть проблема, и хотя я передаю значение, оно не входит в проверку «если». Если я выложу команды из проверки «если», они начинают работать, но не внутри них.HTML-форму отправить на PHP

<html> 
<body> 

<br> 
<form action="proxy.php" method="post"> 


<br> 

Host Port 1: <input type="text" name="hport" /> 
Server Port 1: <input type="text" name="sport"/> 
<br> 
Host Port 2: <input type="text" name="hport2"/> 
Server Port 2: <input type="text" name="sport2"/> 

<br> 


<input type="submit" /> 
</form> 

</body> 
</html> 

<?php 
include('Net/SSH2.php'); 



$_POST["ip"]="iphere"; 
$_POST["pass"]="passhere"; 



$ssh = new Net_SSH2($_POST["ip"]); 
if (!$ssh->login('root', $_POST["pass"])) { 
    exit('Login Failed'); 
} 


if($_POST['hport1']){ 

echo $ssh->exec('ls'); 
echo $ssh->exec('screen -S Proxy1 -X quit'); 
echo $ssh->exec('Run these commands'); 
} 

if($_POST['hport2']){ 

echo $ssh->exec('ls'); 
echo $ssh->exec('screen -S Proxy2 -X quit'); 
echo $ssh->exec('Run these commands'); 
} 


echo $ssh->exec('exit'); 


?> 
+0

Это может быть не вся проблема, но вход вашей формы является 'hport'; ваш код ищет 'hport1'. – andrewsi

+0

и каково значение $ _POST ['hport'] при отправке формы? – Axarydax

+0

Я не делал PHP через некоторое время, но разве нет функции isset, которую вы можете использовать? –

ответ

0

значение $ _POST [ «hport1»] равно нулю, потому что вы публикуете «hport» из HTML. Попробуйте с этим изменением.

if($_POST['hport']){ 
     echo $ssh->exec('ls'); 
     echo $ssh->exec('screen -S Proxy1 -X quit'); 
     echo $ssh->exec('Run these commands'); 
} 

Если проблема не устранена, используйте Исеть ($ _ POST [ «hport»]), чтобы проверить, является ли значение для «hport» переменной устанавливается или нет. Вы можете проверить значение POST ручной ее закрытие, используйте

<?php var_dump($_POST); ?> 

ИЛИ

<?php 
    echo '<pre>' . print_r($_POST) . '</pre>'; 
?> 

для отображения значений массива $ _POST в читаемом формате. Надеюсь, что это поможет вам.

+0

Спасибо. Да, это была проблема. Это была просто опечатка и работала после того, как я ее исправил. Нам не нужна функция isset –

1

можно попробовать и использовать isset для проверки деталей.

if(isset($_POST['Name of field to check for'])){ 
////CODE HERE 
} 

Альтернативой может быть, чтобы проверить, если форма была отправлена, а затем сделать что-то

if(empty($_POST) === false){ 
///CODE HERE 
} 
0

Использование Исеть() & пустой() встроенные функции PHP для проверки переменных ..

if(isset($_POST['hport'] && !empty($_POST['hport'])){ 
echo $ssh->exec('ls'); 
echo $ssh->exec('screen -S Proxy1 -X quit'); 
echo $ssh->exec('Run these commands'); 
} 

if(isset($_POST['hport2'] && !empty($_POST['hport2'])){ 
echo $ssh->exec('ls'); 
echo $ssh->exec('screen -S Proxy2 -X quit'); 
echo $ssh->exec('Run these commands'); 
} 
Смежные вопросы