Создайте временную сессию загрузки в вашем скрипте (не проверено, но вы получаете возможность иметь несколько разных сессий):
<?php
//normal session
session_start();
//store sessionid for retrieval
$oldsessionid = session_id();
if($_SESSION['logged_in']){ //or however you check for a valid user
//stop old/normal session
session_write_close();
//create a new sessionname
$oldname = session_name('UPLOADSESSION');
//create a new id (fixed here, you might want a random number/char combo:
session_id('myuploadsessionid');
//start the session
session_start();
$_SESSION['upload'] = true;
$uploadid = session_id();
//now you can use `'data: "artist="+$fi+"&UPLOADSESSION="'.$uploadid` in uploadify
session_write_close();
}
//return to normal name
session_name($oldname);
//set old session id
session_id($oldsessionid);
//resume normal session
session_start();
Итак, в вашем принимающем скрипте:
<?php
session_name('UPLOADSESSION');
session_id($_POST['UPLOADSESSION']);
session_start();
if(isset($_SESSION['upload']) && $_SESSION['upload']){
//accept files
//invalidate session after this upload
$_SESSION['upload'] = false;
}
У пользователя по-прежнему будет 2 куки, и, возможно, UPLOADSESSION зафиксирован, но вы не используете его для чего-либо еще, кроме загрузки, и только для 1 загрузки (хотя вы можете разрешить больше).
В качестве альтернативы, вы можете просто вызвать session_regenerate_id();
по первому запросу после загрузки (просто установите флаг в $_SESSION
при загрузке).