Помогите с php скриптом

интернет Компьютеры программирование php сервер

Есть небольшая проблема, есть 2 php файла, в 1-ом файле есть форма(данные передаются action = файл2.php method = post) со списком в котором мы выбираем(name = list) значение, во втором файле мы должны это значение принять в одной функции(function list()).
Делал так:
<?php
$list = $_POST("list");
echo $list(тут выводится и видно что удачно подключился)
function forshow(){
?>
//Некая форма которая нужна для другого
<?
}
//$list = $_POST("list");
//echo $list(тут тоже глухота)

function list(){
//$list = $_POST("list");
//echo $list(проверям и тут уже не выводится)

function list(){
global $list //в итоге тут пустота
}
}
?>

Что я делаю не правильно? Не как не могу понять оО

Примечание:
Это я тут опечатался, в коде $_POST[' ']

Примечание:
search.php
-------
<!doctype html>
<html>
<head>
<title>Поиск</title>
</head>
<body>
<form action="emeil.php" method="post">
<div align="center">
<?php
require_once "bd.php";
$submit = $_POST['submit']; //Кнопка - форма
$tel = $_POST['search']; // Поиск - форма
if ($submit){
$res = mysql_query("SELECT * FROM bd WHERE telephone LIKE '%$tel%' "); //Отбор нужных значении
$list = '<option value="0">Не выбрано</option> '; //Раскрывающий список
while($row = mysql_fetch_assoc($res)) {
$list .= '<option value="'.$row["telephone"].'">'.$row['telephone'].'</option>';
value="'.$row["telephone"].'">'.$row['telephone'].'<br /> </td> </tr></table>' ;
}
$select = '<select name="listtel">'.$list.'</select>'; ----------НУЖНО ПЕРЕДАТЬ listtel

echo $select;
}
?>
<br />
<input type="submit" value="Выбрать" name="ok">
</div>
</form>

</body>
</html>
---------------------
emeil.php
_------------------
<!doctype html>
<html>
<head>
<title>Почта</title>
</head>
<body>
<?php
echo $_POST["listtel"]; //ТУТ ВСЕ ОК, ВИДНО ЧТО ЗНАЧЕНИЯ ПОЛУЧИЛ И ВСЕ ПРАВИЛЬНО

function show_form()
{

?>
<form action="" method= post>
<div align="center">
<br />Имя*<br />
<input type="text" name="name" size="40">
<br />Контактный телефон<br />
<input type="text" name="tel" size="40">
<br />Контактный email*<br />
<input type="text" name="email" size="40">
<br />
<br /><input type="submit" value="Отправить" name="yes">
</div>
</form>
* Помечены поля, которые необходимо заполнить
<?php
}
function complete_mail() {
require_once "bd.php";

echo $_POST["listtel"]; ////ТУТ ВСЕ, ПОТЕРЯЛ КУДА-ТО ЗНАЧЕНИЯ

$_POST['title'] = substr(htmlspecialchars(trim(Заказ)), 0, 1000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
echo $list;
// создаем наше сообщение
$mess = '
Номер телефона который заказали:'.$_POST['listtel'].' -----------------ВОТ ТУТ ДОЛЖЕН ПРИКРЕПИТСЯ К ПИСЬМУ НО ОН НЕ ХОЧЕТ
Имя отправителя:'.$_POST['name'].'
Контактный телефон:'.$_POST['tel'].'
Контактный email:'.$_POST['email'].'';

$to = '[email protected]'; // $to - кому отправляем
$from='[email protected]'; // $from - от кого

mail($to, $_POST['title'], $mess, "From:".$from);
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}



if (!empty($_POST['yes'])) complete_mail();
else show_form();

?>

</body>
</html>

Примечание:
Везде нормально, кроме "Внутри тела complete_mail()"

Примечание:
Не в какую не хочет...

Примечание:
БД там играет только для будущего sql запроса, удаление из таблицы...
А так, с БД этот скрипт не как более не связан

Примечание:
Все значения берутся из форм

Примечание:
Что-то я не понял))
Можете привести пример?)

Примечание:
Без результатов, так-же

Примечание:
У меня то, значения берутся из другого файла, так-то у меня тоже нормально работает(Почта,Тел и др норм передает), а именно то значение которое мне тоже важно, не передает или не хочет ))
$_POST["listtel"] -- Это из другого файла

Примечание:
Вывелось такое чудо:
$_POST[$_POST[Спасибо! Ваше письмо отправлено.
В итоге все равно значение "isttel" потерял
Ответы:
$_POST - это массив и обращение к элементу массива должно выполняться через квадратные скобки "[]".
... = $_POST['...']
Вообще $_POST - это один из суперглобальных массивов и должен быть доступен везде. Можете разместить полный листинг скриптов отправки параметров методом POST и получения этих параметров?
Попробуйте проследить за содержимым массива $_POST:
1. До вызова функции complete_mail()
2. Внутри тела функции complete_mail()
3. После вызова complete_mail()
А в bd.php нет никакой фильтрации POST данных?
а просто при вызове функции передать как параметр? complete_mail($_POST) и  внутри функции как массивом...
При вызове if (!empty($_POST['yes'])) complete_mail($_POST);
<?php
function show_form()
{
?>
   <form action="" method= post>
       <div align="center">
            <br />Имя*<br />
               <input type="text" name="name" size="40">
            <br />Контактный телефон<br />
                <input type="text" name="tel" size="40">
            <br />Контактный email*<br />
               <input type="text" name="email" size="40">
             <br />
               <input type="submit" value="Отправить" name="yes">
       </div>
   </form>
у вас две формы, следовательно ваш код сабмитит два раза. во первом вы отправляете номер телефона... далее открывается форма вторая форма с инпутами...
вы вызываетет функцию complete_mail() только когда отправляется вторая форма... получается вы должны сделать еще один инпут во второй форме
<input type="hidden" name="listtel"  value="$_POST["listtel"]">  
хе хе  
сори ошибся надо было вот так
<input type="hidden" name="listtel"  value="<?php echo $_POST["listtel"] ?>">


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.