note 100575 rejected from function.ssh2-exec by danbrown

From: Date: Mon, 25 Oct 2010 00:09:22 +0000
Subject: note 100575 rejected from function.ssh2-exec by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-173420@lists.php.net to get a copy of this message
Note Submitter: pablo at lanzate dot com ---- Hi, i'm using this code for connect to other machine and execute a command with a button. Ok, when i press the button "Conectar" the ssh connection has entablished with out problems, but when i press the button "Comando", i get the next error: "Warning: ssh2_exec() expects parameter 1 to be resource, null given in /var/www/index.php on line 69 Fallo: No se puede ejecutar el comando." <html><head> <h1>Entorno de pruebas para SSH via PHP</h1> <p>Esta aplicacion es para la implementacion de futuros usos para las Remotas.</p> </head> <body> <FORM NAME = "FormularioIP" METHOD = "POST" ACTION = "index.php"> Introduzce una IP para conectar:<INPUT TYPE= "text" VALUE= "" NAME="servidor"></INPUT> <INPUT TYPE= "submit" NAME= "Conectar" VALUE= "Conectar"></INPUT> </FORM> <?php //if ($_SERVER['REQUEST_METHOD'] == 'POST'){ if (isset($_POST['Conectar'])) { $direccion = $_POST["servidor"]; conectarse($direccion); } function conectarse($server) { if ($server == '') { echo "<br>La direccion IP no puede estar vacia"; } else { // Aqui se empieza todo el proceso de conexion por SSH echo "<br>Conectando con el servidor: ", $server; echo "<br>-------------------------------<br>"; echo "Comprobando si esta instalada la funcion necesaria:<br>"; if (!function_exists("ssh2_connect")) die("La función ssh2_connect no esta instalada"); echo "Esta instalada, continuamos para bingo, <br>"; echo "-----------------------------------------<br>"; echo "Nos intentamos conectar: <br>"; // Nos conectamos a la direccion espeficada a mano mas abajo y comprobamos si hay fallo if(!($con = ssh2_connect($server, 22))){ echo "Fallo, no llego al servidor. <br>"; } else { // Se intenta la conexion con usuario y contraseña if(!ssh2_auth_password($con, "asda", "asdd")) { echo "Fallo, no me he podido conectar, revisa el nombre de usuario o la contraseña. <br>"; } else { // Hasta la cocina echo "Vale, me he conectado, <br>"; echo "------------------------------ <br>"; } } } } if (isset($_POST['Comando'])) { echo "<br>Enviando el comando \"ls -ns\" al sistema al que estamos conectado <br>"; // Lanzamos el comando y a la vez comprobamos si ha fallado if (!($stream = ssh2_exec($con, "ls -ns"))) { echo "Fallo: No se puede ejecutar el comando."; } else { //Recojemos la salida del comando stream_set_blocking($stream, true); $data = ""; while ($buf = fread($stream,4096)) { $data .= $buf; } echo $data; fclose($stream); } } ?> <FORM NAME = "FormularioConectar" METHOD = "POST" ACTION = "index.php"> Presionamos para mandar un "ls -ns": <INPUT TYPE= "submit" NAME= "Comando" VALUE = "Comando"></INPUT> </FORM> </body></html>

« previous php.notes (#173420) next »