[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    помогите обьеденить эти два скрипта в один php:
    PHP:
    <html>
    <head>
      <title>Результат загрузки файла</title>
    </head>
    <body>

    <?php
       
    if($HTTP_POST_FILES["filename"]["size"] > 1024*10*1024)
       {
         echo (
    "Размер файла превышает десять мегабайт");
         exit;
       }
       if(
    copy($HTTP_POST_FILES["filename"]["tmp_name"],
         
    "uploads/".$HTTP_POST_FILES["filename"]["name"]))
       {
         echo(
    "Файл успешно загружен <br>");
         echo(
    "Характеристики файла: <br>");
         echo(
    "Имя файла: ");
         echo(
    $HTTP_POST_FILES["filename"]["name"]);
         echo(
    "<br>Размер файла в байтах: ");
         echo(
    $HTTP_POST_FILES["filename"]["size"]);
         echo(
    "<br>Каталог для загрузки: ");
         echo(
    $HTTP_POST_FILES["filename"]["tmp_name"]);
         echo(
    "<br>Тип файла: ");
         echo(
    $HTTP_POST_FILES["filename"]["type"]);
       } else {
          echo(
    "Ошибка загрузки файла");
       }
    ?>

    </body>
    </html>
    and
    HTML:
    <html>
    <head>
      <title>Загрузка файлов на сервер</title>
    </head>
    <body>
          <h2><p><b> Форма для загрузки файлов </b></p></h2>
          <form action="upload.php" method="post" enctype="multipart/form-data">
          <input type="file" name="filename"><br> 
          <input type="submit" value="Загрузить"><br>
          </form>
    </body>
    </html>
     
  2. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    PHP:
     <html>
    <head>
      <title>Результат загрузки файла</title>
    </head>
    <body>
     <h2><p><b> Форма для загрузки файлов </b></p></h2>
          <form action="upload.php" method="post" enctype="multipart/form-data">
          <input type="file" name="filename"><br> 
          <input type="submit" value="Загрузить"><br>
          </form>

    <?php
    if($_FILES['filename'])
    {
       if(
    $_FILES['filename']["size"] > 1024*10*1024)
       {
         echo (
    "Размер файла превышает десять мегабайт");
         exit;
       }
       if(
    copy($_FILES['filename']["tmp_name"],
         
    "uploads/".$_FILES['filename']["name"]))
       {
         echo(
    "Файл успешно загружен <br>");
         echo(
    "Характеристики файла: <br>");
         echo(
    "Имя файла: ");
         echo(
    $_FILES['filename']["name"]);
         echo(
    "<br>Размер файла в байтах: ");
         echo(
    $_FILES['filename']["size"]);
         echo(
    "<br>Временное имя файла: ");
         echo(
    $_FILES['filename']["tmp_name"]);
         echo(
    "<br>Тип файла: ");
         echo(
    $_FILES['filename']["type"]);
       } else {
          echo(
    "Ошибка загрузки файла");
       }
    }
    ?>

    </body>
    </html>  
     
  3. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Данный метод проверки некорректен, ибо:
    1. Значение 'size', как и любое, может быть легко подделано. Корректнее измерять размер этого файла в папке tmp.
    2. HTTP_POST_FILES ушло в прошлое. Используй _FILES

    корректнее использовать
    PHP:
    isset($_POST['submit']);
    Опять же, для таких вещей существует специальная функция:
    PHP:
    @move_uploaded_file($_FILES['filename']['tmp_name'], 'uploads/'.$_FILES['filename']['name']);
    Ах да, и не забываем использовать одинарные кавычки вместо двойных ;)
     
    #6043 [х26]VОLАND, 10 Nov 2008
    Last edited: 10 Nov 2008
    1 person likes this.
  4. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    это одно и тоже
     
  5. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Удаление гланд - тоже "одно и тоже". Но выполнить его, как ты сам знаешь, можно несколькими способами...
     
  6. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    тебя $_POST зацеловал чтоли?
     
  7. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Code:
    <?php
    if ($File&& $File != "none") {
    copy($File, $File_name);
    }
    ?>
    <FORM ENCTYPE="multipart/form-data" align="center" ACTION="<?php echo"$PHP_SELF"; ?>" 
    
    METHOD="POST">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
    <INPUT NAME="File" TYPE="file">
    <INPUT TYPE="submit" VALUE="загрузить">
    </FORM>
    пред тем как загрузить файл высвечивается ошибка Undefined variable. что не так?
     
  8. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Мда. Даже спорить не хочется. Почитай что говорят разработчики насчёт этого. В следующей версии планируется полный отказ от длинных имён глобальных массивов...
    Потом ты в своём скрипте всё переделывать будешь?
     
    1 person likes this.
  9. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    пиздец, я говорю про проверки в условии $_FILES или $_POST
    если ты заметил, я ему и переделал все на нормальный лад.
     
  10. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Отказ от $_GET и $_POST o_O? register_globals, который вырежут? Тогда как данные передаваться будут?

    Bomb прав, т.к в POST можно что угодно передать. А в FILES уже запишештся файл, если это действительно файл.

    P.S, спор на пустом месте.
     
    #6050 Chaak, 10 Nov 2008
    Last edited: 10 Nov 2008
  11. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Мда. Я говорю о длинных именах типа HTTP_****_VARS. А вы о чём?
     
  12. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Где ты тут видишь HTTP_****_VARS?
     
  13. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    ууу, бомбег) критикуя на прошлых страницах мой пример скрипта оказывается вы сами не зе бест кодер)
    Любите покритиковать чужие примеры? ну я тоже умею, и так поехали))

    Code:
    <form action="upload.php"
    а если юзер назовёт скрипт другим именем? айяяй, надо заботиться о наших пользователях...поэтому action="" здесь подходит лучше.

    PHP:
    if($_FILES['filename']) 
    не просто isset как советовал Воланд, но я бы лучше сделал !empty() в данном случае.

    PHP:
    $_FILES['filename']["size"]
    Ты писал выше что нет разницы между одинарными и двойными кавычками (насколько я понял твой пост).
    Тогда обьясни смысл использования и двойных и одинарных кавычек в этом куске (и в остальных массивах тоже)

    PHP:
    echo ("Размер файла превышает десять мегабайт");
         exit; 
    Не легче ли:
    PHP:
    exit('Размер файла ....блабла'); 
    PHP:
    echo("Файл успешно загружен <br>"); 
    echo это языковая конструкция а не функция, поэтому использование echo со скобками неправильно (хотя это работает)
    И не относящееся к php:
    Не знаю под какую спецификацию вы верстаете молодой человек, но <br> это уже не круто...круто <br/> :cool:
     
  14. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    ой блять, я ему просто переменные сменил! прекратите немедленно писать ерунду! и весь спор начался с необоснованного, что сравнение $_POST лучше, чем сравнение $_FILES!
    однако $_FILES проверит еще есть ли файл, а не просто отправлена ли форма!
    наниматься исправлять ему кавычки я не нанимался! читай внимательно что попросил автор!!! щас позову гринбира и он всех заминусует!
    да конечно, писать как другие, не зная почему они так делают, это круто. и пожалуйста, не надо сравнивать меня и себя. я начал писать на пхп, когда ты про античат не знал.

    и писать про плюсы и минусы одинарных иди двойных кавычек это ебанатизм в высшей форме! иди пиши статью, как сэкономить две наносекунды на исправлении кавычек.
     
    #6054 bombeg, 10 Nov 2008
    Last edited: 10 Nov 2008
  15. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    да, конечно регать новый акк, чтобы изображать из себя школьника и писать мнимую тупость несомненно тоже круто)

    ты пишешь как будто сам не знаешь когда двойные действительно необходимы, а когда они на**й не нужны)
     
    #6055 .:EnoT:., 10 Nov 2008
    Last edited: 10 Nov 2008
  16. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Вот это ты умный , я знаю почему пишут <br />(И вообще то если о всех тонкостях то ещо пробел ставят до `/`)... .
    Но сам никогда не пишу , и вообще мало сайтов встречается с <br />
     
  17. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    я ламер. оцтань.
     
  18. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    не принципиально) Принципиально, что нормальные люди давно пишут хтмл-код с закрывающими тегами (прошу не придираться к словам, вы поняли о чём я)..а не пишут сайты на чистом хтмл`е, без css как их в школе учили...таки сайты тока на народ.ру выкладывать имхо)

    это тупо выглядет, стасег)
     
    #6058 .:EnoT:., 10 Nov 2008
    Last edited: 10 Nov 2008
  19. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    мое имя коверкать нельзя. это не ник.
     
  20. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    развдоение ? О_о
     
Thread Status:
Not open for further replies.