#php #mysql #database #redirect
#php #mysql #База данных #перенаправление
Вопрос:
В настоящее время я работаю над сайтом социальной сети, и я хотел бы, чтобы пользователь мог вводить веб-адрес другого пользователя и перенаправляться на его профиль. Дело в том, что у каждого существующего пользователя есть столбец в базе данных MySQL, в котором указывается, какие шаблоны страниц он использует, и данные, которые нужно вводить в этот шаблон. Как я могу сделать так, чтобы при вводе примера: http://www.emuze.co/users/@bob_marly (после него может быть указан суффикс .PHP / .HTML), веб-сайт запросит базу данных, найдет шаблон, перенаправит на эту страницу шаблонов (например http://www.emuze.co/temps/temp1.0.php ) и использовать пользователей, которые a из базы данных MySQL? Я знаю, что это очень длинный и сложный вопрос, но я был бы очень признателен за любую помощь! большое спасибо! :@
Комментарии:
1. Есть ли какая-либо причина, по которой вы не просто перенаправляете на целевой сайт? Я имею в виду, по-настоящему. Вместо того, чтобы обрабатывать перенаправление внутри, показывая что-то другое, чем вы должны отображать, просто перенаправьте пользователя на целевую страницу. Для этого вы можете использовать либо заголовок HTTP Location, либо мета-тег. (Если это не имеет смысла, возможно, я вообще не понял ваш вопрос.)
2. Я не уверен, означает ли «работа над сайтом социальной сети» его написание или использование существующего. Если это сервер, который вы контролируете, ответ заключается в использовании Ajax, связываясь с внутренним процессом, который запрашивает базу данных. Если нет, то вы не сможете этого сделать, если это не будет предоставлено сервером.
3. нет, я делаю свой собственный с нуля
Ответ №1:
Вы должны предоставить каждому пользователю строку вместо столбца в таблице, которая указывает, какой шаблон используется для каждого пользователя.
Например, у вас будет таблица «шаблоны» со столбцами «Идентификатор пользователя», «Имя пользователя» и «Шаблон». Тогда таблица будет выглядеть примерно так:
-------- ---------- ----------
| UserID | Username | Template |
-------- ---------- ----------
| 1 | John | temp1.0 |
| 2 | Paul | temp1.1 |
| 3 | Eric | temp1.0 |
| 4 | Frank | temp1.2 |
-------- ---------- ----------
…и софорт.
Затем вам нужно будет запросить, какой шаблон есть у пользователя. Например, чтобы узнать, какой шаблон использует пользователь с идентификатором пользователя ‘3’, предполагая, что ваш ресурс подключения к mysql хранится в переменной $link:
$query = "SELECT * FROM templates WHERE UserID=3";
$result = $link->query($query);
$row = $result->fetch_assoc();
$row [‘Template’] приведет к ‘temp1.0’, который вы могли бы использовать для включения определенной таблицы стилей CSS, включая конкретные PHP-файлы или что-то еще, но вы также можете получить всю другую пользовательскую информацию, такую как $row [‘Username’]. Нет необходимости в перенаправлениях.
Комментарии:
1. но то, что я хотел сделать, похоже на то, что вы только что написали, но я хочу сделать так, чтобы случайный ГОСТЬ мог перейти по URL-адресу пользователя, а затем автоматически запросить базу данных и найти информацию и шаблон пользователя, хотя такая страница на самом деле не существует (страницас именем пользователя не существует, есть только скрипт для превращения адреса в переменную и использования его для запроса к базе данных, а затем выполнения некоторых действий с использованием данных из базы данных). Это вообще возможно? если нет, как вы рекомендуете это делать?
2. Может быть, вы ищете перезапись URL-адреса .htaccess (mod_rewrite), чтобы извлечь переменную $ _GET из «статического» URL-адреса? Таким образом, вы можете использовать www.emuze.co/temp.php?user=bob_marly как будто это где -то www.emuze.co/users/@bob_marly , затем запрашивает с помощью переменной $_GET[‘user’] workingwith.me.uk/articles/scripting/mod_rewrite
Ответ №2:
Если я правильно понял ваш вопрос, вы имеете в виду это:
Итак, пользователь A хочет видеть сайт от пользователя B. Пользователь A имеет шаблон T_A, пользователь B имеет шаблон T_B. Пользователь A переходит к www.emuze.co/users/B и просматривает его с помощью шаблона T_A.
Если это правильно, сделайте это следующим образом: считайте данные от пользователя B из базы данных. Загрузите профиль пользователя watchings, проверьте, какой шаблон он использует, а затем отобразите сайт, используя шаблон (в этом приведении T_A) и данные пользователя (B).
Очень простой пример:
пользовательская база данных:
|Name | Information | Template
_______________________________________
|A |I'm user A | T_A
|B |I'm user B | T_B
Шаблоны:
T_A:
"Hey, I am %NAME%, Some Infos about me: %INFORMATION%"
T_B:
"Name: $NAME", Information: %INFORMATION"
Пользователь A хочет посмотреть на пользователя B:
Get user B's values from db
Get user A's Template
replace `%NAME%` and `%INFORMATION%`
print it
Обновить:
Я думаю, что вам нужен некоторый mod_rewrite (в Apache, в IIS используются правила перезаписи), которые отображают http://example.com/users/bob_marley чтобы http://example.com/users/index.php?user=bob_marley . Используя это, вы всегда попадаете на этот сайт и можете делать там что угодно.
Вы не должны использовать реальный существующий файл для каждого пользователя, но тот, который получает параметры, подобные этому. И вы должны использовать систему шаблонов, чтобы вы могли повторять templete везде, не перенаправляя пользователей.
Комментарии:
1. но то, что я хотел сделать, похоже на то, что вы только что написали, но я хочу сделать так, чтобы случайный ГОСТЬ мог перейти по URL-адресу пользователя, а затем автоматически запросить базу данных и найти информацию и шаблон пользователя, хотя такая страница на самом деле не существует (страницас именем пользователя не существует, есть только скрипт для превращения адреса в переменную и использования его для запроса к базе данных, а затем выполнения некоторых действий с использованием данных из базы данных). Это вообще возможно? если нет, как вы рекомендуете это делать?