[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка Warning: Cannot modify header information
ninzzya
Доброго времени суток!
На PHP пишу меньше 2 недель, пишу небольшой проект. Столкнулся с проблемой, в одном из модулей выдается ошибка:
Warning: Cannot modify header information - headers already sent by (output started at C:\test\xampp\htdocs\v2\modules\mod_supplier\mod_supplier_edit.php:86) in C:\test\xampp\htdocs\v2\modules\mod_supplier\mod_supplier_edit.php on line 128

Аналогичные модули работают, погуглил тему, подходящего решения не нашел. Подскажите пожалуйста в чем проблема. Код модуля:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<?php
//Если пользователь не автаризован, то переход к авторизации
if (($_SESSION['authorized'] != 1) && ($_SESSION['admin'] != 1))
{
header("Location:". HOMEPAGE);
exit;
}
$supplier_id = null;
if (isset($_GET['id']))
$supplier_id = $_GET['id'];
if (isset($supplier_id))
$results = supplier::getById($supplier_id);
?>
<form action = "" method = "post" name = "supplier_edit" id = "form_edit" >
<
table>
<?php
if ($_SESSION['admin'] == 1)
{
switch ($_GET['supplier_reg'])
{
case "edit":
$txt_supplier_id = (int)$results->supplier_id;
$txt_supplier_name = htmlspecialchars($results->supplier_name);
$txt_supplier_contr_name = htmlspecialchars($results->supplier_contr_name);
$txt_user_id = (int)$results->user_id;
$txt_supplier_man = htmlspecialchars($results->supplier_man);
$txt_supplier_tel = htmlspecialchars($results->supplier_tel);
$txt_supplier_j_address= htmlspecialchars($results->supplier_j_address);
$txt_supplier_p_address= htmlspecialchars($results->supplier_p_address);
break;
case "add":
$txt_supplier_id = !empty($_POST['supplier_id']) ? $_POST['supplier_id'] : "";
$txt_supplier_name = !empty($_POST['supplier_name']) ? $_POST['supplier_name'] : "";
$txt_supplier_contr_name = !empty($_POST['supplier_contr_name']) ? $_POST['supplier_contr_name'] : "";
$txt_user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : "";
$txt_supplier_man = !empty($_POST['supplier_man']) ? $_POST['supplier_man'] : "";
$txt_supplier_tel = !empty($_POST['supplier_tel']) ? $_POST['supplier_tel'] : "";
$txt_supplier_j_address= !empty($_POST['supplier_j_address']) ? $_POST['supplier_j_address'] : "";
$txt_supplier_p_address= !empty($_POST['supplier_p_address']) ? $_POST['supplier_p_address'] : "";
break;
}
echo "
<tr>
<td><label for=
\"txt_supplier_id\">id</label></td>
<td><input type=
\"text\" name=\"supplier_id\" class\"inputbox\" alt=\"user_id_\" size=\"50\" value=\"". $txt_supplier_id ."\"/></td>
</tr>
<tr>
<td><label for=
\"user_login\">Поставщик</label></td>
<td><input type=
\"text\" name=\"supplier_name\" class\"inputbox\" alt=\"user_login_\" size=\"50\" value=\"". $txt_supplier_name ."\"/></td>
</tr>
<tr>
<td><label for=
\"txt_supplier_contr_name\">Название в договоре</label></td>
<td><input type=
\"text\" name=\"supplier_contr_name\" class=\"inputbox\" alt=\"user_name_\" size=\"50\" value=\"". $txt_supplier_contr_name ."\"/></td>
</tr>
<tr>
<td><label for=
\"user_id\">Менеджер</label></td>
<td><select name=
\"user_id\" size=\"1\">";
$manager_list = user::getManagers();
foreach ($manager_list['results'] as $val)
{
if ((int)$val->user_id == (int)$txt_user_id)
$selected = "selected = \"selected\"";
else
$selected = "";
echo "<option value = \"". $val->user_id ."\" ". $selected .">". $val->user_name ."</option>";
}
echo "
</select></td>
</tr>
<tr>
<td><label for=
\"supplier_man\">Контактное лицо</label></td>
<td><input type=
\"text\" name=\"supplier_man\" class=\"inputbox\" alt=\"user_tel_\" size=\"50\" value=\"". $txt_supplier_man ."\"/></td>
</tr>
<tr>
<td><label for=
\"supplier_tel\">Телефон</label></td>
<td><input type=
\"text\" name=\"supplier_tel\" class=\"inputbox\" alt=\"user_mail_\" size=\"50\" value=\"". $txt_supplier_tel ."\"/></td>
</tr>
<tr>
<td><label for=
\"supplier_j_address\">Юридический адрес</label></td>
<td><input type=
\"text\" name=\"supplier_j_address\" class=\"inputbox\" alt=\"user_edit_\" size=\"50\" value=\"". $txt_supplier_j_address ."\"/></td>
</tr>
<tr>
<td><label for=
\"supplier_p_address\">Почтовый/Физический адрес</label></td>
<td><input type=
\"text\" name=\"supplier_p_address\" class=\"inputbox\" alt=\"user_edit_\" size=\"50\" value=\"". $txt_supplier_p_address ."\"/></td>
</tr>"
;
}
?>
<tr>
<
td></td>
<
td align = "right"><br><input type = "submit" name = "send" class = "button" value = "Сохранить" /></td>
</
tr>
</
table>
</
form>
<?php
if (!empty($_POST['send']))
{
if ((!empty($_POST['supplier_id'])) && (!empty($_POST['supplier_name'])) && (!empty($_POST['supplier_contr_name'])) && (!empty($_POST['supplier_man'])) && (!empty($_POST['supplier_tel'])) && (!empty($_POST['supplier_j_address'])) && (!empty($_POST['supplier_p_address'])))
{
$err = 0;
switch ($_GET['supplier_reg'])
{
case "edit":
$id_change = supplier::changeId($supplier_id, $_POST['supplier_id']);
$results->supplier_id = (int)$_POST['supplier_id'];
$results->supplier_name = $_POST['supplier_name'];
$results->supplier_contr_name = $_POST['supplier_contr_name'];
$results->user_id = (int)$_POST['user_id'];
$results->supplier_man = $_POST['supplier_man'];
$results->supplier_tel = $_POST['supplier_tel'];
$results->supplier_j_address = $_POST['supplier_j_address'];
$results->supplier_p_address = $_POST['supplier_p_address'];
$results->update();
break;
case "add":
$new_supplier = new supplier($_POST);
$new_supplier->insert();
break;
}
}

else
{
$err = 1;
echo "<p class=\"error\">Ошибка ввода данных!</p>";
}
if ($err == 0)
{
header("Location:./?page=modules/mod_supplier/mod_suppliers.php");
exit;
}
}

?>





Спустя 2 минуты, 54 секунды (9.02.2012 - 16:40) inpost написал(а):
header() - заголовок. Выдавать необходимо ДО вывода любой информации на экран.

Спустя 44 секунды (9.02.2012 - 16:40) ninzzya написал(а):
Подскажите тогда, как сделать переход на страницу, после обновления данных?

Спустя 1 минута, 31 секунда (9.02.2012 - 16:42) ninzzya написал(а):
Извини затупил, спасибо за подсказку

Спустя 5 секунд (9.02.2012 - 16:42) inpost написал(а):
поменять местами логику и вывод.
Сверху обработка данных, снизу вывод. Переадресация будет сверху в районе обработки данных!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.