Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> index.php?act=smth 
:(
    Опции темы
anonymous_userus
Дата 9.8.2004, 13:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте.. Нужна ваша помосчь. Я начинающий в PHP

Вот, например, взять форум типа Ib или phpbb, там кроме одной страницы index.php ничего нету. Я хочу сделать такое же. Т.е. вот допустим у меня на сайте ссылки на разделы, я хочу сделать так чтобы у каждого раздела было свое имя и к разделу можно было перейти введя в браузере что-то типа такого: /index.php?act=guestbook или /index.php?act=faq

а в самом index.php сделать проверку, на act, т.е. если act=faq то и include("faq") (хотя это наверное гемор, мне кажется делается это по-другому)

воот. надеюсь поняли. надеюсь поможете. с уважением.
  Вверх
Secandr
Дата 9.8.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



А что не получается?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
S.A.P.
Дата 9.8.2004, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Кажется, проще будет вызывать отдельные части при помощи запроса, типа index.php?guestbook.
Строка "guestbook" будет храниться в $QUERY_STRING, а там уже анализируй и подключай файлы, какие надо.
PM MAIL   Вверх
anonymous_userus
Дата 9.8.2004, 14:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
А что не получается?

нет, не получается, к сожалению

вообщем я сделал так на главной
Код
<?
switch($act){
  case 'guestbook':
      include("scripts/gb/index.php");
      break;
  case 'faq':
      include("faq.php");
      break;
  default:
      include("news.php");
      break;
};
  ?>

но есть одна маленькая проблемка.

если я пишу /index.php?act= , то тогда всё нормально, делается дефолтный выбор в switch($act), т.е делается include("default.php")

Но, если я пишу просто адрес сайта (в моём случае- localhost/foo) или просто /index.php то появляется ошибка Notice: Undefined variable: act in x:\home\localhost\www\foo\index.php on line 72.

никак не допераю до того, что надо сделать
  Вверх
Secandr
Дата 9.8.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



а что в x:\home\localhost\www\foo\index.php в 72 строке?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Ignat
Дата 9.8.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Код
<?
if(!empty($_GET['act'])){$act=&$_GET['act'];}else{$act=""};
switch($act){
 case 'guestbook':
     include("scripts/gb/index.php");
     break;
 case 'faq':
     include("faq.php");
     break;
 default:
     include("news.php");
     break;
};
 ?>


Это сообщение отредактировал(а) Ignat - 9.8.2004, 14:59


--------------------
Теперь при чем :P
PM   Вверх
S.A.P.
Дата 9.8.2004, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Мужики, не понял, я вроде написал как сделать: для этой цели нет необходимость вводить новую переменную $act, достаточно использовать запрос типа index.php?string, а string будет находиться в переменой $QUERY_STRING hmmm.gif
PM MAIL   Вверх
anonymous_userus
Дата 9.8.2004, 15:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
а что в x:\home\localhost\www\foo\index.php в 72 строке?

да там собственно и было "switch($act){"

Ignat, спасибо помогло.

спасибо всем.
  Вверх
anonymous_userus
Дата 9.8.2004, 15:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Perchilla @ 9.8.2004, 15:44)
Мужики, не понял, я вроде написал как сделать: для этой цели нет необходимость вводить новую переменную $act, достаточно использовать запрос типа index.php?string, а string будет находиться в переменой $QUERY_STRING hmmm.gif

Цитата
Мужики, не понял, я вроде написал как сделать: для этой цели нет необходимость вводить новую переменную $act, достаточно использовать запрос типа index.php?string, а string будет находиться в переменой $QUERY_STRING

переменная $QUERY_STRING это что?
  Вверх
Ignat
Дата 9.8.2004, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Цитата(anonymous_userus @ 9.8.2004, 16:50)
переменная $QUERY_STRING это что?


Код
<?php
phpinfo();
?>


Увидишь. wink.gif


--------------------
Теперь при чем :P
PM   Вверх
IZ@TOP
Дата 9.8.2004, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(Perchilla @ 9.8.2004, 16:44)
Мужики, не понял, я вроде написал как сделать: для этой цели нет необходимость вводить новую переменную $act, достаточно использовать запрос типа index.php?string, а string будет находиться в переменой $QUERY_STRING

Вот они, ошибки программирования. А ты теперь подумай что заинклуденный скрипт передает какие ни будь параметры через урл. И что даст нам QUERY_STRING при таком запросе: index.php?guestbook&act=add_post ?
Будем инкляйдеть по умолчанию default.php а запись в гостевуху не запишется!


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
skalex
Дата 9.8.2004, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Вообще я считаю, что такой подход не совсем удобен!
Гораздо удобнее делать так:

Код index.php (на этот файл надо заворачивать любой запрос к сайту (с помощью .htaccess))

Код
<?php

// символ-разделитель параметров запроса к странице
$parms_delimeter = '_';
// Имя каталога со скрипатми, генерирующими контент
$pages_catalog = 'content';
$pages_extension = 'htm';

// уникальный ID страницы
$page_id = preg_replace('%^/|\.'.$pages_extension.'.*%', '', $_SERVER['REQUEST_URI']);

if (!$page_id) $page_id = 'index';

// формируем массив параметров запроса к странице
$page_parms = array();
list($page_id, $page_parms) = explode($parms_delimeter, $page_id, 2);

//
if (file_exists($pages_catalog.'/'.$page_id.'.'.$pages_extension)) {
  include($pages_catalog.'/'.$page_id.'.'.$pages_extension);
} else {
  include($pages_catalog.'/error-404.'.$pages_extension);
}

?>

PM   Вверх
Sufius
Дата 9.8.2004, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: 1
Всего: 1



Небольшой оффтоп...
А что будет быстрее работать? Сайт "одной страницы", как описано выше... или обычный набор страниц с инклюдами шапки и боттома и с инфой между ними?


--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
IZ@TOP
Дата 10.8.2004, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Думаю что второй вариант. Но имхо неудобный.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
skalex
Дата 10.8.2004, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Sufius
Я думаю что ты вряд ли почуствуешь разницу в скорости работы.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.