2013-02-20 2 views
-1

Я сделал небольшую систему входа для пользователей, они могут входить в систему и изменять свою информацию на странице account_setting.Динамические страницы/ссылки в php как это работает

Но так как im довольно новый для php, мне интересно, как я могу дать каждому пользователю свою страницу? Страница, которая является общедоступной.

Ex, Пользователь "Steven" имеет user_id=17.

Как создать страницу для этого пользователя, чтобы его информация отображалась там. Что-то вроде website.com/user=17 ... Его информация.

А также, если страница может действовать как шаблон, просто различная информация/url в зависимости от пользователя.

Я не прошу никому написать это для меня, ссылка на хороший учебник будет работать просто отлично :) Но, пожалуйста, никаких 5-летних сообщений по этой теме.

+0

Что случилось с 5-летними постами, до тех пор, как они отвечают на ваш вопрос? Ваш вопрос очень прост, и 10 лет назад люди делали гораздо более сложные вещи с помощью PHP! –

+0

Я должен быть более конкретным, я не защищаю страницы. Использование mysql и т. Д. –

ответ

0

вам нужно userprofile.php? Идентификатор_пользователя = 17 и использовать $ _GET [ «идентификатор пользователя»] сделать информацию на основе этого пользователя. HTML должен быть таким же на userprofile.php только данные будут меняться в зависимости от идентификатора пользователя. Если идентификатор не задан, то выводит сообщение об ошибке или что-то

0

Вообще говоря:

if (!empty($_GET['user']) && is_numeric($_GET['user'])){ 
    //Find him in database 
    if (user_found($_GET['user'])){ 
    include "left_column.php" ; 
    include "user_info.php" ; 
    } else { 
    echo "Page is not found" ; //or set header error 404 
    } 
} else { 
    include "news_column.php" ; 
} 
-1

Я буду считать, что вы храните информацию о пользователях в базе данных. Для аргумента мы скажем, что это база данных mysql. Что вам нужно сделать, это захватить идентификатор пользователя, а затем прочитать только этот столбец из базы данных.

Если ваш URL является website.com/user/view.php?id=17, переменная пользователя будет в $ _GET [ 'ид']

Так что-то вроде этого:

$id = mysqli_real_escape_string($_GET['id']); 
$results = mysqli->query("select * from users where id = '$id'"); 
$results = $results->fetch_assoc(); 

... будет выводить информацию для пользователя; то вы просто создадите страницу для ее отображения.

+0

DONT USE mysql_ * функции, которые они устарели, и не обучают других использовать эти функции вместо PDO или MySQLi – GGio

+0

Ярмарка; поэтому я бы заменил mysql_query на mysqli-> query и mysql_fetch_assoc ($ results) с помощью $ results-> fetch_assoc() - что бы заменить mysql_real_escape_string? Или mysqli делает это автоматически? Я хочу пересмотреть свой ответ на действующие стандарты. – DiMono

+0

Спасибо большое! Да, используя mysql db, запросы с mysqli ofc. –

0

website.com/index.php?user=17

<?php 
require_once 'db/connect.php'; 

//Pull in 'user' from the query string. 
$user = isset($_GET['user']) ? trim($_GET['user']) : null; 

//Try to pull that user's info from the database. 
$stmt = $dbh->prepare("SELECT * FROM user WHERE user_id = :user_id"); 
$stmt->bindParam(':user_id', $user); 
$stmt->execute(); 
$user= $stmt->fetch(PDO::FETCH_ASSOC); 

if(!is_array($user)){ 
    //User not found. Throw 404 or redirect. 
    header('HTTP/1.0 404 Not Found'); 
    exit; 
} 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title><?php echo htmlentities($user['name'], ENT_QUOTES, "utf-8"); ?></title> 
    </head> 
    <body> 
     <h1><?php echo htmlentities($user['name'], ENT_QUOTES, "utf-8"); ?></h1> 
     <p> 
      <?php echo nl2br(htmlentities($user['bio'], ENT_QUOTES, "utf-8")); ?> 
     </p> 
    </body> 
</html> 
+0

Большое спасибо! –

Смежные вопросы