| |
|
|
| | Смотрим прикрепленный файл.
- - -
Все работает, все проверяет, но как только добавляешь тип файла, который разрешен, то все перестает работать.
Спасибо. | |
| |
|
|
| |
|
|
| |
для: kis-kis
(11.01.2007 в 21:01)
| | | Проблема должна быть в неправильной постановке }...
<?php
if ($act=="")
$act="form";
if ($act==form)
{
?>
<form name="add" method="post" action="?act=ok" enctype="multipart/form-data" onsubmit="return ValidateForm()">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td class="text" align="right">Ваше имя:<span class="textbr">*</span></td>
<td width="100%">
<input type="text" name="user" class="form" style="width: 60%";>
</td>
</tr>
<tr>
<td class="text" align="right"><nobr>E-mail адрес:<span class="textbr">*</span></nobr></td>
<td>
<input type="text" name="email" class="form" style="width: 60%";>
</td>
</tr>
<tr>
<td class="text" align="right">Заголовок:</td>
<td>
<input type="text" name="title" class="form" style="width: 100%";>
</td>
</tr>
<tr>
<td class="text" align="right">Новость:<span class="textbr">*</span></td>
<td>
<textarea name="news" style='width: 100%; height: 150px'; class="form"></textarea>
</td>
</tr>
<tr>
<td class="text"> </td>
<td class="text">
<hr size="1" noshade>
<span class="text">Если Вы обладаете видео- или фото-материалами с места
происшествия: </span>
<hr size="1" noshade>
</td>
</tr>
<tr>
<td class="text" align="right">Фото №1:</td>
<td class="text">
<input type="file" name="userfile" class="form" style="width: 60%";>
</td>
</tr>
<tr>
<td class="text"> </td>
<td class="text">
<input type="submit" name="Submit" value="Отправить сообщение" class="button">
</td>
</tr>
</table>
</form>
<?php
}
if ($act=="ok")
{
if(empty($user)) {
$bad .= "Вы не заполнили поле имя<br>";
}
if ((!ereg("^[a-z0-9_\.-]+@([a-z0-9][a-z0-9-]+\.)+[a-z]{2,4}$", $GLOBALS["email"])) && (trim($GLOBALS["email"]) != '')) {
$bad .= "Некорректный E-mail адрес<br>";
}
if(empty($news)) {
$bad .= "Отсутствует текст новости<br>";
}
if ($bad)
{
?>
<br>
<center>
<span class="textB">Обнаружены следующие ошибки:</span><br>
<br>
<span class="textBR">
<?php echo $bad; ?>
</span> <br>
<a href="javascript:history.back(1)" class="linkb">Назад</a><br>
<br>
</center>
<?php
}
else
{
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
if (($_FILES['userfile']['type']!="image/gif") and ($_FILES['userfile']['type']!="image/pjpeg") and ($_FILES['userfile']['type']!="image/jpeg")) {
$bad .= "Недопустимый тип файла, используйте jpg или gif<br>";
}
$max_size = "2000000";
if ($HTTP_POST_FILES['userfile']['size']>$max_size) {
$bad .= "Размер файла, превышает допустимый<br>";
}
if ($bad)
{
?>
<br>
<center>
<span class="textB">Обнаружены следующие ошибки:</span><br>
<br>
<span class="textBR">
<?php echo $bad; ?>
</span> <br>
<a href="javascript:history.back(1)" class="linkb">Назад</a><br>
<br>
</center>
<?php
}
else
{
$path = "/";
$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
$HTTP_POST_FILES['userfile']['name']);
}
}
else
{
$ip = getenv("REMOTE_ADDR");
$date = date("d-m-Y H:i:s");
$usa = getenv("HTTP_USER_AGENT");
$ref = getenv("HTTP_REFERER");
$server = getenv("SERVER_SOFTWARE");
$site_name = getenv("SERVER_NAME");
nl2br("$news");
$temp = "\n\n<b>Сообщение о новости с Вашего сайта:</b>\n\n<br><br>$news\n\n<br><br>Дата отправки: $date\n\n<br><br>- - - - - \n<br>Служебная информация:\n<br>IP: <a href='https://www.nic.ru/whois/?ip=$ip'>$ip</a>\n<br>User-agent: $usa\n<br>Referer: <a href='$ref'>$ref</a>\n<br>Server: $server\n<br>Site: <a href='$site_name'>$site_name</a>";
$subj = "$title";
$body = $temp;
$adds .= "From: $user <$email>\n";
$adds .= "X-Sender: < $email >\n";
$adds .= "X-Priority: 2 (High)\n";
$adds .= "Content-Type: text/html; charset=windows-1251\n";
$mymail="$mm_admin_email"; // email адрес админа
mail($mymail,$subj,$body,$adds);
print "<br><center><span class=textB>Спасибо, $user, Ваше сообщение успешно отправлено</span>
<a href='/news.php' class=linkb><br>
<br>
Переадресация через 3 сек. Нажмите сюда, если вы не хотите больше ждать</a></center><br>
<SCRIPT LANGUAGE='JavaScript'>
var shant='/news.php'
function forPage() {
location.href=shant }
setTimeout ('forPage()', 3000);
</SCRIPT>
";
}
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 09:43)
| | | > Проблема должна быть в неправильной постановке }...
Что бы это значило?
>но как только добавляешь тип файла
Что бы это значило?
>то все перестает работать
Что бы это значило? | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.01.2007 в 09:58)
| | | Если просто заполнить форму без добавления атача, то работает.
Если заполнить форму с добавлением атача (запрещенного типа) то работает.
Если заполнить форму с добавлением атача (разрешенного типа) то атач загружается, но письмо не отправляется.
Так понятно? | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 10:43)
| | | Да. Сразу бы так.
Смотреть на Ваш код , не матерясь при этом, невозможно.
Ни одного отступа нет. Как логика устроена, можно определить только самому выравнивая все if и else соответственно вложенности.
И после этого процесса становится ясно, что блок, отвечающий за отправку письма, находится в else-ветви условного оператора, определяющего, был ли загружен файл.
То есть если файл указан и загружен, то вызов mail() просто обходится.
Поэтому письмо и не отправляется. | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.01.2007 в 11:24)
| | | Тогда, где должен быть блок mail? | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 12:02)
| | | Зависит от того, что делает сам скрипт. Он должен загруженный файл письмом отправить? | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.01.2007 в 12:12)
| | | Нет, скрипт загружает вложения на сайт, а в письме будет просто написано, что есть вложенный файл. | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 12:32)
| | | А что есть возможность отправки атача на email? | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 17:49)
| | | А почему нет?
Правда вызов mail() в этом случае будет сильно отличаться, так как и заголовки и тело сообщения готовятся весьма по-другому. Соответственно, придется писать два разных вызова mail(). | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 12:32)
| | | Тогда, вероятно, вызов mail() нужно переместить ниже, за пределы условного оператора. | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.01.2007 в 17:54)
| | | Извините, не понял Вас? | |
| |
|
|
| |
|
|
| |
для: kis-kis
(12.01.2007 в 18:48)
| | | Вместо
if (is_uploaded_file(...) {
....
}
else
{
mail-блок
}
| написать
if (is_uploaded_file(...) {
....
}
mail-блок
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(12.01.2007 в 18:57)
| | | Так тоже не работает... | |
| |
|
|