imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 23.02.2009, 12:53     # 1
Nowal
Member
 
Аватар для Nowal
 
Регистрация: 28.04.2002
Сообщения: 375

Nowal Реально крут(а)Nowal Реально крут(а)Nowal Реально крут(а)Nowal Реально крут(а)
Где ошибка в скрипте "отправка мыла на ПХП"

Здраствуйте.
Закинул на хостинг скрипт (на ПХП) отправки сообщений на эл. почту. но когда нажимаю кнопку "отправить" мне выводит "Ошибка ! Скрипту не были переданы параметры !" (не зависимо от того ввожу я сообщение которое хочу отправить или нет)
Подскажите где допущена ошибка в коде?

mail.php
Код:
<html> 
<body> 
<td>
<form method=post action=send.php>
<center><b>Ваше имя<br><input type=text name=name size=30><p>
Ваш e-mail<br><input type=text name=email size=30><p>
Ваше сообщение<br><textarea name=mess rows=10 cols=50></textarea><p>
<input type=submit value="Отправить сообщение">
</form>
</td> 
</body> 
</html>
send.php
Код:
<?php
if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$name = "не указано";
}
if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Не указан e-mail !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$email = "не указано";
}
if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "<center><b>Сообщение не написано !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$mess = "не указано";
}
$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "вася пупкин@email.**";  
$subject = "Сообщение с вашего интернет-сайта";
$message = "Имя пославшего:$name::::::::::Электронный адрес:$email::::::::::Сообщение:$mess:::::::::IP-адрес:$REMOTE_ADDR";
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения<br><a href=index.php>Нажмите</a>, что бы вернуться на главную...>";
exit;
?>
Заранее спасибо!
Nowal вне форума  
Старый 23.02.2009, 13:36     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
гугли register_globals
RaZEr вне форума  
Старый 23.02.2009, 14:28     # 3
Nowal
Member
 
Аватар для Nowal
 
Регистрация: 28.04.2002
Сообщения: 375

Nowal Реально крут(а)Nowal Реально крут(а)Nowal Реально крут(а)Nowal Реально крут(а)
Помогло это:

foreach($HTTP_POST_VARS as $key => $value)
eval("$".$key."='".$value."';");

вопрос теперь такой .. а это надёжно?
Nowal вне форума  
Старый 23.02.2009, 22:11     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
eval - это прекрасно. пользуйся им как можно чаще
RaZEr вне форума  
Старый 27.02.2009, 15:06     # 5
Gregorius
Newbie
 
Регистрация: 09.03.2004
Адрес: Кишинев
Сообщения: 20

Gregorius Известность не заставит себя ждать
Цитата:
Сообщение от RaZEr Посмотреть сообщение
eval - это прекрасно. пользуйся им как можно чаще
Видимо это юмор такой

Nowal, этот вариант уязвим. Попробуй, например, в форме отправки вместо строки:
Ваш e-mail<br><input type=text name=email size=30><p>
вставить строку
Ваш e-mail<br><input type=text name=email=1;phpinfo();$a size=30><p>

Правильнее, я думаю, сделать так:

$name = $_POST['name'];
$email = $_POST['email'];
$mess = $_POST['mess'];
Gregorius вне форума  
Старый 02.10.2009, 21:14     # 6
AlexGluker
Guest
 
Сообщения: n/a

про передачу значений переменных отписал Gregorius

отправка почты
$to='Адрес получателя';
$subject='Тема письма';
$subject=convert_cyr_string($subject, "w","k");
$message='Собсно само письмо';
$message=convert_cyr_string($message, "w","k")
$subject=base64_encode($subject);
$subject='=?koi8-r?B?'.$subject.'?=';
$headers="Content-type: text/plain; charset=koi8-r";
$headers.="\n".'From: '.$rootmail."\n".'X-Mailer: ';
mail($to, $subject, $message, $headers) or die;

пример проверен, работает
 


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

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:10.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.