|
|
|
| Выдает вот такую ошибку:
Warning: Cannot modify header information - headers already sent by (output started at C:\OpenServer\domains\localhost\proba\checkbox.php:4) in C:\OpenServer\domains\localhost\proba\checkbox.php on line 27
Поменял кодировку на utf-8 ,без BOM - не помогает.
Может надо зайти в настройки php и там сделать правку? Помогите! Спасибо
код checkbox.php:
<?php
include ("connect.php");
mysql_query('SET NAMES utf8');
echo '<h2>Список</h2>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
$query = "SELECT id, rezum_txt FROM kandidat WHERE 1";
$res = mysql_query( $query );
echo '<table border="1" cellspacing="0" >';;
echo '<tr><th>ID</th><th>Наименование</th><th>Удл.</th></tr>';
while ( $item = mysql_fetch_array( $res ) )
{
echo "<tr>";
echo "<td>".$item['id']."</td>";
echo "<td>".substr($item['rezum_txt'], 0, 200)."</td>";
echo '<td><input type="checkbox" name="item[]" value="'.$item['id'].'" /></td>';
echo "</tr>";
}
echo '</table>';
echo '<input type="submit" name="submitForm" value="Удалить отмеченные" />';
echo '</form>';
if ( isset ( $_POST['item'] ) )
{
$ids = implode( ',', $_POST['item'] );
$query = 'DELETE FROM kandidat WHERE id IN ('.$ids.')';
mysql_query( $query );
header( 'Location: '.$_SERVER['PHP_SELF'] );
}
?>
<meta charset="utf-8">
<a href="index.php">Главная</a>
|
connect.php
<?php
define(host, "localhost");
define(user, "root");
define(password, "");
define(db, "dosvid");
mysql_connect(host, user, password) or die("MySQL сервер недоступен!".mysql_error());
mysql_select_db(db) or die("Нет соединения с БД".mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(05.05.2015 в 13:28)
| | http://php.net/manual/ru/function.header.php
Внимательно читаем 2 абзац в описании. Соответственно либо размещайте код с переадресацией до вывода чего либо в браузер, либо использует другой метод переадресации. | |
|
|
|
|
|
|
|
для: KPETuH
(05.05.2015 в 14:06)
| | Спасибо. мануал я читал.
А какие есть ещё методы переадресации? можете дать ссылку?
Если я ставлю header выше html -кода, то страница не выводится в браузер воообще. Если стоит там где сейчас, то всё выводится но с ошибкой после попытки удаления.
Спасибо. | |
|
|
|
|
|
|
|
|
для: KPETuH
(05.05.2015 в 15:38)
| | Спасибо. Попробовал. Работает! Теперь у меня есть два варианта решения проблемы, каждый на свой случай. Спасибо. | |
|
|
|
|
|
|
|
для: davidoff_72
(05.05.2015 в 13:28)
| | вот этот фрагмент - исполнения и редиректа ....
if ( isset ( $_POST['item'] ) )
{
$ids = implode( ',', $_POST['item'] );
$query = 'DELETE FROM kandidat WHERE id IN ('.$ids.')';
mysql_query( $query );
header( 'Location: '.$_SERVER['PHP_SELF'] );
}
|
... - он должен быть исполнен (не то что размещен, а именно исполнен!) раньше первого вывода.
Первым вывод у вас (если BOMа нет) производит вот эта строка
Зачем Вы начинаете рисовать страницу, если еще не разобрались с исполнением предыдущей? | |
|
|
|
|
|
|
|
для: Trianon
(05.05.2015 в 16:51)
| | Разобрался! Перемесил фрагмент над первым выводом в браузер и заработало! Спасибо! | |
|
|
|