2014-05-06 2 views
1

Проблема: печенье хорошо в локальном хосте, но не в сервере, можно получить, но значение, как представляется, случайные буквыWeird печенья поведения локального хост на сервер - JQuery-печенье

Я хранящие имя файла изображения, как печенье как этот

//storing image filepath as cookies 
if (isset($_COOKIE['imgName'])) { 
    setcookie("imgName", "", time()-3600); 
} 
$expire=time()+60*60*24*30; 
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; 
$cookie = $_FILES["file"]["name"]; 
setcookie("imgName", $cookie, $expire,'/',$domain,false); 

и в локальном хосте куки устанавливается в порядке, как, например: hp_1.jpg. но когда я загружаю его на сервер, cookie устанавливается как полные «случайные» буквы, например: jhSerZR6i1T952C3bk7vEOGCj8Pz_tBYtuHcgrgj81A Я что-то упустил?

Редактировать: я удалил/domain и т. Д. Из файла cookie и установил его в простейшую форму setcookie('imgName',$photoName,time()+3600);, и я все равно получаю одинаковые случайные буквы. есть ли что-нибудь, что может зашифровать файл cookie на реальном сервере, но не беспокоить на localhost ??

Последнее редактирование: после многих испытаний я заметил, это или что-то (шифрование кажется неправильным, потому что его всегда одна и та же строка для определенной строки, например: aaa всегда будет генерировать qwe (или что-то еще)), я исправил это, полностью удалив куки и используя php echo, чтобы получить значение, которое я хочу. = [

ответ

0

Я не могу понять смысл этой линии

$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;

Вы можете непосредственно сделать это:

setcookie('imgName', $_FILES['file']['name'], time()+3600, '/', $_SERVER['HTTP_HOST'], false);

(Я попробовал ваш код в Интернете, то есть возвращая NULL, пока это возвращает правильное имя печенья)

EDIT (например):

PHP КОД:

if(isset($_POST['submit'])) 
{ 
$cookie = $_FILES['img']['name']; 
setcookie('myCookie',$cookie,time()+3600,'/'); 
foreach ($_COOKIE as $key=>$val) 
{ 
echo $key.' is '.$val."<br>\n"; 
} 
} 

HTML КОД:

<form action="#" method="post" enctype="multipart/form-data"> 
<input type='file' name="img"> 
<input type='submit' name="submit" value="GO"> 
</form> 
+0

мой код РАБОТАЛ в автономном режиме на локальном хосте, ваш не работает на локальный или на сервере – Alexandros

+0

я дон Не знаю, что происходит с вашим кодом, но я уверен, что это проблема «домена». Можете ли вы попробовать без параметра домена? например, 'setcookie ('imgName', $ _ FILES ['file'] ['name'], time() + 3600, '/');' , потому что он автоматически установит cookie в вашем родительском домене. Проверьте и опубликуйте результат. – Prateek

+0

все еще одни и те же случайные буквы :(, мне пришло в голову, что-то зашифровать его, когда он на живом сервере, а не на localhost? – Alexandros

Смежные вопросы