Файлът повреден ли е?

bobbykokala

Registered
Здравейте!
Днес забелязах много странен проблем с една страница. До онзи ден си работеше правилно, а файлът не е пипан поне месец след като е направен да функционира нормално.
Търся грешки, но нищо не намирам. Когато влезна в тази страница виждам само хедъра, а съдържанието го няма.

http://paste2.org/p/1610502
От къде може да е проблема при положение, че файлът не е едитван?
 
няколко препоръки

- инклуване
правиго така както е по пхп спецификация:

PHP:
 inclide('directory/file.php');

как то си го написъл съкратено ако не са включени едни настройки на php няма да работи.

- Стойности в arrway
Винаги слагаи еденични кавички тоест от [stoinost] да стане ['stoinost'] много са капризни към кавиките нестаботват ако има интервали или не секи път приема цифрите като стринг.



PHP:
<?php include ('include/header.php');
        $post_id = (int)$_GET['tracks'];
       
                if(!isset($id) || !is_numeric($id) || $id<1)
                {
                header('Location: index');
                exit();
                }
               
        $result = mysql_query("SELECT * FROM tracks WHERE id='$id'");
        $kozunak = mysql_fetch_assoc($result);
       
       
        if(isset($_POST['editmp3']))
        {
                $trackname = $_POST['trackname'];
                $preview = $_POST['preview'];
                $download = $_POST['download'];
                $category = $_POST['category'];
                $q = "UPDATE tracks SET trackname='$trackname', category='$category', preview='$preview', download='$download' WHERE id='$id'";
                mysql_query($q) or die (mysql_error());
                echo'<div id="text3">Вие успешно редактирахте файла <b>'.$kozunak['trackname'].'</b>!
                <a href="index">Обратно</a></div>';
        }
?>
 
<title> Редакция: <? echo $kozunak['trackname']; ?> - House of DJ's </title>
 
 
<?php if(!isset($_POST['editmp3'])) ?>
        <table style="margin: 30px 20px 0 20px;">
                <form action ="" method="post">
                <tr>
                        <td>Trackname:</td> <td><input type="text" name="trackname" value="<?php echo $kozunak['trackname']; ?>" size="100" /></td>
                </tr>
                <tr>
                        <td>Категория:</td> <td><select name="category">
                        <?php
                        $q = mysql_query("SELECT * FROM categories") or die (mysql_error());
                        while($c = mysql_fetch_assoc($q))
                        {
                                if($kozunak['category'] == $c['cat_id'])
                                {
                                print '<option value="'.$c['cat_id'].'" selected="selected">'.$c['catname']."</option>\n";
                                }
                                else
                                {
                                print '<option value="'.$c['cat_id'].'">'.$c['catname']."</option>\n";
                                }
                        }
                        ?>
                        </select></td>
                </tr>
                <tr>
                        <td>Download Link:</td> <td><input type="text" name="download" value="<?php echo $kozunak['download']; ?>" size="100" /></td>
                </tr>
                <tr>
                        <th>Zippy Player</th>
                        <td><textarea name="preview" style="width:630px !important; height:100px !important;"><?php echo $kozunak['preview']; ?></textarea></td>
                </tr>
        </table>
                        <center>
                        <input type="submit" name="editmp3" value="Редактирай" />
                        </center>
                </form>
 
        <?php  include ('include/footer.php'); ?>


Провери дали някой инклуд не липсва или да има грешка която не ти враща съобщение.
 
Зависи какво има в header.php.Ако имаш например други header-и, сесии и етц може да сложиш един буфер за да взима съдържанието от 2рия файл. http://www.php.net/manual/en/ref.outcontrol.php

Можеш да пуснеш един print_r(ob_list_handlers());
 
Ако имаше нещо в хедър.пхп нямаше ли да има ефект и над другите страници?

с това print_r(ob_list_handlers()); излезна Array ( ) какво значи?
 
stonybg каза:
няколко препоръки

- инклуване
правиго така както е по пхп спецификация:

