Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: session_save_path()
Форумы портала PHP.SU » » HTTP и PHP » session_save_path()

Страниц (2): [1] 2 »
 

1. KuPbI4 - 08 Августа, 2011 - 15:13:14 - перейти к сообщению
В чем заключается этот метод session_save_path()?
У меня поставлена такая задача - Выбрал файл №1 для загрузки, нажал на кнопку Добавить, запрашивает выбрать файл №2 для загрузки и кнопка ок, и пропадает выбор файла №1 для загрузки. Как сделать, чтоб файл №1 для загрузки запомнился, чтоб заново не выбирать? Этим методом session_save_path() ? Если да, то покажите пример...
2. EuGen - 08 Августа, 2011 - 15:46:25 - перейти к сообщению
Задает каталог, куда php будет сохранять временные файлы, необходимые для хранения текущих сессий.
А что значит "запомнить файл для загрузки" - вопрос открытый.
3. KuPbI4 - 08 Августа, 2011 - 15:47:48 - перейти к сообщению
EuGen пишет:
Задает каталог, куда php будет сохранять временные файлы, необходимые для хранения текущих сессий.

А пример можете показать?!
EuGen пишет:
А что значит "запомнить файл для загрузки" - вопрос открытый.

Это значит запомнить как метод $_SESSION
4. EuGen - 08 Августа, 2011 - 15:58:27 - перейти к сообщению
http://www.php.net/manual/en/function.session-save-path.php пишет:
<?php
session_save_path('/home/example.com/sessions');
ini_set('session.gc_probability', 1);
?>
5. KuPbI4 - 09 Августа, 2011 - 01:15:29 - перейти к сообщению
EuGen пишет:
http://www.php.net/manual/en/function.session-save-path.php пишет:
<?php
session_save_path('/home/example.com/sessions');
ini_set('session.gc_probability', 1);
?>

в форме добавления загрузки выглядит так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include ("mysql.php");
  4. session_save_path('/home/имя_проекта/sessions');
  5. ini_set('session.gc_probability', 1);
  6. ?>
  7.  

Сама форма:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action="add.php" method="post" ENCTYPE="multipart/form-data">
  3.           Файл изображения №1: <input type="file" name="file[]" value="<? echo $_SESSION['img1'];?>"><br>
  4.           Файл изображения №2: <input type="file" name="file[]"><br>
  5.           Файл изображения №3: <input type="file" name="file[]"><br>
  6.          <input type="submit" value="Добавить" name="add"/>&nbsp;<input type="reset" value="Очистить"/><br>
  7.     </form>
  8.  

