динамический сайт

Статус
Закрыто для дальнейших ответов.

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
Помогите разобраться в ситуации (делаю динамический сайт)- делаю так: сначала массив обьявляю для всех страниц:

Код:
<? 
$pages=array(
'about'=>'О нас',
'contacts'=>'Контакты',
'login'=>'Войти',
'programs'=>'Программы',
'stat'=>'Статьи',
'forum'=>'Форум',
'news'=>'Новости' );
if($_GET['page']=='') $_GET['page']='news';
if(array_key_exists ($_GET['page'],$pages))  $_GET['page']='404';
?>
потом

Код:
<html>
<title>
<?php
echo $pages[$_GET['page']];
?>
</title>
и пошла страница
где-то в ячейке таблицы пишу

Код:
<?
readfile('txt/'.$_GET['page'].'.htm');
?>
читаю из папки txt файлы соответствующие которые по ссылке будут вызываться из меню

вроде все должно работать - ан нет... не пашет - не читает файлы из папки txt, если удаляю тот блок с массивом - тогда выводит страницу соответствующую в ячейку по readfile. и не работает echo $pages[$_GET['page']]; тоесть чтобы в титл писалось название текущей страницы которая подключилась

Надеюсь более-менее понятно описал... подскажите что и где не так делаю?
 

sciko

Well-Known Member
Регистрация
22.12.2006
Сообщения
164
вроде все должно работать
Да нет. Нарушена логика работы.
Строка
if(array_key_exists ($_GET['page'],$pages)) $_GET['page']='404';
должна по идее присваивать гету только если нет такого ключа, а здесь наоборот.
То есть правильный вариант:
if(!array_key_exists ($_GET['page'],$pages)) $_GET['page']='404';

И ещё. Все телепаты ушли на другой форум... Пишите какие выдаются сообщения об ошибках.
 

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
никаких небыло ошибок просто не выводились те страницы и все, после вашего совета теперь все нормально! спасибо огромное!
я вот теперь думаю - как сделать добавление новостей, сделать админку в которой можна было бы писать заголовок, автора,текст новости и потом кнопку Отправить - и все это например в admin.php потом все это как-то должно передаваться в файл news.htm вот и думаю - как: или писать в файл а потом в news.php делать проверку на новый файл... или через базу (как не представляю пока) или как мож по-другому???
 

sciko

Well-Known Member
Регистрация
22.12.2006
Сообщения
164
Не совсем понял, что имелось в виду. Поэтому просто опишу принцип работы скрипта добавления новостей.
Допустим, что он уж находиться в админ-части сайта.
На запрос появляется форма в которую вводим, что нам надо и форма отправляется на скрипт.
Скрипт проверяет поля формы и записывает их в базу данных (мускульную или на файлах - не важно) по соответствующим столбцам.
Теперь принцип вывода новостей.
Скрипт читает базу данных и сортирует данные по убыванию даты. Далее выбирается n новостей (начиная с последней, если это первая страница, или с n*(m-1) от конца, где m - номер сраницы) по заранее выбранному образцу.
 

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
решил сделать так:

Код:
<?
$newsbase=file("news.inc.dat");
while($string=array_pop($newsbase))
{
list($zagolovok,$author,$signature,$news)=split(" ",$string,4);
echo '<TABLE  align="center" cellpadding="0" cellspacing="0" border="0" width="630" height="100">
  <tbody>
    <tr align="justify">
      <td height="15" bgcolor="#7898f6" colspan="3">
<div class="zagol">'.$zagolovok.'</div>
</td>
    </tr>
<tr><TD height="25" bgcolor="#C0C0C0" colspan="3">
<div class="signature"><i>'.$author.'</i></div>
</TD>

</tr>
    <tr align="justify">
<td width="15" height="100%" colspan="1"><img src="images/astromenace.png"></td>
<td colspan="2" class="news_text">'.$news.'</td>
    </tr>
<tr align="justify" height="10" width="100%">
<td align="left" bgcolor="#C0C0C0" colspan="3"><div class="signature"><i>'.$signature.'</i></div></td>
<td></td>
    </tr>
  </tbody>
</TABLE><hr>';
}
?>
сохраняю его как news.php и ложу в каталог txt
потом в таблице читаю

Код:
<?
readfile('txt/'.$_GET['page'].'.php');
?>
в итоге не то что хотел! вся структура сайта смещается куда-то, а переменные не инициализируются, тоесть так и остается $zagolovok, $news и т.д.при просмотре кода через браузер виден код ПХП !!!
все дело в том что readfile открывает почему-то его и не учитывает что там пхп скрипт! мож как по-другому нада?
 

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
все, с этим разобрался!
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
То есть правильный вариант:
if(!array_key_exists ($_GET['page'],$pages)) $_GET['page']='404';
Правильный (и куда более быстрый) вариант — это:
Код:
if (!isset($pages[$_GET['page']])) $_GET['page'] = '404';
Зачем использовать какие-то функции?
 

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
теперь стоит задача последняя сделать авторизацию для входа в админку и из нее добавления новостей.. вроде все сделал - не работает :(
делаю так - в форме через пост передаю логин и пароль в скрипт/вот он:

Код:
<?php 
require "base.dat";
if (!isset($base[$name]))
{ 
require "login_1.php";
echo "<b><center><font color=red>Неправильно указан пользователь!</center></font></b>";
exit;
} 
if (md5($pass) !== $base[$name])
{ 
require "login_1.php"; 
echo "<b><center><font color=red>Неверный пароль!</center></font></b>"; 
exit; 
} 
Header("Location: admin.php"); 
?>
в файле base.dat хранятся логин и пароль - пароль под md5
так вот - не проходит проверка даже на логин :( до пароля не доходит :(
где что не так?
 

st0rk

New Member
Регистрация
20.06.2007
Сообщения
8
сделал все намного проще через $_REQUEST
теперь нужно сделать одну вещь:
есть таблица в верхней ячейке находится перечень статей, названия только - ссылки, а в нижней они должны показываться при клике на соответствующую статью...тоесть сначала список - а когда жму на ссылку - список и под ним статья! жму на другую - другая статья сменяет ту, как такое сделать подскажите
 
Статус
Закрыто для дальнейших ответов.
Верх Низ