oguzhan306 adlı üyeden alıntı: mesajı görüntüle
Merhaba,

Birkaç gündür çözemediğim bir problemim var, neredeyse denemediğim hiç bir yol kalmadı. Umarım çözüm buluruz.

<?php
error_reporting(E_ALL & ~E_NOTICE);
require_once('header.php');
require_once(basename(($_GET['page']!='' ? $_GET['page'] : 'home') . '.php'));
require_once('footer.php');
?>
şeklinde bir index sayfam var.

menu.php dosyamdaki linklere ?page=post&id=6 gibi ulaşıyorum (id ler db den geliyor vs)

buraya kadar bir sorun yoktu ancak ne zaman pagination a ihtiyaç duydum sorunlar baş gösterdi.

?page=category&kategori_adi=Deneme

şeklinde Deneme kategorime girdiğimde

$page = "?page=category&kategori_adi=$kategori_adi";
$limit = "10"; // Kaç kayıtta bir sayfalama yapılacak ?
$sayfa = $_GET['paged'];

if(empty($_GET['paged'])) { $paged ="1"; }

if(!is_numeric($_GET['paged'])) { header("location:$page&paged=1"); }
şeklinde bir başlangıcım var. mantık olarak paged değerim gelmediyse veya sayısal değilse 1 e eşitleyip header'da verdiğim yere gitmesini istiyorum.

ama sonuç pek öyle olmuyor

Warning: Cannot modify header information - headers already sent by (output started at

şeklinde bir hata veriyor.

index sayfamı
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
require_once('header.php');
require_once(basename(($_GET['page']!='' ? $_GET['page'] : 'home') . '.php'));
require_once('footer.php');
?>
şeklinde düzenleyip session_start koyduğumda ve sayfalama işlemi yapmaya başlamadan önce session_destroy(); eklediğimde bu kez

Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in

Warning: Cannot modify header information - headers already sent by (output started at

hatalarını almaya başladım ve tıkandım

dosyalarım utf-8 bomsuz (bazı yerlerde bu şekilde çözülebileceği yazıyordu ama çözüm olmadı)

Yardım aranıyorum
Verdiği hatanın nedeni header fonksiyonundan önce herhangi bir çıktının olmaması gerektiğindendir.

error_reporting(E_ALL & ~E_NOTICE); ile hataları açıyorsunuz herhangi bir noksanda beni uyar diye belirtmişsiniz.

$sayfa = $_GET['paged']; 

if(empty($_GET['paged'])) { $paged ="1"; }

bu kısımda $_GET['paged'] değişkeni tanımlanmadan geldiği için hatalarda açık olduğundan bu değişken tanımlı değil uyarısını vermekte sen bunu yönlendirmeden dolayı farketmiyor olabilirsin.

Çözüm için iki yöntem var.

1- error_reporting(E_ALL & ~E_NOTICE); kısmını error_reporting(0); olarak düzenlersen.

2-

$sayfa = $_GET['paged']; 

if(empty($_GET['paged'])) { $paged ="1"; }
kısmını

if ( isset($_GET['paged']) && $_GET['paged'] ){
$sayfa = $_GET['paged'];
} else {
$sayfa = 1;
}
olarak değiştirirsen sorun düzelecektir