我编写了一个AJAX脚本,需要将一些变量发送到PHP脚本,然后报告一个小脚本来连接服务器。但是我似乎可以使用我从AJAX脚本传递的商店变量
<script>
function executeSsh() {
var username = "<?php echo $connect_d["username"] ?>";
var password = "<?php echo $connect_d["password"] ?>";
var ip = "<?php echo $connect_d["dedicatedip"] ?>";
$.ajax({
url: "functions.php",
dataType: 'text',
type: "post",
data: { username: username, password: password, ip: ip },
success: function(data) {
$('#sshcall').html( data );
},
error: function(jqXhr, textStatus, errorThrown) {
alert("Request failed: " + textStatus);
}
});
$('.blinstbtn').fadeToggle(1000);
}
</script>
所以现在你可以看到三个变量按原样传递给PHP,并按原样存储在单独的变量中。但是在这一点上我不能再使用它们了,我收到连接错误。
<?php
include('Net/SSH2.php');
$username = $_POST['username'];
$password = $_POST['password'];
$ip = $_POST['ip'];
echo $username. "<br><br>". $password;
$ssh = new Net_SSH2($ip);
if (!$ssh->login($username, $password)) {
exit('Login Failed');
}
$ssh->read('/.*@.*[$|#]/', NET_SSH2_READ_REGEX);
$ssh->write("uptime\n");
$ssh->setTimeout(10);
$output = $ssh->read('/.*@.*[$|#]|.*[P|p]assword.*/', NET_SSH2_READ_REGEX);
echo "<pre>". $output . "</pre>";
?>
所以,当我回显每个变量时,它应该是正确的值,但是当我尝试使用然后进一步向下脚本时,我不断收到登录不起作用的消息。我知道连接到服务器的脚本正在工作,因为我只用原始信息测试它。
知道我在这里缺少什么以及如何解决它。是否还有一种方法可以加密由AJAX发送的数据字符串,所以现在可以用Firebug之类的东西来获取值?
感谢您的帮助。
答案 0 :(得分:-1)
我只是想通了。我需要在$ post前面使用trim(http://php.net/manual/en/function.trim.php)来完成这项工作。使用post时可能会添加空格。不确定这是怎么可能的。但这对我有用。
感谢所有输入。如果有人想告诉我为什么在使用帖子时会添加空格,那就太棒了。
由于