Buk adlı üyeden alıntı: mesajı görüntüle
Merhaba arkadaşlar,

Aslında sorunum basit bir sorun gibi duruyor ama bir türlü içinden çıkamadım.

//index.php

$row = random_user_id();
$random_id = $row['user_id'];

$view = empty($_GET['view']) ? 'home' : $_GET['view'];

switch($view){
    
  case 'home':
        $page_title = 'home';
        $layout = 'home';

  break;

  case 'random_detail':
        $page_title = 'Random Detail';
        $columns = array('kolon1','kolon2','kolon3','kolon4','kolon5','kolon6');
  
  break;
  
   
  case 'person_detail':
        $page_title = 'Person Detail';
  
  break;
}
include($_SERVER['DOCUMENT_ROOT'].'/views/layouts/'.$controller.'.php');
$random_user_id() fonksiyonu veritabanından rastgele bir user_id alıyor bunu da
$random_id değişkenine atıyor. Adres satırından aldığı view değerine göre de
switc'in içindeki home.php , person_detail.php, random_detail.php gibi sayfaları index.php'nin içine include ediyor.

Ama her include işleminden sonra index.php yeniden yüklendiği için $random_id
değişiyor. Kod gereği benim ilk $random_id'yi kullanmam gerek. $random_id sadece home.php yeniden yüklendiğinde değişmeli.

Mesela view=random_detail iken random_detail.php index.php'nin içine include oluyor, ama bu esnada index.php yeniden yüklendiği için $random_id değeri değişmiş oluyor. Sonuçta da benim istediğim(ilk baştaki) $random_id için değil de başka bir $random_id için random_detail.php dosyası çalışmış oluyor.

$random_id 'yi random_detail.php içerisinde tanımlamak bir çözüm olabilirdi. Ama bu sefer de view=person_detail iken $random_id'ye ulaşamayacağım.

Yani, $random_id'yi sadece home.php yüklendiğinde değiştirip view ın diğer değerleri için değişmemesini sağlamam nasıl mümkündür.

ilk gelen degeri serialize edebilirsin sonrada unserialize ile kullanabilirsin diyelimki sayfa tekrar yüklendi bunuda şöyle yaparsın serialize ettiğin dosya dolu ise veritabanında veri cekmesin boş ise ceksin kodlarına bakmadım ama dediğim olay mantıklı

not: dosya boş değilse zaten veri yazmayacak