PHP:
 inclide('directory/file.php');

как то си го написъл съкратено ако не са включени едни настройки на php няма да работи.

- Стойности в arrway
Винаги слагаи еденични кавички тоест от [stoinost] да стане ['stoinost'] много са капризни към кавиките нестаботват ако има интервали или не секи път приема цифрите като стринг.

....................................................................

Прашилно include-ване е
PHP:
include "file";
,
PHP:
include 'file';
,
PHP:
include ('file')
,
PHP:
include ("file")
няма значение за скобите.

Когато имаме [stoinost] то, stoinost трябва да е дефинирана константа. Прашилно е да е оградена с кавички. По препоръки ' защото се обработват по-бързо от пхп. Когато са " търси дали няма променлива в тъх.
Когато имаме [1] правилно е да е без кавички, все пак е int стоиност зададена за ключ на масива.



PHP:
<?php include ('include/header.php');
        $post_id = (int)$_GET['tracks'];
       
                if(!isset($id) || !is_numeric($id) || $id<1)
                {
                header('Location: index');
                exit();
                }
               
        $result = mysql_query("SELECT * FROM tracks WHERE id='$id'");
        $kozunak = mysql_fetch_assoc($result);
       
       
        if(isset($_POST['editmp3']))
        {
                $trackname = $_POST['trackname'];
                $preview = $_POST['preview'];
                $download = $_POST['download'];
                $category = $_POST['category'];
                $q = "UPDATE tracks SET trackname='$trackname', category='$category', preview='$preview', download='$download' WHERE id='$id'";
                mysql_query($q) or die (mysql_error());
                echo'<div id="text3">Вие успешно редактирахте файла <b>'.$kozunak['trackname'].'</b>!
                <a href="index">Обратно</a></div>';
        }
?>
 
<title> Редакция: <? echo $kozunak['trackname']; ?> - House of DJ's </title>
 
 
<?php if(!isset($_POST['editmp3'])) ?>
        <table style="margin: 30px 20px 0 20px;">
                <form action ="" method="post">
                <tr>
                        <td>Trackname:</td> <td><input type="text" name="trackname" value="<?php echo $kozunak['trackname']; ?>" size="100" /></td>
                </tr>
                <tr>
                        <td>Категория:</td> <td><select name="category">
                        <?php
                        $q = mysql_query("SELECT * FROM categories") or die (mysql_error());
                        while($c = mysql_fetch_assoc($q))
                        {
                                if($kozunak['category'] == $c['cat_id'])
                                {
                                print '<option value="'.$c['cat_id'].'" selected="selected">'.$c['catname']."</option>\n";
                                }
                                else
                                {
                                print '<option value="'.$c['cat_id'].'">'.$c['catname']."</option>\n";
                                }
                        }
                        ?>
                        </select></td>
                </tr>
                <tr>
                        <td>Download Link:</td> <td><input type="text" name="download" value="<?php echo $kozunak['download']; ?>" size="100" /></td>
                </tr>
                <tr>
                        <th>Zippy Player</th>
                        <td><textarea name="preview" style="width:630px !important; height:100px !important;"><?php echo $kozunak['preview']; ?></textarea></td>
                </tr>
        </table>
                        <center>
                        <input type="submit" name="editmp3" value="Редактирай" />
                        </center>
                </form>
 
        <?php  include ('include/footer.php'); ?>

PHP:
$post_id = (int)$_GET['tracks'];
       
 if(!isset($id) || !is_numeric($id) || $id<1)

тук не би ли трябвали да е
PHP:
 if(!isset($post_id) || !is_numeric($post_id) || $post_id<1)
 
Аз успях да го оправя.
$id = (int)$_GET['id'];
if(!isset($id) || !is_numeric($id) || $id<1)
{
header('Location: index');
exit();
}

Незнам просто как досега всичко си работеше нормално и изведнъж се прояви проблемът. Кода е бил толкова омазан, че няма накъде :D
 

Back
Горе