Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como insertar variable dentro de un comando

Estas en el tema de Como insertar variable dentro de un comando en el foro de PHP en Foros del Web. Hola amigos, Estoy seguro que esto es una pregunta fácil para mucho de vosotros, pero yo que estoy aprendiendo me he trabado en este problema, ...
  #1 (permalink)  
Antiguo 21/05/2013, 17:35
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Como insertar variable dentro de un comando

Hola amigos,


Estoy seguro que esto es una pregunta fácil para mucho de vosotros, pero yo que estoy aprendiendo me he trabado en este problema, seguro de facil solución.


Intento insertar una variable dentro de esto :

$comando= "cd /home/root/carpeta; mkdir test";


Para que ejecute esto :

echo $ssh->exec($comando);


(hasta aquí funciona perfecto)




Me gustaría añadir OTRA variable dentro de la primera, algo como lo siguiente, pero no se cómo hacerlo, y por más que busco no encuentro:

$comando= "cd /home/$USER/carpeta; mkdir test";


Donde $user hace una consulta a una tabla sql.




Estoy seguro que es sencillo, pero a veces uno se traba en lo más tonto.




Muchas gracias a todos :)
  #2 (permalink)  
Antiguo 21/05/2013, 18:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como insertar variable dentro de un comando

Puede que sea sencillo, pero si pretendes que adivinemos el código real que no te funciona estás equivocado, por más tonto que un problema sea no tenemos facultades de adivinación ni clarividencia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/05/2013, 18:26
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Como insertar variable dentro de un comando

Me funciona todo el código.


Lo que quiero hacer es añadir una variable dentro de :

$comando= "cd /home/root/carpeta; mkdir test";


Donde root fuera el valor de $username


Para luego ejecutar esto :

echo $ssh->exec($comando);



------------

Repito, el código me funciona perfectamente tal y como esta, lo que me gustaría hacer es añadir una variable a $comando para que luego sea interpretada dentro de echo $ssh->exec($comando); pero no se cómo.



Muchas gracias por la respuesta!
  #4 (permalink)  
Antiguo 21/05/2013, 18:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como insertar variable dentro de un comando

Vale, ¿y de verdad no sabes ni lo básico de variables en php?

Es curioso que no te sirva algo así.
Código PHP:
Ver original
  1. $foo = 'bar';
  2. $candy = "the $foo";
  3.  
  4. echo $candy; // the bar

Lo siento, pero para eso no necesitas abrir ningún tema en ningún foro, necesitas leer un manual básico.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/05/2013, 18:42
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Como insertar variable dentro de un comando

Este es el comando funcionando:

Código PHP:
<?php

set_include_path
(get_include_path() . PATH_SEPARATOR 'phpseclib');
 
include(
'Net/SSH2.php');
include(
'conexion.php');
include(
'comprobar.php');


$comando"cd /home/root/carpeta; mkdir test";

$consulta mysql_query("SELECT * FROM usuarios WHERE idusuario='$userid' " );

  while (
$row mysql_fetch_array($consulta)) {
$username=$row['vpsuser'];
$host $row['vpsip'];
$password $row['vpspass'];
}



$ssh = new Net_SSH2($host); 
if (!
$ssh->login($username$password)) { 
    exit(
'Login Failed');
}


echo 
$ssh->exec($comando);

mysql_close($con);

?>

Si vengo aquí es porque ningún manual ha conseguido resolverme la duda. No pretendo molestar ni fastidiar, si no aprender.



He intentado poner tu util ejemplo en práctica, pero o no se, o no funciona.


El problema es que $username llama a otra variable y me estoy perdiendo.

Esto es lo que pruebo y no funciona:
Código PHP:
<?php

set_include_path
(get_include_path() . PATH_SEPARATOR 'phpseclib');
 
include(
'Net/SSH2.php');
include(
'conexion.php');
include(
'comprobar.php');


$comando"cd /home/$username/carpeta; mkdir test";

$consulta mysql_query("SELECT * FROM usuarios WHERE idusuario='$userid' " );

  while (
$row mysql_fetch_array($consulta)) {
$username='$row['vpsuser']';
$host $row['vpsip'];
$password $row['vpspass'];
}







$ssh = new Net_SSH2($host); 
if (!
$ssh->login($username$password)) { 
    exit(
'Login Failed');
}


echo 
$ssh->exec("echo $comando");

mysql_close($con);

?>

Puede que sea un estúpido error de sintáxis, o puede que yo sea tonto, pero no logro que funcione.


Pido disculpas a aquel que se sienta ofendido por mi pregunta...
  #6 (permalink)  
Antiguo 21/05/2013, 19:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como insertar variable dentro de un comando

De hecho tu problema es de flujo, la variable $username la declaras después de la linea donde la utilizas.

Por orden universal y lógica, sentido común, o como prefieras, debes declarar primero las variables que usarás después.

Sólo eso.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/05/2013, 19:21
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Como insertar variable dentro de un comando

Lo dicho... lo más obvio y ha hecho que esté hasta las 3:30 am española buscando la solución..


Muchas gracias por la ayuda ofrecida, es una lección que nunca olvidaré.


El codigo resultante , y por tanto funcional y correcto es :

Código PHP:
<?php

set_include_path
(get_include_path() . PATH_SEPARATOR 'phpseclib');
 
include(
'Net/SSH2.php');
include(
'conexion.php');
include(
'comprobar.php');


$consulta mysql_query("SELECT * FROM usuarios WHERE idusuario='$userid' " );

  while (
$row mysql_fetch_array($consulta)) {
$username$row['vpsuser'];
$host $row['vpsip'];
$password $row['vpspass'];
}


$comando"cd /home/$username/carpeta; mkdir test";








$ssh = new Net_SSH2($host); 
if (!
$ssh->login($username$password)) { 
    exit(
'Login Failed');
}


echo 
$ssh->exec($comando);

mysql_close($con);

?>

Etiquetas: comando, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.