Показано с 1 по 10 из 10

Тема: Специалисты, подскажите по коду php

  1. #1

    Регистрация
    21.05.2006
    Сообщений
    8
    Уважаемые специалисты. Моих знаний в php не хватает, поэтому обращаюсь за помощью.

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

    Сейчас в приложении файла необходимость отпала, и передо мной стоит задача исправить написанный код, убрав поле для прикрепления файла и запрет на отправку письма, если файл не прикреплен.

    Подскажите, как оптимизировать (исправить) код, для того, чтобы со страницы сайта отправлялось только текстовое письмо?

    <form action="index.html#sendform" enctype="multipart/form-data" method=post>

    <?php

    if(isset($_POST[&#39;mail_subject&#39;]))

    {

    if (!empty($_POST[&#39;mail_subject&#39;]) and !preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST[&#39;mail_subject&#39;])) $error = "Ââåäèòå àäðåñ â âèäå [Только зарегистрированные пользователи могут видеть ссылки. ]";
    if(empty($_FILES[&#39;mail_file&#39;][&#39;name&#39;])) $error = "Âûáåðèòå ôàéë äëÿ îòïðàâêè";
    $from = htmlspecialchars(stripslashes($_POST[&#39;mail_subject&#39;]));
    $msg = htmlspecialchars(stripslashes($_POST[&#39;mail_msg&#39;]));
    $mail_to = "àäðåñ@ïî÷òû.ru";

    if(!isset($error))

    {

    if(empty($_POST[&#39;mail_subject&#39;])) $from = "nobody@h1.ru";

    if(!empty($_FILES[&#39;mail_file&#39;][&#39;tmp_name&#39;]))

    {
    $path = $_FILES[&#39;mail_file&#39;][&#39;tmp_name&#39;];
    $fp = fopen($path,"r");
    $file = fread($fp, filesize($path));
    fclose($fp);

    $boundary = "--".md5(uniqid(time()));

    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
    $headers .= "From: $from\r\n";

    $multipart = "--$boundary\n";
    $multipart .= "Content-Type: text/html; charset=windows-1251\n";
    $multipart .= "Content-Transfer-Encoding: quoted-printable\n\n";
    $multipart .= "$msg\n\n";

    $message_part = "--$boundary\n";
    $message_part .= "Content-Type: application/octet-stream name = \"".$_FILES[&#39;mail_file&#39;][&#39;name&#39;]."\"\n";
    $message_part .= "Content-Disposition: attachment; filename = \"".$_FILES[&#39;mail_file&#39;][&#39;name&#39;]."\"\n";
    $message_part .= "Content-Transfer-Encoding: base64\n\n";
    $message_part .= chunk_split(base64_encode($file))."\n";

    $multipart .= $message_part."--$boundary--\n";
    }

    else

    {
    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/html; charset=windows-1251\n";
    $headers .= "From: $from\r\n";

    $multipart = $msg;
    }

    if(!mail($mail_to, "Ïèñüìî ñ ñàéòà", $multipart, $headers)) $error = "Ê ñîæàëåíèþ, ïèñüìî íå îòïðàâëåíî";
    else
    {
    print "<tr><td colspan=2><font color=green>Ïèñüìî óñïåøíî îòïðàâëåíî</font></td></tr>";
    $from = $msg = "";
    }

    }

    else print "<tr><td colspan=2><font color=red>$error</font></td></tr>";

    }

    else

    {

    $from = $msg = "";

    }

    ?>

    <tr><td width=40%>Âàø e-mail:</td><td align=center><input type=text name=mail_subject maxlength=64 value="<?=$from?>"></td></tr>
    <tr><td colspan=2>Âàøå ñîîáùåíèå:
    <textarea cols=40 rows=8 name=mail_msg><?=$msg?></textarea></td>
    <tr><td width=40%>Ïðèëàãàåìûé ôàéë:</td><td align=center><input type=file name=mail_file maxlength=64></td></tr>
    </tr><tr><td colspan=2><input type=submit value="Îòïðàâèòü"></td></tr>
    </form>

  2. #2

    Регистрация
    15.09.2005
    Адрес
    Обнинск
    Сообщений
    26
    Вот так
    Код:
    <form action="index.html#sendform" method=post>
    <?php
    if(isset($_POST[&#39;mail_subject&#39;]))
    {
    if (!empty($_POST[&#39;mail_subject&#39;]) and !preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST[&#39;mail_subject&#39;])) $error = "Ââåäèòå àäðåñ â âèäå [Только зарегистрированные пользователи могут видеть ссылки. ]";
    $msg = htmlspecialchars(stripslashes($_POST[&#39;mail_msg&#39;]));
    $mail_to = "àäðåñ@ïî÷òû.ru";
    if(!isset($error))
    {
    if(empty($_POST[&#39;mail_subject&#39;])) $from = "nobody@h1.ru";
    $headers="MIME-Version: 1.0\nContent-Type: text/html; charset=windows-1251\nFrom: $from";
    $body=$msg;
    }
    if(!mail($mail_to,"Ïèñüìî ñ ñàéòà",$body,$headers)) $error="Ê ñîæàëåíèþ, ïèñüìî íå îòïðàâëåíî";
    else print "<tr><td colspan=2><font color=green>Ïèñüìî óñïåøíî îòïðàâëåíî</font></td></tr>";$from = $msg = "";
    }
    else print "<tr><td colspan=2><font color=red>$error</font></td></tr>";
    }
    else $from = $msg = "";
    ?>
    <tr><td width=40%>Âàø e-mail:</td><td align=center><input type=text name=mail_subject maxlength=64 value="<?=$from?>"></td></tr><tr><td colspan=2>Âàøå ñîîáùåíèå:
    <textarea cols=40 rows=8 name=mail_msg><?=$msg?></textarea></td><tr><td width=40%>Ïðèëàãàåìûé ôàéë:</td><td align=center><input type=file name=mail_file maxlength=64></td></tr></tr><tr><td colspan=2><input type=submit value="Îòïðàâèòü"></td></tr></form>

  3. #3

    Регистрация
    21.05.2006
    Сообщений
    8
    К сожалению, при таком раскладе, сервер выдает следующую ошибку: Parse error: parse error in /home/webadmin/сайт.ru/html/collaboration2.html on line 66

    Где-то какой-то сбой...Что посоветуете?

  4. #4

    Регистрация
    21.05.2006
    Сообщений
    8
    Специалисты! Ну неужели никто не подскажет как переделать этот дурацкий код, чтобы отправлять прямо со страницы сайта сообщение на е-мейл?

  5. #5

    Регистрация
    09.03.2006
    Сообщений
    77
    да. всем влом

    Один программист написал по моей просьбе скрипт
    что мешает к нему обратится?

  6. #6

    Регистрация
    15.09.2005
    Адрес
    Обнинск
    Сообщений
    26
    Originally posted by Jexa@May 22 2006, 11:06
    К сожалению, при таком раскладе, сервер выдает следующую ошибку: Parse error: parse error in /home/webadmin/сайт.ru/html/collaboration2.html on line 66

    Где-то какой-то сбой...Что посоветуете?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    вот знать бы еще, что за файл collaboration2.html )
    попробуй так, у меня на локальной машине вроде работает без ошибок
    Код:
    <form action="index.html#sendform" method="post">
    <?php
    if(isset($_POST[&#39;mail_subject&#39;]))
    {
    if(!empty($_POST[&#39;mail_subject&#39;])&&!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i",$_POST[&#39;mail_subject&#39;])) $error="Ââåäèòå àäðåñ â âèäå [Только зарегистрированные пользователи могут видеть ссылки. ]";
    $from=htmlspecialchars(stripslashes($_POST[&#39;mail_subject&#39;]));
    $msg=htmlspecialchars(stripslashes($_POST[&#39;mail_msg&#39;]));
    $mail_to="àäðåñ@ïî÷òû.ru";
    if(!isset($error))
    {
    if(empty($_POST[&#39;mail_subject&#39;])) $from="nobody@h1.ru";
    $headers="MIME-Version: 1.0\nContent-Type: text/html; charset=windows-1251From: $from";
    $text=$msg;
    if(!mail($mail_to,"Ïèñüìî ñ ñàéòà",$text,$headers)) $error="Ê ñîæàëåíèþ, ïèñüìî íå îòïðàâëåíî";
    else
    {
    echo "<tr><td colspan=2><font color=green>Ïèñüìî óñïåøíî îòïðàâëåíî</font></td></tr>";
    $from=$msg="";
    }
    }
    else print "<tr><td colspan=2><font color=red>$error</font></td></tr>";
    }
    else $from = $msg = "";
    ?>
    <tr><td width=40%>Âàø e-mail:</td><td align=center><input type=text name=mail_subject maxlength=64 value="<?=$from?>"></td></tr><tr><td colspan=2>Âàøå ñîîáùåíèå:
    <textarea cols=40 rows=8 name=mail_msg><?=$msg?></textarea></td></tr><tr><td colspan=2><input type=submit value="Îòïðàâèòü"></td></tr></form>

  7. #7

    Регистрация
    21.05.2006
    Сообщений
    8
    Фигушки. И так не работает....Все равно, спасибо за попытку помочь....Может кто за вознаграждение сможет помочь...правда смогу заплатить рублей 200, не больше...но и работы для специалиста-то раз плюнуть?

  8. #8

    Регистрация
    09.03.2006
    Сообщений
    77
    Незнаю сколько это 200 рублей, если есть 10ВМЗ - стучитесь в аську.

  9. #9

    Регистрация
    16.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    6
    Можете обратиться и ко мне по асе..

  10. #10

    Регистрация
    21.05.2006
    Сообщений
    8
    Спасибо, Cain, за приведенную форму! Теперь все отправляется, как часы. Надеюсь и далее воспользоваться твоими советами...

Похожие темы

  1. Подскажите!!!
    от Syslik-zver в разделе Flash-технологии
    Ответов: 2
    Последнее сообщение: 18.03.2010, 10:55
  2. Хелп! специалисты по фотовыводу!
    от Деловая колбаса в разделе Печать и препресс
    Ответов: 2
    Последнее сообщение: 29.06.2008, 00:12
  3. Подскажите
    от danstel в разделе 3D-технологии
    Ответов: 3
    Последнее сообщение: 19.10.2007, 15:59
  4. подскажите плз
    от rusich в разделе Векторная графика
    Ответов: 23
    Последнее сообщение: 15.06.2005, 17:04
  5. Подскажите
    от Andrushka в разделе Векторная графика
    Ответов: 10
    Последнее сообщение: 19.02.2004, 20:18

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •