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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как определить загружена страница впервые или нет?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
ruslan_sul
Отправлено: 12 Марта, 2008 - 07:09:26
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Помогите новичку
есть форма и такой код для загрузки файла на сервер.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $uploaddir='/uploads/';
  3. if (move_uploaded_file($_FILES['sendfile'] ['tmp_name'],$uploaddir .
  4. $_FILES['sendfile'] ['name']))
  5. {
  6. echo 'Файл удачно загружен';
  7. }
  8. else
  9. {
  10. echo 'Ошибка загрузки файла';
  11. }        
  12. ?>
ПРи первой загрузке пишет
Undefined index: sendfile in
я так понимаю это он ругается на sendfile и 'tmp_name'

Страница работает, файлы отправляются но
Нужно выполнять или не выполнять код в зависимости от того загружается страница впервые или нет.
Как это сделать


Отредактировано модератором: Dastar, 12 Марта, 2008 - 12:48:34
 
 Top
EuGen Администратор
Отправлено: 12 Марта, 2008 - 09:42:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Делаете так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(isset($_POST['submitted']))
  4. {
  5.    ...
  6.    //Ваши действия по проверке файла
  7. }
  8. ?>
  9.  

А в веб-форме делаете hidden-поле:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <input type='hidden' name='submitted' value=1>
  3.  

(Отредактировано автором: 12 Марта, 2008 - 09:42:54)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
M@X
Отправлено: 12 Марта, 2008 - 09:50:17
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2007  


Помог: 0 раз(а)

[+]


если при первой попытке надо разрешить р=отправить, а при следующих нет, то то следует сделать так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $flaf = 0;
  4.  
  5. ...
  6.  
  7. if( isset($_POST['submitted']) AND (flag == 0) )
  8. {
  9.    ...
  10.    //Ваши действия по проверке файла
  11.  
  12.    $flag = 1;
  13. }
  14. ?>
  15.  


и дальше как говорит EuGen
 
 Top
EuGen Администратор
Отправлено: 12 Марта, 2008 - 09:55:44
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




M@X
Это Вы что имели ввиду? Так, как предлагаете сделать Вы, вообще неверно. Потому что переменная $flag будет сбрасываться при каждой загрузке страницы, а то, что внутри блока if Вы делаете её равной 1, никак не повлияет на последующие выполнения скрипта.
Я так понял, автор темы хотел узнать, как правильно работать с переменной, которая еще может быть не определена.
Но если проблема в том, чтобы разрешать загружать только 1 раз, то нужно задействовать БД, так как даже куки или сессии не помогут в этом случае (пользователь может просто закрыть браузер и потом проделать все снова). Но и БД в этом случае не дает 100% результат - нужно же как то идентифицировать юзера, а сделать это можно только по передаваемым http - параметрам, таким, как IP-адрес, к примеру.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ruslan_sul
Отправлено: 12 Марта, 2008 - 11:23:11
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Спасибо всем, вариант со скрытым полем то что нужно
 
 Top
valenok Модератор
Отправлено: 13 Марта, 2008 - 21:41:11
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)






-----
Truly yours, Sasha.
 
My status
 Top
M@X
Отправлено: 19 Марта, 2008 - 14:17:56
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2007  


Помог: 0 раз(а)

[+]


Признаю свою ошибку, сорри. EuGen спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB