Ajax & PHP - не можете найти сессионный cookie? - PullRequest
1 голос
/ 20 июля 2010

У меня небольшая проблема.Я работаю над шаблоном WordPress, который перечисляет все файлы на моем FTP.Поэтому я спрашиваю пароль и передаю его прямо на ftp_connect.

Итак, структура выглядит следующим образом.Я спрашиваю пароль, и если он введен (и отправлен), я включу файл с именем ftp_include.php, в котором перечислены все мои файлы.Пока все работает нормально.

Единственная проблема, с которой я столкнулся, это то, что я перезагружаю / обновляю этот вход с помощью Ajax (jQuery).Однако только включить.И каждый раз, когда я обновляю это сообщение, оно должно снова подключаться к серверу (с паролем, введенным в начале).

Несколько парней уже сказали мне, что мне нужно работать с СЕССИЯМИ в PHP, которые хранят мой парольи внутри моего я снова получаю его.

Почему-то я не могу понять, почему мой файл cookie SESSION не работает.Я думаю, что он правильно хранится с этим:

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, оно всегда говорит: «Не могу найти cookie».Любая идея, почему это происходит.Я даже пытался с set_cookie (), но тот же результат.

спасибо за ваши советы

1 Ответ

0 голосов
/ 20 июля 2010

Похоже, WP делает странные вещи с сессиями. Как будто это сбрасывает их и / или перезаписывает их. Вот страница с некоторыми обсуждениями, такими как session_start() перед get_header() (что, вероятно, приводило к тому, что заголовки уже отправили ошибку).

Почему бы вам просто не сохранить пароль в переменной в php и не передать его в jquery? Например:

<?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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...