Сам скрипт добавления в БД.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include ("mysql.php");
  4.  
  5. $img1 = strip_tags(stripslashes(substr($_POST['img1'],0,255)));
  6. $img2 = strip_tags(stripslashes(substr($_POST['img2'],0,255)));
  7. $img3 = strip_tags(stripslashes(substr($_POST['img3'],0,255)));
  8.  
  9. $_SESSION['img1'] = $img1;
  10. $_SESSION['img2'] = $img2;
  11. $_SESSION['img3'] = $img3;
  12.  
  13.         if(strlen(trim($_FILES['file']['name'][0])) > 0) {
  14.                                                                         if(strlen(trim($_FILES['file']['name'][1])) > 0) {
  15.                                                                                 if(strlen(trim($_FILES['file']['name'][2])) > 0) {
  16.  
  17.                                        
  18.                                                                 foreach($_FILES['file']['name'] as $k=>$f) {
  19.                                                                         if (!$_FILES['file']['error'][$k]) {
  20.                                                                                 if (is_uploaded_file($_FILES['file']['tmp_name'][$k])) {
  21.                                                                                         if (move_uploaded_file($_FILES['file']['tmp_name'][$k], "../img/cars/".$_FILES['file']['name'][$k])) {
  22.                                                                                                 echo 'Файл: '.$_FILES['file']['name'][$k].' загружен!';
  23.                                                                                                         if (Img_Resize("../img/cars/".$_FILES['file']['name'][$k], "../img/cars/".$_FILES['file']['name'][$k], 600, 600)) {
  24.                                                                                                                 echo "Файл".$_FILES['file']['name'][$k]."изменен!";
  25.                                                                                                         }
  26.                                                                                         }
  27.                                                                                 }
  28.                                                                         }
  29.                                                                 }
  30.                                                                 $img1=$_FILES['file']['name'][0];
  31.                                                                 $img2=$_FILES['file']['name'][1];
  32.                                                                 $img3=$_FILES['file']['name'][2];
  33. $query="INSERT INTO cars (  img1, img2, img3 ) VALUES ('$img1', '$img2', '$img3')";
  34.                                         if (mysql_query($query)) { ;
  35.                                         unset($_SESSION['img1']);
  36.                                         unset($_SESSION['img2']);
  37.                                         unset($_SESSION['img3']);
  38.                                         header("Location: ./index.php");
  39.                                         }
  40.                                         else {
  41.                                         header("Location: ./add_form.php");
  42.                                         }
  43.                                         }
  44.                                 else { echo "<script language='JavaScript'>window.alert('Выберите файл изображения №3 для загрузки');
  45.                 location.href='add_form.php'</script>";}}
  46.                                 else { echo "<script language='JavaScript'>window.alert('Выберите файл изображения №2 для загрузки');
  47.                 location.href='add_form.php'</script>";}}
  48.                                 else { echo "<script language='JavaScript'>window.alert('Выберите файл изображения №1 для загрузки');
  49.                 location.href='add_form.php'</script>";}}              
  50.  

Выбираю файл №1 для загрузки, потом жму добавить, и просит добавить файл №2 для изображения, и не запомнил путь к временному файлу №1, для хранения текущих сессий.., а хотелось, чтоб запомнил путь к временному файлу №1, для хранения текущих сессий.., чтоб потом спокойно загрузить файлы на сервер..
Подскажите советом...
6. EuGen - 09 Августа, 2011 - 08:57:57 - перейти к сообщению
Разъясните, каким образом загрузка файлов и их хранение относится к сессиям и их хранению
7. KuPbI4 - 09 Августа, 2011 - 10:28:01 - перейти к сообщению
EuGen пишет:
Разъясните, каким образом загрузка файлов и их хранение относится к сессиям и их хранению

Чтобы пользователь выбрал первый файл загрузки и нажал на кнопку добавить, и система выдает и просит добавить второй файл загрузки и жмет ОК, и видим, что выбор первого файла для загрузки изображения сбросилось и ему приходиться заново это делать, так понятно?
8. SAD - 09 Августа, 2011 - 10:42:52 - перейти к сообщению
мда... нет слов... вы наверное не поняли, что вам сказали
9. KuPbI4 - 09 Августа, 2011 - 11:17:46 - перейти к сообщению
SAD пишет:
мда... нет слов... вы наверное не поняли, что вам сказали

Если раз вы это поняли, то объясните поконкретнее, и видно, что потихоньку изучаю и все приходит с опытом, спасибо за понимание и за внимание
10. SAD - 09 Августа, 2011 - 11:24:53 - перейти к сообщению
Опишите подробней задачу. Сессии тут вообще не причем!.
11. illy - 09 Августа, 2011 - 11:34:10 - перейти к сообщению
Я так понял:
загрузил первый файл, форма очистилась и пишет загрузи второй файл(через туже форму) загрузил второй файл форма опять очистилась и пишет загрузи третий файл(через туже форму конечно) загрузил и всё Улыбка
только сессия тут нипричём. Тут аякс нужен.
Или сессии нужны чтобы понять кто загрузил файлы и какие файлы и путь к ним? Закатив глазки
12. SAD - 09 Августа, 2011 - 11:37:04 - перейти к сообщению
короче делаете так, когда выбрали файл, по событию onchange на input делаете текущее поле формы скрытым, и добавляете еще одно поле input
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1. <script>
  2. function hideDiv(input, num1, num2) {
  3.     if (input.value) {
  4.         document.getElementById('img'+num1).style.display = 'none';
  5.         document.getElementById('img'+num2).style.display = '';
  6.     } else
  7.         return false;
  8. }
  9. </script>
  10. <form action="add.php" method="post" ENCTYPE="multipart/form-data">
  11.     <div id="img1">Файл изображения №1: <input type="file" name="file[]" onchange="hideDiv(this, 1, 2);"></div>
  12.     <div id="img2" style="display: none;">Файл изображения №2: <input type="file" name="file[]" onchange="hideDiv(this, 2, 3);"></div>
  13.     <div id="img3" style="display: none;">Файл изображения №3: <input type="file" name="file[]"></div>
  14.     <input type="submit" value="Добавить" name="add"/>&nbsp;<input type="reset" value="Очистить"/><br>
  15. </form>
13. KuPbI4 - 09 Августа, 2011 - 12:23:22 - перейти к сообщению
SAD пишет:
короче делаете так, когда выбрали файл, по событию onchange на input делаете текущее поле формы скрытым, и добавляете еще одно поле input
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1. <script>
  2. function hideDiv(input, num1, num2) {
  3.     if (input.value) {
  4.         document.getElementById('img'+num1).style.display = 'none';
  5.         document.getElementById('img'+num2).style.display = '';
  6.     } else
  7.         return false;
  8. }
  9. </script>
  10. <form action="add.php" method="post" ENCTYPE="multipart/form-data">
  11.     <div id="img1">Файл изображения №1: <input type="file" name="file[]" onchange="hideDiv(this, 1, 2);"></div>
  12.     <div id="img2" style="display: none;">Файл изображения №2: <input type="file" name="file[]" onchange="hideDiv(this, 2, 3);"></div>
  13.     <div id="img3" style="display: none;">Файл изображения №3: <input type="file" name="file[]"></div>
  14.     <input type="submit" value="Добавить" name="add"/>&nbsp;<input type="reset" value="Очистить"/><br>
  15. </form>

Спасибо, потестировал работает, но поменял кое-что в скрипте
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.   document.getElementById('img'+num1).style.display = 'none';
  3.  

на
CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById('img'+num1).style.display = '';

И я хотел увидеть этот результат, когда выбрали файл для загрузки, появляется выбор загрузки второго файла и т.д.
НО! Проблема остается, когда пользователь случайно нажмет на добавить,если даже он не выбрал второй файл для загрузки и третий, пропадает выбранный первый файл для загрузки.
14. SAD - 09 Августа, 2011 - 12:58:04 - перейти к сообщению
блин, пропадает, так как вы форму отправили.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. function hideDiv(input, num1, num2) {
  4.     if (input.value) {
  5.         document.getElementById('img'+num2).style.display = '';
  6.     } else
  7.         return false;
  8. }
  9. function AddImg() {
  10.     var inputs = document.getElementById('form').getElementsByTagName('input');
  11.     var count = 0;
  12.     for (var i = 0; i < inputs.length; i++)
  13.        if (inputs[i].type == 'file' && inputs[i].value)
  14.            count++;
  15.    if (count == 3)
  16.        document.getElementById('form').submit();
  17. }
  18. </script>
  19. <form id="form" action="add.php" method="post" ENCTYPE="multipart/form-data">
  20.     <div id="img1">Файл изображения №1: <input type="file" name="file[]" onchange="hideDiv(this, 1, 2);"></div>
  21.     <div id="img2" style="display: none;">Файл изображения №2: <input type="file" name="file[]" onchange="hideDiv(this, 2, 3);"></div>
  22.     <div id="img3" style="display: none;">Файл изображения №3: <input type="file" name="file[]"></div>
  23.     <input type="button" value="Добавить" name="add" onclick="AddImg();"/>&nbsp;<input type="reset" value="Очистить"/><br>
  24. </form>
15. KuPbI4 - 09 Августа, 2011 - 13:20:26 - перейти к сообщению
SAD пишет:
блин, пропадает, так как вы форму отправили.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. function hideDiv(input, num1, num2) {
  4.     if (input.value) {
  5.         document.getElementById('img'+num2).style.display = '';
  6.     } else
  7.         return false;
  8. }
  9. function AddImg() {
  10.     var inputs = document.getElementById('form').getElementsByTagName('input');
  11.     var count = 0;
  12.     for (var i = 0; i < inputs.length; i++)
  13.        if (inputs[i].type == 'file' && inputs[i].value)
  14.            count++;
  15.    if (count == 3)
  16.        document.getElementById('form').submit();
  17. }
  18. </script>
  19. <form id="form" action="add.php" method="post" ENCTYPE="multipart/form-data">
  20.     <div id="img1">Файл изображения №1: <input type="file" name="file[]" onchange="hideDiv(this, 1, 2);"></div>
  21.     <div id="img2" style="display: none;">Файл изображения №2: <input type="file" name="file[]" onchange="hideDiv(this, 2, 3);"></div>
  22.     <div id="img3" style="display: none;">Файл изображения №3: <input type="file" name="file[]"></div>
  23.     <input type="button" value="Добавить" name="add" onclick="AddImg();"/>&nbsp;<input type="reset" value="Очистить"/><br>
  24. </form>

Спасибо конечно за подсказки, но диалоговое окно уже не высвечивается о добавлении второго файла загрузки, т.к. заметил разницу между
CODE (html):
скопировать код в буфер обмена
  1. <input type="button">
и
CODE (html):
скопировать код в буфер обмена
  1. <input type="submit">

Если
CODE (html):
скопировать код в буфер обмена
  1. <input type="submit">
, то будет показывать диалоговое окно о просьбе добавления второго файла для загрузки, но пропадает первый выбранный файл для загрузки.
Если
CODE (html):
скопировать код в буфер обмена
  1. <input type="button">
, то не будет показывать диалоговое окно о просьбе добавления второго файла для загрузки, но не пропадает первый выбранный файл для загрузки., нажав на кнопку Добавить и ничего не реагирует.

 

Powered by ExBB FM 1.0 RC1