所以结构看起来像这样。我要求输入密码,如果输入(并发送),我将包含一个名为ftp_include.php的文件,其中列出了我的所有文件。到目前为止工作正常。
我唯一的问题是我使用Ajax(jQuery)重新加载/刷新这个包含。但只有包括。每次我刷新这个包括必须再次连接到服务器(在开头输入密码)。
有些人已经在这里告诉我,我需要在PHP中使用SESSIONS,它存储我的密码,并且在我的包内我再次检索它。
不知怎的,我无法弄清楚为什么我的SESSION cookie不会工作。 我想这是用这个妥善存储的:
在session_start();
session_start();
if(!isset($_SESSION['ftp-password']) ) {
$_SESSION['ftp-password'] = $_POST['password'];
}
var_dump(ini_get_all('session')); //shows both times
//this result:http://cl.ly/1hzA ->
//so it seems it doesn't get stored properly, does it?
我想是的,因为我正在使用以下行检索包含内的密码:
if(isset($_SESSION['ftp-password']) ) {
$ftp_user_pass = $_SESSION['ftp-password'];
echo "Password: " . $ftp_user_pass;
} else {
print "can't find cookie!";
}
它甚至第一次连接到服务器。然而,只要我用Ajax somehoe刷新包含它总是说“找不到cookie”。知道为什么会这样。 我甚至尝试使用set_cookie()但结果相同。
感谢您的提示
答案 0 :(得分:0)
看起来WP会对会话做出奇怪的事情。喜欢它取消它们和/或覆盖它们。这是page,其中有一些讨论,例如在 session_start()
之前放置get_header()
(这可能导致您的标头已发送错误)。
为什么不将密码存储在php中的变量中并将其传递给jquery? E.g:
<?php
$ftp_pass = $_GET['ftp_pass'];//or however you get the password
?>
<script>
window.setInterval('yourfunction()', 1000);
function yourfunction() {
alert('<?=$ftp_pass?>');//replace with your jQuery refresh code
}
</script>