arkady21
29.10.2009 - 09:20
Уважаемые форумчане, помогите новичку, я толбько начинаю осваивть php, в одной из книжек взял такой скрипт, вставляю его в страницу и ничего не работает, вот он :
PHP |
$url=" "; if ($link==1){$url="raz1.php";} if ($link==2){$url="raz2.php";} if ($link==3){$url="raz3.php";} if ($link==""){$url="error.php";} include ($url); |
в другое место страницы вставляю ссылки:
HTML |
<li><strong><a href="nov.php?link=1">1</a> <li><strong><a href="nov.php?link=2">2</a> <li><strong><a href="nov.php?link=3">3</a> |
nov.
php - страница, куда должен вставляться текст из raz1.
php и т.д.
В чём тут ошибка?? Почесу не работает???
Спустя 1 час, 1 минута, 5 секунд (29.10.2009 - 09:21) Kuliev написал(а):
arkady21
Код должен быть в одном файле!
Спустя 6 минут, 51 секунда (29.10.2009 - 09:28) sergeiss написал(а):
Kuliev - позволь не согласиться
Могут быть и в разных файлах, хотя в одном - удобнее.
Самое главное, что код в книжке подразумевает использование глобальных переменных, т.е. переменная $link формируется автоматически. А на твоём сервере не поддерживается (выключена) такая фича.
PHP |
$link=isset( $_GET['link'] ) ? $_GET['link'] : 0; // или не ноль, а любое число, которое будет дефолтовым |
Спустя 11 секунд (29.10.2009 - 09:28) arkady21 написал(а):
дак он и расположен в одном файле: в страницу nov. php в соответствующие места вставляю <? include ("первыый скрипт.php");?> и <? include ("второй скрипт.php");?>...
Спустя 5 минут, 37 секунд (29.10.2009 - 09:33) Kuliev написал(а):
arkady21
PHP |
<?php
$link = isset($_GET['link']) ? $_GET['link'] : null;
switch($link) { case 1: include("raz1.php"); break;
case 2: include("raz2.php"); break;
case 3: include("raz3.php"); break;
default: include("error.php"); }
echo "<li><strong><a href=nov.php?link=1>1</a>\n"; echo "<li><strong><a href=nov.php?link=2>2</a>\n"; echo "<li><strong><a href=nov.php?link=3>3</a>\n"; |
Пробуй
Спустя 4 минуты, 56 секунд (29.10.2009 - 09:38) arkady21 написал(а):
Спасибо, да я так пробовал - поолучается, но и вышеизложенный способ закинул на хостинг и всё пошло, но проблема- то ещё состоит в следующем: необбходимо разбить текст файла raz1.php на страницы, ставлю в требуемую страницу скрпипт, который нашёл на одном из форумов, первая страница отображается, а вот переход на другую не осуществляется может подскажите как быть??? Вот этот скрипт:
PHP |
<?php
// возвращвет текст страницы $page function get_page( $page, $start ){ global $text, $len, $chars_per_page; if( $page < 1 || $start >= $len ) return ""; $end = $start + $chars_per_page; if( $end >= $len ) $end = $len; else{ $end = strpos( $text, ' <!-- pagebreak -->', $end ); if( $end === false ) $end = $len; } if( $page == 1 ) return @substr( $text, $start, $end-$start ); // искомая страница return get_page( $page-1, $end ); }
function get_pages_count(){ global $text, $len, $chars_per_page; $pages = 1; $pos = 0; while( ( $pos = @strpos( $text, ' <!-- pagebreak -->', $pos+$chars_per_page ) ) !== false ) $pages++; return $pages; }
function paginate(){ global $this_url, $text, $len, $chars_per_page;
if( $len <= $chars_per_page ){ echo $text; return; }
$page = isset($_GET['page']) ? $_GET['page'] : 1; $pages = get_pages_count(); if( $page < 1 ) $page = 1; elseif( $page > $pages ) $page = $pages;
echo '<p style="text-align:center;">'; for( $i = 1; $i <= $pages; $i++ ){ if( $i == $page ) echo ' <b>'.$i.'</b>'; else echo ' <a href="'.$this_url.'?page='.$i.'">'.$i.'</a>'; } echo '</p><hr />'; echo get_page( $page, 0 ); }
$text = file_get_contents( 'about.phtml' ); // отрезаем начало до <body> включительно и конец, оставляем только текст $text = preg_replace( '#(^.*?<body[^>]*>)|(</body>.*$)#i', '', $text ); $len = strlen( $text ); $this_url = $_SERVER['PHP_SELF']; $chars_per_page = 1;
paginate();
|
! |
|
М |
| Используй специальные теги для оформления кода! |
Kuliev |
Спустя 47 секунд (29.10.2009 - 09:39) Kuliev написал(а):
Цитата (sergeiss @ 29.10.2009 - 11:28) |
Kuliev - позволь не согласиться Могут быть и в разных файлах, хотя в одном - удобнее.
Самое главное, что код в книжке подразумевает использование глобальных переменных, т.е. переменная $link формируется автоматически. А на твоём сервере не поддерживается (выключена) такая фича.
PHP | $link=isset( $_GET['link'] ) ? $_GET['link'] : 0; // или не ноль, а любое число, которое будет дефолтовым |
|
Это понят, я не знаю как там описано в его книге поэтому написал так
Спустя 5 минут, 11 секунд (29.10.2009 - 09:44) arkady21 написал(а):
Может, надо как-то завершить работу первого скрипта,который выводит сами файлы raz...php??? НО КАК
Спустя 2 минуты, 40 секунд (29.10.2009 - 09:47) arkady21 написал(а):
что за теги "для оформления кода"???
Спустя 8 минут, 40 секунд (29.10.2009 - 09:56) Kuliev написал(а):
arkady21
Кнопочки таки PHP, SQL, HTML
Спустя 4 минуты, 23 секунды (29.10.2009 - 10:00) arkady21 написал(а):
А какой смысл??? Мне нужно, чтобы текст, расположенный в файе (какой он есть) автоматически выводился на страницу nov.php и разбивался на страницы, причём без использования БД.
Спустя 46 минут, 18 секунд (29.10.2009 - 10:46) sergeiss написал(а):
Цитата (Kuliev @ 29.10.2009 - 10:39) |
я не знаю как там описано в его книге поэтому написал так |
И я не знаю
Но у меня уже "нюх выработался" на "поповский" код и на глобальные переменные (точнее, их отсутствие). Уже по вопросу часто понятно, что проблема в этом.