[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с кодом
Елена
Warning: Cannot modify header information - headers already sent by на 12 строчке ( header( 'Refresh: 6; url=http://localhost/menu.php' ); )

<?php
include 'config.php';
$id = $_REQUEST['id'];
If (empty($id)) {
$result=mysql_query("DELETE FROM post WHERE ID=".$id) or die(mysql_error());
// закрываем соединение с сервером базы данных
mysql_close($connect_to_db);
echo '<center>Через 5 секунд вы будете автоматически перенаправленны на главную страницу</center>';
header( 'Refresh: 6; url=http://localhost/' );
}else{
echo '<center>Ошибка, не выбранна статья для удаления</center>';
header( 'Refresh: 6; url=http://localhost/menu.php' );
}
?>
sz47181
Елена Перед хедером нельзя делать echo.
FatCat
Цитата (Елена @ 6.10.2014 - 17:00)
headers already sent

У нас десятки, а может быть даже сотни одинаковых тем с таким вопросом. Поиск по заголовкам тем найдёт.
Но проблема не только с редиректом, проблема, похоже и с логикой скрипта:
Цитата (Елена @ 6.10.2014 - 17:00)
If (empty($id)) {
$result=mysql_query("DELETE FROM post WHERE ID=".$id) or die(mysql_error());

Читаю вслух: если значение переменной $id пустое, то удалить строку с этим (пустым) значением.

_____________
Бесплатному сыру в дырки не заглядывают...
Елена
Цитата (FatCat @ 6.10.2014 - 18:13)
Цитата (Елена @ 6.10.2014 - 17:00)
headers already sent

У нас десятки, а может быть даже сотни одинаковых тем с таким вопросом. Поиск по заголовкам тем найдёт.
Но проблема не только с редиректом, проблема, похоже и с логикой скрипта:
Цитата (Елена @ 6.10.2014 - 17:00)
If (empty($id)) {
$result=mysql_query("DELETE FROM post WHERE ID=".$id) or die(mysql_error());

Читаю вслух: если значение переменной $id пустое, то удалить строку с этим (пустым) значением.

Спасибо, сейчас как раз исправлю
FatCat
Цитата (Елена @ 6.10.2014 - 17:57)
исправлю

Я бы исправил так:

1. Вместо
$id = $_REQUEST['id'];
$id = intval($_REQUEST['id']);



2. Вместо
If (empty($id)) {
If ($id) {



Заодно и какая-никакая защита БД от инъекции.

_____________
Бесплатному сыру в дырки не заглядывают...
Елена
Спасибо, исправилa.
Елена
Полазила по форуму, но не смогла найти решение своей проблемы, помогите пожалуйста. Cannot modify header information - headers already sent на 8 строчки.
<?php
include 'config.php';
$id = $id = intval($_REQUEST['id']);
If ($id) {
$result=mysql_query("DELETE FROM post WHERE ID=".$id) or die(mysql_error());
// закрываем соединение с сервером базы данных
mysql_close($connect_to_db);
header( 'Refresh: 6; url=http://localhost/' );
}else{
header( 'Refresh: 6; url=http://localhost/error/delpage.php' );
}
?>
FatCat
Или перед <?php есть символы (пробел или еще что), или в файле config.php где-то есть вывод в браузер.

_____________
Бесплатному сыру в дырки не заглядывают...
inpost
Елена
Очень помогает код ошибки. А главное, там в скобках пишут где именно начался ВЫВОД. Если строчка 1, то это, скорее всего, UTF-8 with BOM, надо сохранить without. А может ещё что.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Елена
Цитата (FatCat @ 7.10.2014 - 23:24)
Или перед <?php есть символы (пробел или еще что), или в файле config.php где-то есть вывод в браузер.

Перед <?php ни каких пробелов и символов нет.
Вот файл config.php

<?php
$db_host = 'localhost';
$db_name = 'name';
$db_username = 'user';
$db_password = 'pass';

// соединяемся с сервером базы данных
$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Не удалось подключиться: " . mysql_error());

// подключаемся к базе данных
mysql_select_db($db_name, $connect_to_db)
or die("Не удалось выбрать БД: " . mysql_error());
?>
sz47181
Елена Посмотрите файл в какой кодировке сохранен.
Елена
Спасибо все решила, наконец-то.
Быстрый ответ:

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