Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с "header( 'Location:...)"
 
 автор: davidoff_72   (05.05.2015 в 13:28)   письмо автору
 
 

Выдает вот такую ошибку:
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'], 0200)."</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(hostuserpassword) or die("MySQL сервер недоступен!".mysql_error()); 
mysql_select_db(db) or die("Нет соединения с БД".mysql_error()); 
?>

  Ответить  
 
 автор: KPETuH   (05.05.2015 в 14:06)   письмо автору
 
   для: davidoff_72   (05.05.2015 в 13:28)
 

http://php.net/manual/ru/function.header.php
Внимательно читаем 2 абзац в описании. Соответственно либо размещайте код с переадресацией до вывода чего либо в браузер, либо использует другой метод переадресации.

  Ответить  
 
 автор: davidoff_72   (05.05.2015 в 15:18)   письмо автору
 
   для: KPETuH   (05.05.2015 в 14:06)
 

Спасибо. мануал я читал.
А какие есть ещё методы переадресации? можете дать ссылку?
Если я ставлю header выше html -кода, то страница не выводится в браузер воообще. Если стоит там где сейчас, то всё выводится но с ошибкой после попытки удаления.
Спасибо.

  Ответить  
 
 автор: KPETuH   (05.05.2015 в 15:38)   письмо автору
 
   для: davidoff_72   (05.05.2015 в 15:18)
 

http://softtime.ru/javascript/redirect.php

  Ответить  
 
 автор: davidoff_72   (05.05.2015 в 19:40)   письмо автору
 
   для: KPETuH   (05.05.2015 в 15:38)
 

Спасибо. Попробовал. Работает! Теперь у меня есть два варианта решения проблемы, каждый на свой случай. Спасибо.

  Ответить  
 
 автор: Trianon   (05.05.2015 в 16:51)   письмо автору
 
   для: 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а нет) производит вот эта строка
echo '<h2>Список</h2>'; 


Зачем Вы начинаете рисовать страницу, если еще не разобрались с исполнением предыдущей?

  Ответить  
 
 автор: davidoff_72   (05.05.2015 в 17:06)   письмо автору
 
   для: Trianon   (05.05.2015 в 16:51)
 

Разобрался! Перемесил фрагмент над первым выводом в браузер и заработало! Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования