• 31-07-2010, 17:11:08
    #1
    Buk
    Üyeliği durduruldu
    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.
  • 31-07-2010, 17:15:28
    #2
    Üyeliği durduruldu
    böyle birşeye neden ihtiyac duydunuz anlayamadım ama işinizi görecek tek şey SESSION

    random_user_id(); fonksiyonunun içinde önce $_GET['view'] kontrolu yapın. ana sayfadan farklı biryerse SESSION['random_id'] kontrolu yapsın. doluysa gondersin yoksa oluştursun. ana sayfaysa da oluştursun.
  • 01-08-2010, 03:38:07
    #3
    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