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 :: Версия для печати :: Как определить загружена страница впервые или нет?
Форумы портала PHP.SU » PHP » Программирование на PHP » Как определить загружена страница впервые или нет?

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

1. ruslan_sul - 12 Марта, 2008 - 07:09:26 - перейти к сообщению
Помогите новичку
есть форма и такой код для загрузки файла на сервер.
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'

Страница работает, файлы отправляются но
Нужно выполнять или не выполнять код в зависимости от того загружается страница впервые или нет.
Как это сделать
2. EuGen - 12 Марта, 2008 - 09:42:35 - перейти к сообщению
Делаете так:
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.  
3. M@X - 12 Марта, 2008 - 09:50:17 - перейти к сообщению
если при первой попытке надо разрешить р=отправить, а при следующих нет, то то следует сделать так:
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
4. EuGen - 12 Марта, 2008 - 09:55:44 - перейти к сообщению
M@X
Это Вы что имели ввиду? Так, как предлагаете сделать Вы, вообще неверно. Потому что переменная $flag будет сбрасываться при каждой загрузке страницы, а то, что внутри блока if Вы делаете её равной 1, никак не повлияет на последующие выполнения скрипта.
Я так понял, автор темы хотел узнать, как правильно работать с переменной, которая еще может быть не определена.
Но если проблема в том, чтобы разрешать загружать только 1 раз, то нужно задействовать БД, так как даже куки или сессии не помогут в этом случае (пользователь может просто закрыть браузер и потом проделать все снова). Но и БД в этом случае не дает 100% результат - нужно же как то идентифицировать юзера, а сделать это можно только по передаваемым http - параметрам, таким, как IP-адрес, к примеру.
5. ruslan_sul - 12 Марта, 2008 - 11:23:11 - перейти к сообщению
Спасибо всем, вариант со скрытым полем то что нужно
6. valenok - 13 Марта, 2008 - 21:41:11 - перейти к сообщению
M@X
http://phpfaq[dot]ru/na_tanke
7. M@X - 19 Марта, 2008 - 14:17:56 - перейти к сообщению
Признаю свою ошибку, сорри. EuGen спасибо.

 

Powered by ExBB FM 1.0 RC1