[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. KaMiKadZe

    KaMiKadZe Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    163
    Likes Received:
    35
    Reputations:
    19
    Да Ё :(
    Проблема не в выводе записей с ними все отлично, проблема как сделать в навигации чтобы по когда переходишь по страницам они увеличивались...
    сейчас по страницам как не ходи будет
    [1][2][3]...[8][9][10]
    а надо чтобы когда например на страницу [3] жмешь стало
    [3][4][5]...[8][9][10]

    Еще раз! Мне нужно сделать не вывод он уже есть!
    Мне нужна сделать так чтобы навигация выводилась как я написал в скрипте это функция public function link_page()...
    Я не могу придумать как так сделать!
    Можно сказать что вся суть в этом цикле
    PHP:
     for ($i 0$i 3$i++) {
                    if(
    $i == $this->page) {
                        
    $return .= "[".($i 1)."]";
                    } else {
                        
    $return .= "<a href='".$this->prefix_p."=".($i 1)."'>[".($i 1)."]</a>";
                    }
                }
    У меня было несколько попыток что-то сделать, но почему-то не получается у меня это придумать!
    Вот одна из попыток
    PHP:
    for ($i $this->page$i $this->page+3$i++) {
                    if(
    $i == $this->page) {
                        
    $return .= "[".($i 1)."]";
                    } else {
                        
    $return .= "<a href='".$this->prefix_p."=".($i 1)."'>[".($i 1)."]</a>";
                    }
                }
    Делает бесконечное число страниц =(
    Хоть и отражает частично суть как я хочу!
     
    #11161 KaMiKadZe, 9 Aug 2009
    Last edited: 9 Aug 2009
  2. KaMiKadZe

    KaMiKadZe Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    163
    Likes Received:
    35
    Reputations:
    19
    FireFenix,
    спасибо, но моим нужды это не удовлетворились :(
    Пришлось скурить трубку мира и создать то что сам не понимаю, но зато работает как я хотел :D
    Вот пример того как кодить лучше не надо
    PHP:
        public function link_page()
        {

            
    $sql "SELECT COUNT(*) FROM `".$this->table."`".$this->where.$this->order_by;
            
    $value mysql_query($sql);
            
    $value mysql_fetch_row($value);
            
    $alllines $value[0];
            
    $str ceil($alllines $this->lines); // общее число страниц
            
    $return .= "<div class='navigation'>";
            if(
    $this->page != 0) {
                
    $return .= "<a href='".$this->prefix_p."=".($this->page)."'><</a>";
            } else {
                
    $return .= "<span><</span>";
            }
            
    $return .= "&nbsp;";
            if(
    $this->page != 1) {
                
    $return .= "<a href='".$this->prefix_p."=1'>1</a>";
            } else {
                
    $return .= "<span>1</span>";
            }

            
    $return .= "&nbsp";
            if(
    $this->page == $str && $this->page != && $str 2) {
                
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>".($this->page -
                    
    2)."</a>";
                
    $return .= "<a href='".$this->prefix_p."=".($this->page 1)."'>".($this->page -
                    
    1)."</a>";
            }

            if(
    $this->page 1) {
                if(
    $str && $this->page >= 4) {
                    if(
    $str >= && ($this->page == $str or $this->page == $str 2)) {
                        if(
    $this->page == $str && $str != 5) {
                        } else {
                            
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>".($this->page -
                                
    2)."</a>";
                        }

                        if(
    $this->page == && $str == 6) {
                        } else {
                            
    $return .= "<a href='".$this->prefix_p."=".($this->page 1)."'>".($this->page -
                                
    1)."</a>";
                        }
                    }
                }
                if((
    $str && $str && $this->page == $str 2) or ($str == && $this->
                    
    page == $str 1)) {
                    
    $return .= "<a href='".$this->prefix_p."=".($this->page 1)."'>".($this->page -
                        
    1)."</a>";
                }
                
    $return .= "<a href='".$this->prefix_p."=".($this->page)."'>".($this->page).
                    
    "</a>";
            }

            if(
    $this->page != && $this->page && $str != 2) {
                
    $return .= "<span>".($this->page 1)."</span>";
            }
            if(
    $this->page && $this->page <= $str) {
                
    $return .= "<span>".($this->page 1)."</span>";
            }

            if(
    $this->page $str) {
                if(
    $this->page == 1) {
                    
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>".($this->page +
                        
    2)."</a>";
                    if(
    $str 3) {
                        
    $return .= "<a href='".$this->prefix_p."=".($this->page 3)."'>".($this->page +
                            
    3)."</a>";
                    }
                    if(
    $this->page >= $str) {
                    } else {
                        if(
    $str != 4) {
                            
    $return .= "<a href='".$this->prefix_p."=".($this->page 4)."'>".($this->page +
                                
    4)."</a>";
                        }
                    }

                } else {
                    if(
    $this->page == 2) {
                        
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>".($this->page +
                            
    2)."</a>";
                        if(
    $str != 4) {
                            
    $return .= "<a href='".$this->prefix_p."=".($this->page 3)."'>".($this->page +
                                
    3)."</a>";
                        }
                    } else {
                        
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>".($this->page +
                            
    2)."</a>";
                    }
                }

            }

            
    $return .= "&nbsp";

            if(
    $this->page != $str) {
                
    $return .= "<a href='".$this->prefix_p."=".$str."'>".$str."</a>";
                
    $return .= "&nbsp";
                
    $return .= "<a href='".$this->prefix_p."=".($this->page 2)."'>></a>";

            } else {
                if(
    $str 1) {
                    
    $return .= "<span>".$str."</span>";
                }
                
    $return .= "<span>></span>";
            }
            
    $return .= "</div>";

            return 
    $return;

        }
    До сих пор удивляюсь как все работает :confused:
     
  3. Вася Рогов

    Вася Рогов New Member

    Joined:
    6 Jul 2009
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    m0Hze, дада, но ТС это топик стартёр, а тот тип просто садомаза))
     
  4. KokauH

    KokauH Member

    Joined:
    30 Jan 2009
    Messages:
    67
    Likes Received:
    13
    Reputations:
    4
    Можно ли написать скрипт редиректа с перехватом рефера? Если рефер передаётся, то редирект происходит, а если рефер не передаётся, то редиректа не происходит просто отображается белый экран?
     
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Реферер легко потделать, поетому никогда не расчитывайте на него.
     
  6. KokauH

    KokauH Member

    Joined:
    30 Jan 2009
    Messages:
    67
    Likes Received:
    13
    Reputations:
    4
    Ну а всё же? Если да, то как будет выглядеть?
    В php вообще не силён :(
     
  7. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    В simple TDS это уже есть если про это, а еcли нет то -
    PHP:
    if(!empty($_SERVER['HTTP_REFERER'])) 
    {
       
    header("Location: http://www.example.com/"); 
    }
    die;
     
  8. KaMiKadZe

    KaMiKadZe Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    163
    Likes Received:
    35
    Reputations:
    19
    Ну да нужна была навигация и не просто, а такая которую хочу я =)
    Не помню как это писал и до сих пор не пойму как это работает, но работает правильно и так как я хотел =)
    Ничего подобного! =) Я написал то что работает, а дальше уже пофигу :D Хотя щас понимаю что можно все сделать немного попроще, но лучше не буду трогать, работает да и ладно :p
    Проверил когда всего 1,2,3,4,5,6,8 и больше страниц вроде ничего неправильного не появилось, значит все отлично :)
    p.s Наверное мой код если его можно назвать кодом похож на код который в висте =)
     
  9. unixsys

    unixsys New Member

    Joined:
    9 Aug 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток..Я задам простой вопрос который относится к PHP/MySQL
    Я вообще хочу всё изучать с нуля. Если поможете буду признателен.Так как я хочу этому научится и имею большой интерес и потенциал .
    Заранее спасибо
     
  10. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    очень интересный вопрос...ой...а вопрос то где?
     
  11. s.p.a.m

    s.p.a.m Banned

    Joined:
    26 Jan 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    Вопрос такой: я получаю с помощью курла исходник страницы, записываю в переменную и в этом исходнике мне нужно с помощью регулярок достать одну ссылку. Начало мне известно /page.php?act=pos&hash= ,но параметр hash всегда разный и мне нужно отпарсить эту ссылку вместе с хешем. Вот пример хеша 5fdb61085849e51fc4.
    Заранее благодарен.
     
  12. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    Покажи кусок кода там где есть нужная ссылка
    т.е. то, что идет после хэша
     
  13. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    https://forum.antichat.ru/thread81500.html
     
  14. s.p.a.m

    s.p.a.m Banned

    Joined:
    26 Jan 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    PHP:
    </span><a style='font-weight:normal' href='/page.php?act=pos&hash=5fdb61085849e51fc4'>Изменить</a><span class="divider">
     
  15. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    PHP:
    preg_match("/hash=(.+)'/"$answ$match);
    echo 
    $match[1];
     
  16. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Если там будет еще одна кавычка после линка без переводов строки то он сожрет все что до нее, жадность в таких случаях уменьшают - U
     
    #11176 PaCo, 10 Aug 2009
    Last edited: 10 Aug 2009
  17. s.p.a.m

    s.p.a.m Banned

    Joined:
    26 Jan 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    Странно, но мне выдало вот что: fbb77e87fd21bc22b430d84770ac352bd5ed3e48f70e8e4868f1deb3e114eefcc0256c1de36d32b4adcbc71d93
     
  18. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    /hash=([\da-f]+)'/
     
    2 people like this.
  19. s.p.a.m

    s.p.a.m Banned

    Joined:
    26 Jan 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    всё работает спасибо!
     
  20. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    У меня вопрос по движку Shop-script

    Проблема с админкой, выдает : Fatal error: Class 'PEAR' not found in [путь]/kernel/wbsinit.php on line 356

    Помогите пожалуйста, я уже в отчаянии. =\


    PHP:
    return PEAR::raiseError"Error loading file: $langListFileName);

    $result = array();

    $handle fopen$filePath"r" );

    while ( (
    $data fgetcsv($handle100"\t") ) !== FALSE ) {
    if ( 
    array_key_exists$data[0], $serverLanguages ) )
    $wbs_languages[$data[0]] = array( WBS_LANGUAGE_ID=>$data[0], WBS_LANGUAGE_NAME=>$data[1], WBS_ENCODING=>$data[2] );
    }

    fclose($handle);

    return 
    null;
    }
    ?>  
     
Thread Status:
Not open for further replies.