![]() |
Многопользовательский сайт!
Я тут сижу сутками, и с курами тоже :yees:
И в общем вопрос следующий: я готовлю сайт (проектом даже можно назвать). У сайта будет много пользователей, то есть что-то типа www.domain.com/user1, www.domain.com/user2, www.domain.com/user3 и так далее. Смысл заключается в том, что титульная страница, и страница с контактной информацией должны быть разные, тоесть user1 - его инфа, user2 - его инфа, и т.п. а остальные ссылки внутри сайта у всех одинаковые. И дело в том, что я не знаю как сделать ссылку с общих страниц на индивидуальную каждого user'a, то есть если запрос на общую страницу был через user1, то ссылки с общих страниц должны быть на user1, а если через user2, то и ссылки на user2. Ну и в общем-то по причине не знания php и БД я не знаю как мне воплотить нужду в реальность. Пользоваться frame'ами я не хочу. Кто, что, может подсказать? Буду очень признателен! В долгу не останусь! |
Тебе нужен портал? Возьми CMS (система управления контентом) - их щас много развелось (Mambo, Нюки, e107 и пр.) Вообще, тема кучу раз обсуждалась. Зайди в раздел порталы.
ЗЫ. А тебе обязательно /user1, userN ? ЗЫЫ. ПХП и мускл учи. Куча вопросов отпадет. |
Понятное дело что php и mysql надо учить, тут бесспорно.
Как раз мне не обязательно userN, это должно выглядеть www.domain.com/vasya, www.domain.com/jenja, короче имена людей. По сути дела это сайт, начинённый инфой, только если заходит под разными пользователями на титульной странице будет их инфа, а на всех остальных общая. Только чтобы переход с общих страниц на титульную определённого пользователя. |
Что за инфа будет на личных страничках? Они будут доступны всем? Обязательно ли иметь пути /userN или можно иначе?
Если они будут публиковать новости, статьи, файлы -- попробуй Мамбу. Посмотри, что такое Денвер (на форуме темы есть) и вперед. |
Будет примерно следующее, титульный лист у каждого пользователя свой, что-то типа приветствия, (я токой-то, токой-то, рад вас тут видеть, вот моё фото), и строница с контактной инфой, а тело, т.е. статьи разные, опросы, тексты, и т.п. общие.
Я думаю ты немного не понял смысл. Как раз токи стандыртные движки я думаю тут не подойдут. То что мне надо это следующее: Например у меня есть моя личная страничка на которой есть страницы - вступление, статьи, фотки, тесты, конт.инфо. Я хочу к примеру сделать своим друзьям тоже самое, чтобы у них были теже странички - статьи, фотки, тесты; а вот странички - вступление и конт.инфо у каждого свои. И в общем-то то что я хочу, так это не дублировать странички - статьи, фотки, тесты, а у каждого пользователя показывать тоже самое. И моя проблема заключается в том, что как только ты переходишь на общую страничку то при нажатии на ссылку вступление будешь попадать только на одного и тогоже пользователя, а мне надо так сказать эту ссылку привязать к пользователю. |
Они сами это редактировать будут? Могу предложить следующее решение:
На ПХП и мускл можешь конечно написать, токма если ты их не знаешь, работу закончишь в лучшем случае к ноябрю (хотя мне сложно сказать, я-то их знаю). Если это сайт для друзей, попробуй сделать сайт на html, а на сайт залить WebEdit (pro или platinum -- если надо, дам). Там можно каждому создать свою учетную запись и установить необходимый доступ к файлам. WebEdit -- это такой wysiwyg-редактор+файловый менеджер, им можно заливать графику, флеш и тд. Смотри по адресу _http://www.interspire.com/webedit/demo.php Я бы, конечно, на ПХП писал. Если хочешь быстро и просто, посмотри _http://kurepin.ru/php/ |
Не, не то смотри вот примерный сайт http://www.moneyextraneed.net/klein, http://www.moneyextraneed.net/rom, в данном случае начинка обсолютно одинаковая, но если ты обратишь внимание на правый угол, то там разные фотки, то есть, как бы разные юзеры, но одним и тем же контентом. примерно тоже самое надо и мне.
|
Ну, на ASP сделан. Можно на хоть на ColdFusion, токма на ПХП проще будет. Вот на нем и делай. Я тебе ссылку дал. Там прям поэтапно рассказано как сайт на ПХП написать. Зря штоль ее выбрал. Вопросы будут обращайся, подскажу. Скачай себе Денвер (_http://web.dklab.ru/) -- это вебсервак Apache + PHP + MySQL. С ASP я никогда дела не имел.
|
Спасибо, приму к сведению, точнее уже принял!
Я тут подумал, и придумал. Ничего гиниального, но всё же. Прописать в страницах главная и конт.инфо. строку, которая бы вписывала в отдельный файл (адресующий) адрес относительно юзера, а в одинаковых страницах сделать ссылки на главная и конт.инфо. обращением на этот файл, и переходом по ссылке находящейся внутри. И таким образом главная и конт.инфо, разных пользователей будут постоянно обновлять файл (адресующий), и тогда проблемка вроде решена. |
Ну да, все так. Молодец :)
|
У меня на сайте, index.php, в меню есть 9 ссылок, и в принципе нажимая на каждую из них должен менятся только текст по середине окна, я это прописал через:
<?php $fp = fopen ("center.htm", "r"); $bytes = filesize("center.htm"); $buffer = fread($fp, $bytes); fclose ($fp); print $buffer; ?> Теперь собственно вопрос: Как мне сделать так, чтобы нажимая на одну из этих ссылок, в файле index.php менялось center.htm на center_contacts.htm, а ссылка скажем выглядела index.php?ID=contacts и так далее все 9 ссылок. Спасибо! |
Попробуй поставить Мамбу, к ней есть компонент User Home Pages, позволяющий отвести отдельную страницу портала юзеру. Думаю - это то, что нужно, хотя все равно как-то вы туманно объясняете что хотите.
|
Цитата:
<?php include("center.htm")?> Зачем велосипед изобретать? Цитата:
ЗЫ. Все таки настоятельно рекомендую подучить РНР. |
Да, ты прав проще заменить на include, просто дело в том что я в php ноль, вот и получилось что вписал редактор пхпешный мне то и использовал.
скажи а ты можешь написать пример использования в этом случае if() и switch(). Я уже вроде бы пришёл к кое какому коду, наковырял, то там, то тут, но он всё равно не даёт желаемого. Можешь что-то подсказать, если надо могу запостить код, что собрал. |
Цитата:
Цитата:
|
Цитата:
|
Ребята всем спасибо за ответы!
Понял, что описал фигово, сейчас попробую по лучьше. У меня есть сайт www.uplife.info. Там есть меню, в меню 9 ссылок. Первая ссылка - "Главная" и последняя ссылка - "Напиши" служат страницами пользователей. Это что-то типа "сайт-визитка", будет много пользователей, и смысл заключается в следующем: чтобы человек приходя по адресу к примеру www.uplife.info/vasya, попадал на сайт где ссылки "Главная" и "Напиши" относятся к Васе, т.е. на "Главной" инфо про Васю, а в "Напиши" данные для связи с Васей. Остальные ссылки для всех одинаковые и должны загружаться из одного источника. К примеру будет пользователь Петя, его адрес будет www.uplife.info/petya, и тот же пример как с Васей, начинка одинаковая, кроме страниц "Главная" и "Напиши". Теперь первый момент: Есть готовый дизайн, находится в файле index.php. Нажимая на одну из 9 ссылок в меню должен меняться контент в середине. И моё большое желание сделать это следующим образом: Например ссылка на "Главная" будет выглядеть: index.php?ID=main, ссылка на "Напиши" будет: index.php?ID=write_me и так далее по всем ссылкам. Соответственно будут файлы main.htm и write_me.htm. Второй момент: Так как сайт для большого количества пользователей, то 7 постоянных ссылок (одинаковых для всех пользователей) должны грузиться из папки "/data" к примеру, а "Главная" и "Напиши" из папок "/user1", "/user2", "/vasya", "/petya" и т.д. Соответственно ссылки "Главная" и "Напиши" должны быть зависимы от пользователя, т.е. если я в юзере Вася зашёл прямо на ссылку /vasya/index.php?ID=other_info, к примеру, то нажав на странице ссылку "Главная", попасть на "Главная" пользователя Вася. Третий момент: Если человек приходит по адресу /vasya/index.php?ID=link_number_34 к примеру, а такого адреса соответственно нет, то загружалась бы страница index.php. Вот вроде бы изъяснился, надеюсь отчётливей чем по началу. Код которыйя использовал для создания меню: Этот код даёт частично то что надо, но всё равно, он какой-то не такой, я это собрал по кускам, и к тому же я ещё не очень то в php соображаю. Заранее благодарен любой помощи! PHP код:
|
Ну-c, начнем-с :)
1. Предлагаю сделать по-человечески index.php. Например пользователь vasya будет видеть свою страничку как index.php?user=vasya, а его персональные ссылки будут вида index.php?user=vasya&ID=main 2. Персональные странички как ты и предлагал хранить на сервере в подпапках типа /vasya. 3. Далее в главное меню в ява-скрипт (я правильно понял что там будет выпадающее меню на яве?) дописать для каждого юзера ссылки типа: index.php?user=vasya&ID=main и index.php?user=vasya&ID=write_me. 4. Ну а теперь к самому вкусному :) центральная часть (доработанный твой скрипт): PHP код:
|
Ругается, пишет Parse error: parse error, unexpected '{' in w:\home\localhost\www\script\index.php on line 12
|
Цитата:
if (in_array($res, $links) { на if (in_array($res, $links)) { Также в приведенном коде есть еще ошибка: include ("$_GET["user"]/$res.htm"); нужно заменить на include ("{$_GET['user']}/$res.htm"); |
Я сделал вот так:
PHP код:
|
Назначение
А вообще я бы поставленню задачу решил бы совсем не так, зачем нужно изобретать подобный велосипед...
Просто делаются ссылки Главная и Напиши с передачей информации о пользователе, ну скажем так: main.php?user=vasya - Главная, write_me.php?user=petya... А уже в данных файлах извлекается информаия о пользователе из БД (или из файлов, ну или где определим ее хранить), и выводится на страницу... Если страницы будут делаться пользователями и произвольного дизайна - то задача чуть усложнится использованием шаблонов, впрочем весьма тривиальных в данном случае... Можно и, как предложено выше один файл с двумя параметрами (index.php?user=vasya&ID=main) - но тогда просто на пару строчек больше определения какой раздел запрошен и все... Как дополнительный вариант конечно можно использовать и переадресацию в зависимости от параметров, но я бы предпочел первый... P.S. Принципиальный вопрос: Регистрация пользователей будет атоматической, с сайта или пользователи будут сами делать себе странички и им будут создаваться папки на сервере? В первом случае мой вариант гораздо лучше, т.к. не потребуется делать кучу почти дублирующихся файлов.... |
Я думаю что нет смысла делать страницы типа main.php и write_me.php т.к. у всех страниц дизайн одинаковый, по этому пусть грузится index.php с внутринностями. В принципе то, что предложил Fiery_Fenix подходит, остался только баг в плане того, что приходя по ссылке index.php?user=vasya без указания &?ID=main страница заполняется не из /vasya/main.htm, а из /main.htm.
|
Цитата:
|
Тут как раз стоит, т.к. это своего рода коммерческий проект (рекламный сайт), что-то типа персонального сайта, но инфо пользователя только на 2 страницах, и фсё ;) , остальная инфа общая для всех.
И в общем-то всё работает как надо, только что-то надо дописать чтоб работало Цитата:
|
Цитата:
Цитата:
Код:
if (($res=="main") or ($res=="write_me")) include ("{$_GET['user']}/$res.htm");Код:
if ($res){ |
Похоже я недопонял предложенный тобой вариант.
Если можно поясни. |
Есть ОДНА страница для всех пользователей, но в зависимости от того с какими параметрами она вызвана (для какого пользователя) выводится содержимое по этому пользователю, где данные беруться либо из БД либо из файлов....
Это может быть и вообще один файл на весь сайт, но IMHO, это не лучший вариант, и как логически разделять - тебе решать. Кстати используя mod_rewrite или стандартный обработчик ошибок сервера легко можно сделать чтобы адреса представлялись как ты писал вначале - в виде каталогов для каждого пользователя... |
Можешь дать пример кода? Если тебе не сложно конечно.
|
Цитата:
Стучись на аську, если хочешь. Могу либо подсказать как делать и ответить на все вопросы, либо сам полностью сделать за небольшую плату. |
Пользователи вообще не будут регистрироваться! Тоесть всё делаю я. Это даже скорее всего не пользователи.
Главный замысел этой страницы таков. К примеру это мой сайт, с какойто рекламой, чего либо. Теперь например мой друг тоже хочет это дело рекламировать, и соответственно такой сайт. Всё что мне нужно, так это добавить страничку про него - "Главная", и страничку с его контактной инфой - "Напиши", остальная инфа одинаковая, один в один как у меня. Вот собственно цель. |
Это неважно, кто будет регистрировать пользователей, важно где мы предполагаем хранить информацию о них. Ведь гораздо удобнее просто забить в формочку в панели администрированя сайта (скажем по паролю администратора) данные пользователя (Имя, контактные данные...), чем каждому новому создавать по две страницы?
|
Цитата:
Цитата:
ЗЫ А создавать файлики по шаблону скриптом не так уж сложно :) |
| Часовой пояс GMT +4, время: 23:01. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.