2010-07-19 2 views
1

У меня проблема. Я работаю над шаблоном Wordpress, в котором перечислены все файлы на моем ftp. Поэтому я прошу пароль и передаю его прямо к ftp_connect.Ajax & PHP - не удается найти файл cookie сеанса?

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

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

Несколько парней уже сказали мне, что мне нужно работать с SESSIONS на 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!"; 
} 

и даже подключится к серверу в первый раз. Однако, как только я обновляю include с Ajax somehoe, он всегда говорит «не может найти cookie». Любая идея, почему это происходит. Я даже пытался с set_cookie(), но тот же результат.

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

+0

Не могли бы вы включить вывод, если 'var_dump (ini_get_all ('session'));'? – Wrikken

+0

, если реализовать свою линию в моем включении, я получаю это для первого входа в систему: http://cl.ly/1i6X, который ясно показывает, что пароль хранится. как только я обновляю include с помощью ajax, я получаю это: http://cl.ly/1iAc странно! – matt

+0

если я var_dump все сеансы внутри моего шаблона (не включая), я получаю оба раза один и тот же результат без сеанса пароля! Я редактировал свой пост. – matt

ответ

0

Похоже WP делает странные вещи с сессиями. Как будто он отключает их и/или перезаписывает их. Вот page с некоторым обсуждением на нем, например, положить 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> 
Смежные вопросы