Столкнулся с такой задачей:
Есть страница-заявка, как анкета или регистрация. Несколько полей для ввода и пхп код, который отправляет информацию из этих полей на заданную почту.
Задача такая: поставить условие, если, например, в поле возраст указан возраст 18+ то вся информация отправляется на на эмейл info1@, а если 18- то на info2@
В данный момент код выглядит вот так:
Страница заявки:
<form action="anketa.php" method="post" onsubmit="return checkform(this);">
\\ html код самой заявки
<input type="submit" class="button3" lang="ru" value="Отправить" xml:lang="ru" />
Пхп файл anketa.php
<?php
$info = sprintf("%s %s
Возраст: %d лет",$_POST['name'],$_POST['name2'],$_POST['vozrast']);
$to = "info1@123456.ru";
$title = sprintf("Заявка");
mail($to,$title,$info);
header("Location: index.php");
?>
Плохо разбираюсь в пхп, поэтому расчитываю на Вашу помощь. Код напишу сам по подсказкам, но на данный момент плохо представляю, как это реализовать, и куда поставить это условие.
Заранее спасибо.
Спустя 9 минут, 53 секунды (20.09.2010 - 12:07) waldicom написал(а):
тогда подсказка
$возраст = (каст на инт)получить значение из формы;
$емыло = 'емыло1'; // для случая, если 18+
ежели($возраст < 18){
$емыло = 'емыло2'; // для случая, если меньше 18
}
отправь емыло();
Спустя 4 минуты, 29 секунд (20.09.2010 - 12:11) psynick написал(а):
Не осилил... 
Условие прописывать на html странице-анкете или в php-файле (anketa.php)?

Условие прописывать на html странице-анкете или в php-файле (anketa.php)?
Спустя 9 минут, 11 секунд (20.09.2010 - 12:20) Mizka написал(а):
$to = ($_POST['vozrast'] == '18+') ? 'info1@' : 'info2@';
Спустя 3 минуты, 11 секунд (20.09.2010 - 12:24) waldicom написал(а):
В php конечно, ведь именно он отсылает письма.
Возьмем Ваш код и немного подправи его.
Возьмем Ваш код и немного подправи его.
<?php
$info = sprintf("%s %s Возраст: %d лет",$_POST['name'],$_POST['name2'],$_POST['vozrast']);
$to = "info1@123456.ru";
$age=(int)$_POST['vozrast']; // входящий параметр "возраст"
if($age > 0){
if($age < 18){ // меньше 18 лет
$to = 'info2@123456.ru';
}
}else{
echo 'не родился? или кул-хацкер?';
}
$title = sprintf("Заявка");
mail($to,$title,$info);
header("Location: index.php");
?>
Спустя 1 час, 17 минут, 47 секунд (20.09.2010 - 13:41) psynick написал(а):
Спасибо, сейчас попробую сделать условие по нескольким параметрам для конкретной заявки.
Спустя 2 минуты, 35 секунд (20.09.2010 - 13:44) Ice написал(а):
$title = sprintf("Заявка");
А вот это в спринтф зачем? Достаточно просто
$title = 'Заявка';
Это вообще по-школярски
echo 'не родился? или кул-хацкер?';
Достаточно просто хедера. Да и условия в одно объединить
Спустя 19 минут, 37 секунд (20.09.2010 - 14:04) psynick написал(а):
$to = "info1@";
$age=(int)$_POST['vozrast'];
$summa=(int)$_POST['summa1'];
if($age > 0){
if($age >= 25 && $summa >=40000 && $summa <=80000){
$to = 'info2';
}
}else{
echo 'Укажите все данные!';
}
В итоге сделал так. Частично проверил - работает. Спасибо всем за помощь.
Спустя 2 минуты, 10 секунд (20.09.2010 - 14:06) Ice написал(а):
А почему нет верхней границы для возраста? А что будет, если я введу 123456789012 лет?
Хотя здесь нет базы, но такая строка вызовет ошибку переполнения поля.
А чтобы убрать age > 0, нужно всего лишь использовать возможности функции abs
Хотя здесь нет базы, но такая строка вызовет ошибку переполнения поля.
А чтобы убрать age > 0, нужно всего лишь использовать возможности функции abs
Спустя 1 час, 33 минуты, 23 секунды (20.09.2010 - 15:39) psynick написал(а):
Цитата |
использовать возможности функции abs |
Такого не знаю

Не думаю, что кто-то укажет такой длинный возраст, правильный возраст в интересах пользователя.
Спустя 4 минуты, 30 секунд (20.09.2010 - 15:44) waldicom написал(а):
Цитата (psynick @ 20.09.2010 - 14:39) | ||
Такого не знаю ![]() Не думаю, что кто-то укажет такой длинный возраст, правильный возраст в интересах пользователя. |
abs() там врядли будет гут, потому что от пользователя может прийти что угодно, например такой возраст: 12sd3'.