Como usar shell_exec com variável dentro? [RESOLVIDO]

1. Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 07/02/2017 - 11:02h

Bom dia,

Como faço para utilizar uma variável dentro do shell_exec?

Quero alterar o ip da minha máquina via php, mas quando uso o comando shell_exec() ou o system(), o ip não é alterado.

Exemplo que não está funcionando:

<?php
$IP = $_POST['nome'];
echo "seu ip escolhido foi $IP";
shell_exec('ifconfig wlan0 $IP netmask 255.255.255.0 up');
?>



  


2. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/02/2017 - 11:18h

Coloque aspas duplas dentro do shell_exec (" "), para interpretar variáveis.
--
Linux Counter: #596371


3. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 07/02/2017 - 11:30h

Ou o que o ru4n disse, de colocar aspas duplas pra interpretar variável, ou concatenar, seja fora ou dentro do comando.


4. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 07/02/2017 - 12:30h

Tentei fazer desse jeito e não funcionou:

<?php
$IP = $_POST['nome'];
echo "seu ip escolhido foi $IP";
shell_exec('ifconfig wlan0 "$IP" netmask 255.255.255.0 up');
?>

Creio que o problema seja com algum bloqueio que o próprio php tem por segurança.

OBS: Estou usando uma página html que captura o ip e quando executo a página seguinte mostra exatamente o echo com o ip que escolhi, porém não altera o ip.



5. Re: Como usar shell_exec com variável dentro?

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/02/2017 - 12:37h

^vc nem trocou as aspas, como indicado no segundo post. Com aspas simples não vai pegar o valor da variável..
shell_exec("comando $variavel_php");
// Com concatenação
shell_exec("comando " . $variavel_php . " parâmetros");

--
Linux Counter: #596371


6. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 07/02/2017 - 14:24h

Não entendi muito bem como fazer, a variável entra no final do comando? Não tenho muito conhecimento em php, estou iniciando agora, desculpe qualquer tipo de ignorância.

Fiz desse jeito e mesmo assim não funcionou. O que seria essa concatenação?

<?php
$IP = $_POST['nome'];
echo "$IP";
shell_exec("ifconfig wlan0 $IP netmask 255.255.255.0 up");
?>





7. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/02/2017 - 14:45h

rmenchio escreveu:

Não entendi muito bem como fazer, a variável entra no final do comando? Não tenho muito conhecimento em php, estou iniciando agora, desculpe qualquer tipo de ignorância.

Fiz desse jeito e mesmo assim não funcionou. O que seria essa concatenação?

<?php
$IP = $_POST['nome'];
echo "$IP";
shell_exec("ifconfig wlan0 $IP netmask 255.255.255.0 up");
?>




Ok.
Qual a saída do script php abaixo?
<?php
echo shell_exec('echo ' . $_POST['nome']);


* Concatenar em linguagens de programação, é juntar duas ou mais strings.

--
Linux Counter: #596371


8. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 07/02/2017 - 15:12h

Essa:
PHP Notice: Undefined index: nome in /var/www/html/ip1.php on line 2


Quando eu testo esse script na mão (php ip.php), ele funciona:

<?php
$IP = $_POST['nome'];
echo "$IP";
shell_exec('ifconfig wlan0 192.168.1.167 netmask 255.255.255.0 up');
?>


Mas quando incluo a variável ele não consegue alterar o ip.

<?php
$IP = $_POST['nome'];
echo "$IP";
shell_exec("ifconfig wlan0 $IP netmask 255.255.255.0 up");
?>






9. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/02/2017 - 15:26h

Não ta vindo nenhum dado no método post, qual arquivo html esta esse campo "nome"?
--
Linux Counter: #596371


10. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 07/02/2017 - 15:31h

No arquivo index.html:

<html>
<head>
<title>Recebendo dados do Formulário</title>
</head>
<body>
<form method="post" action="ip.php">
Digite o ip que voce deseja:<br />
<input type="text" name="nome" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>





11. Re: Como usar shell_exec com variável dentro?

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/02/2017 - 16:40h

Aparentemente esta tudo certo, campo nome definido e o method é post. E só por via das duvidas, testei aqui.

* Rodar pela linha de comando não vai pegar o conteúdo da variável $_POST, teste com o formulário preenchido e faça o submit..
--
Linux Counter: #596371


12. Re: Como usar shell_exec com variável dentro? [RESOLVIDO]

Rodrigo
rmenchio

(usa CentOS)

Enviado em 08/02/2017 - 09:58h

É exatamente deste jeito que estou testando, abre uma página com o ip mas não altera o ip.
Talvez uma solução seja usar um shellscript, passando a variável do php pra ele.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts