[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите: не работает header()
eldarNew
Здравствуйте. Скажите пожалуйста, что не так в моем коде? При выполнении данной скрипта, он перенаправляет меня на пустую страницу, хотя должен был на article.php?id=...

<?php

include_once('view.php');
include_once('model.php');
include_once('startup.php');

startup();

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['save']))
{
$id = $_GET['id'];
$title = $_POST['title'];
$content = $_POST['content'];
if(articles_edit($id, $title, $content))
{
header('Location:article.php?id='.$_GET['id']);
die();
}
}


if(isset($_POST['delete']))
{
if(articles_delete($_GET['id']))
{
header('Location:editor.php');
die();
}
}
}

else
{
if(!isset($_GET['id'])) die('Не было передано ID редактируемой статьи');

$id_article = $_GET['id'];
$article = article_get($id_article);
}

//Подключаем шаблон меню
$menu = view_include('theme/v_menu.php');

//Подключаем внутренний шаблон
$content = view_include('theme/v_edit.php', array('article' => $article));

//Подключаем внешний шаблон
$page = view_include('theme/v_main.php', array('menu' => $menu, 'title' => $title, 'content' => $content));

echo $page;




кусок из model.php

//
// Изменить статью
//

function articles_edit($id_article, $title, $content)
{
$query = "UPDATE pro_articles SET title='$title', content='$content' WHERE id_article='$id_article'";
$result = mysql_query($query);

if(!$return) die(mysql_error());

return true;
}

//
// Удалить статью
//

function articles_delete($id_article)
{
$query = "DELETE FROM pro_articles WHERE id_article='$id_article'";
$result = mysql_query($query);

if(!$return) die(mysql_error());

return true;
}




Спустя 33 минуты, 42 секунды (14.09.2011 - 23:45) caballero написал(а):
кидать весь код с не относящимися к сути вопроса запросами к БД совершенно ни к чему

попробуй напрямую ввести article.php?id=<известный номер>
возможно надо написать в коде /article.php
или как то так $_SERVER['HTTP_HOST'] . '/article.php

но скорее у тебя $_GET['id'] пустой - ты ж форму отправил как POST

используй $_REQUEST['id'] - не промахнешся

Спустя 12 минут, 33 секунды (14.09.2011 - 23:58) eldarNew написал(а):
$_GET['id'] не пустой. Если я комментирую вот эту строку:

if(articles_edit($id, $title, $content))

то header() работает. А с ней не хочет. Вот я и не могу понять, что ему не нравится в методе articles_edit()?

Спустя 59 минут, 34 секунды (15.09.2011 - 00:58) caballero написал(а):
у тебя функция либо возвращает true либо умирает

то есть условие в if(articles_edit($id, $title, $content)) не имет смысла

а хедер не работает потому что внутри функции где то ошибка


такие вещи вообще то дебагером надо проходить по строкам

Спустя 27 минут, 39 секунд (15.09.2011 - 01:25) inpost написал(а):
mysql_query может у тебя быть неправильным. Напиши:
mysql_query($query) or die(mysql_error());

Ты делаешь на проверку if(!$result), что этим ты хочешь проверить? Изменены ли были записи? Изменения записей фиксируется так: mysql_affected_rows, если =1, значит запись была изменена.

Спустя 4 минуты, 4 секунды (15.09.2011 - 01:29) inpost написал(а):
Возможно мой предыдущий коммент пустой. Он переправляет на пустую страницу, на какую? Что в адресной строке записано? Какая страница?

Спустя 24 минуты, 59 секунд (15.09.2011 - 01:54) caballero написал(а):
Цитата
Он переправляет на пустую страницу, на какую? Что в адресной строке записано? Какая страница?


Скорее всего страница умирает через die не успев ничего вывести

Вообще растыкать die по коду исключительно хреновый метод
нужно вывести ошибку выведи ее черз переменную и дайц сайту нормально прорисоватся а не прибивай его в середине кода

Спустя 6 минут, 58 секунд (15.09.2011 - 02:01) inpost написал(а):
caballero
ну так вместе с адресной строкой можно определить, либо из-за die скрипт умер на этой странице, либо перешел на левую, вдруг банально путь неправильно указал в header smile.gif
Быстрый ответ:

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