mysql_query("INSERT INTO `images` VALUES (…)");
$id = mysql_insert_id();
$_SESSION['img_upload'][] = $id;
В конце загрузки всех файлов пытаюсь вывести данные сессии (например кол-во элементов массива). При этом ИЕ всё замечательно и правильно выводит. А Опера и Фокс утверждают, что такая сессия вообще не существует.
В чем может быть проблема?
На всякий случай выкладываю код:
if (!empty($_FILES)) {
// EXT
$arr = explode(".", $_FILES['Filedata']['name']);
$ext = $arr[(count($arr)-1)]; // получаем расширение файла
$url = "../img/upload/";
mysql_query("INSERT INTO `images` VALUES (NULL, '$ext', NULL, NULL)") or die(mysql_error());
$id = mysql_insert_id(); // id последней картинки
$_SESSION['img_upload'][] = $id;
mysql_query("UPDATE `images` SET `imgname` = '".$id.".".$ext."' WHERE `id` = '$id'") or die(mysql_error()); // добавляем реальные данные о картинке
move_uploaded_file($_FILES['Filedata']['tmp_name'],$url.$id.".".$ext);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$url.$id.".".$ext);
}
А тут пытаюсь вывести только что загруженные картинки
for($i=0; $i<count($_SESSION['img_upload']); $i++) {
$result = mysql_query("SELECT * FROM `images` WHERE `id` = '".$_SESSION['img_upload'][$i]."'");
$row = mysql_fetch_assoc($result);
$echo .= "<table cellspacing='0' cellpadding='4'>
<tr valign='top'>
<td rowspan='3'><img src='../img/upload/".$row['imgname']."' border='0' width='100'></td>
<td>".cp1251_to_utf8("Название:")."</td>
<td><input type='text' name='name".$row['id']."' value='".cp1251_to_utf8($row['name'])."'></td>
<tr><td>ALT:</td>
<td><input type='text' name='alt".$row['id']."' value='".cp1251_to_utf8($row['altname'])."'></td>
<tr><td colspan='2'><a href=>".cp1251_to_utf8("удалить")."</a></td>
</table>";
}
echo $echo;
И вот таким образом через жуквери вывожу данные
$.post(
'action.php',
{ action: 'inf_new_img_tmp' },
function(data) {
$('#i').show();
$('#i').html(data);
}
);
session_start(); везде стоит. Опять же повторюсь, ИЕ всё идеально выводит.