За последние 24 часа нас посетил 18051 программист и 1700 роботов. Сейчас ищут 1545 программистов ...

ошибка в обработке формы на php

Тема в разделе "Работа с почтой", создана пользователем axvell, 6 апр 2006.

  1. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    вот тебе надо брать
    PHP:
    1. <?
    2. if(!empty($_FILES['foto1']['tmp_name'])) {
    3.      $file1=fopen($_FILES['foto1']['tmp_name'],"rb");
    4.      // подготовка аттача для 1 файла
    5. }
    6. ...
    7. ?>
    8.  
    понятно? а имя файла для аттача брать из $_POST['foto1']['name']
     
  2. axvell

    axvell Активный пользователь

    С нами с:
    6 апр 2006
    Сообщения:
    20
    Симпатии:
    0
    Кстати есть разница, куда extract($_FILES); ставить
    поставить в начало, т.е. наверх?
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    от extract лучше отказаться и использовать $_GET[] или $_POST массивы. есть мнение что это безопаснее.
     
  4. axvell

    axvell Активный пользователь

    С нами с:
    6 апр 2006
    Сообщения:
    20
    Симпатии:
    0
    еще вопрос, этот код:
    <?
    $foto1 = '';
    if(!empty($_FILES['foto1']['tmp_name'])) $foto1 = $_FILES['foto1']['tmp_name'];
    ?>
    куда вообще вставлять, после проверки на указание файла?
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    axvell
    я вой пост исправил. посмотри
     
  6. axvell

    axvell Активный пользователь

    С нами с:
    6 апр 2006
    Сообщения:
    20
    Симпатии:
    0
    Все равно не понимаю, ну подскажите куда поставить код?:
    <?
    $foto1 = '';
    if(!empty($_FILES['foto1']['tmp_name'])) $foto1 = $_FILES['foto1']['tmp_name'];
    ?>
    Или в место чего, покажите пожалуйста пример, код же я ввел выше.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну как-то так ...
    PHP:
    1. <?
    2. if (!empty($_FILES['foto1']['tmp_name'])) {
    3.  
    4. $filename1 = $_FILES['foto1']['tmp_name'];
    5. $realname1 = $_FILES['foto1']['name'];
    6.  
    7. $file1=fopen($filename1,"rb");
    8.  
    9. $body.="\n\n--$bound\n";
    10. $body.='Content-Type: application/octet-stream; name="'.$realname1.'"'."\n";
    11. $body.="Content-Transfer-Encoding:base64\n";
    12. $body.="Content-Disposition:attachment\n\n";
    13. $body.=base64_encode(fread($file1,filesize($filename1)))."\n";
    14.  
    15. }
    16. ?>
     
  8. axvell

    axvell Активный пользователь

    С нами с:
    6 апр 2006
    Сообщения:
    20
    Симпатии:
    0
    Огромное СПАСИБО!!!
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    работает?
     
  10. axvell

    axvell Активный пользователь

    С нами с:
    6 апр 2006
    Сообщения:
    20
    Симпатии:
    0
    Да, все отлично работает.
    Еще раз спасибо =)
     
  11. MarkeZ

    MarkeZ Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    3
    Симпатии:
    0
    Привет всем.
    Помогите плиз с глобальными переменными.
    Нужно прописать $_POST['имя']
    Как правильно поменять $mail на $_POST['$mail'] чтобы все работало?

    Вот код
    PHP:
    1. <?php
    2.  
    3. if (isset ($mail))
    4. {
    5. $mail = substr($mail,0,40); //Не может быть более 40 символов
    6. if (empty($mail))
    7. {
    8. echo "<center><b>Не указан Ваш E-mail !!!<p>";
    9. echo "<a href=buy.html>Вернуться и правильно заполнить форму.</a>";
    10. }
    11. }
    12. else
    13. {
    14. $mail = "не указано";
    15. }
    16.  
    17. $i = "не указано";
    18. if ($mail == $i)
    19. {
    20. echo "Ошибка ! Скрипту не были переданы параметры !";
    21. }
    22.  
    23. $to = "mail@domain.ru";
    24. $subject = "Тема";
    25. $message = " E-mail:$mail \n";
    26. mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
    27. echo "<center><b>Спасибо. ";
    28. ?>
     
  12. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    руками?
     
  13. MarkeZ

    MarkeZ Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    3
    Симпатии:
    0
    Кому как удобнее, у меня руками не получилось..
     
  14. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    в строку 2 вписать: $mail = $_POST['mail'];
     
  15. MarkeZ

    MarkeZ Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    3
    Симпатии:
    0
    Спасибо, DarkElf.
    Все работает.
    :roll: