2017-07-07 34 views
0

我創建了一個註冊&登錄系統,它工作正常。 但是,我只知道如何使一個寄存器&登錄系統,我不知道如何做一個鏈接,每個註冊用戶PHP - 用戶鏈接

,如: example.com/marwan
example.com/user/marwan

這是我的註冊PHP代碼:

<?php 
 
error_reporting(0); 
 
session_start(); 
 

 
if(isset($_SESSION['user_id'])){ 
 
\t header("Location: /"); 
 
} 
 

 
require 'includes/database.php'; 
 

 
$message = ''; 
 

 
if(!empty($_POST['email']) && !empty($_POST['password'])): 
 
\t 
 
\t // Enter the new user in the database 
 
\t $sql = "INSERT INTO users (full_name, email, password, phone, country) VALUES (:full_name, :email, :password, :phone, :country)"; 
 
\t $stmt = $conn->prepare($sql); 
 

 
\t $stmt->bindParam(':full_name', $_POST['full_name']); 
 
\t $stmt->bindParam(':email', $_POST['email']); 
 
\t $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT)); 
 
\t $stmt->bindParam(':phone', $_POST['phone']); 
 
\t $stmt->bindParam(':country', $_POST['country']); 
 

 
\t if($stmt->execute()): 
 
\t \t header("Location: account-created.php"); 
 
\t else: 
 
\t \t header("Location: failed.php"); 
 
\t endif; 
 

 
endif; 
 

 
?>

而且我登錄的代碼是:

<?php 
 

 
session_start(); 
 

 
if(isset($_SESSION['user_id'])){ 
 
\t header("Location: /tregolapp/home"); 
 
} 
 

 
require 'includes/database.php'; 
 

 
if(!empty($_POST['email']) && !empty($_POST['password'])): 
 
\t 
 
\t $records = $conn->prepare('SELECT id,email,password FROM users WHERE email = :email'); 
 
\t $records->bindParam(':email', $_POST['email']); 
 
\t $records->execute(); 
 
\t $results = $records->fetch(PDO::FETCH_ASSOC); 
 

 
\t $message = ''; 
 

 
\t if(count($results) > 0 && password_verify($_POST['password'], $results['password'])){ 
 

 
\t \t $_SESSION['user_id'] = $results['id']; 
 
\t \t header("Location: /tregolapp/index.php"); 
 

 
\t } else { 
 
\t \t header("Location: /tregolapp/failed"); 
 
\t } 
 

 
endif; 
 

 
?>

有人能幫助我嗎?

+0

這樣的事情你可能最好有'example.com/user/marwan'這樣你可以使用'.htaccess'來讀取'/ marwan'並使用路徑'/?user = marwan'來允許動態頁面爲該用戶運行。許多不同的方式做到這一點,所以它更多的是你想要的。 – NewToJS

+0

你好NewToJS,你可以給我一個代碼或一些東西來添加,所以它使得我所要求的系統或通過指導*來幫助我做*,因此它可以幫助我做到這一點。 –

+0

那麼如果你想使用你的'.htaccess',那麼你可以看看這篇文章https://stackoverflow.com/questions/16388959/url-rewriting-with-php,但正如我所說,這只是衆多如何做到這一點...如果你想到一個特定的方式,並嘗試自己的,但有問題,我相信有人可以幫助你,但在這個時候你的問題並沒有真正指出具體的方式/嘗試。這就像你需要一個教程而不是一個解決方案。 – NewToJS

回答

0

你給每個用戶「自己的URL」的目的是什麼?

如果您希望每個用戶在登錄時都能看到他們的「自己的信息」,那麼在登錄後,在持有會話ID的同時轉到常見的「主頁」。使用該ID從數據庫中提取「用戶特定」數據並將其顯示在「主頁」上。

+0

您好,我已經完成了「我的個人資料頁面」,但是我想製作一個系統,用戶可以查看其他用戶的帳戶,因爲我使用它作爲社交網絡,我需要人們能夠爭取其他帳戶。 –

+0

因此,使用會話來保存您的用戶的ID(即他們已登錄的事實),然後從數據庫中提取所需的任何信息。爲什麼你想讓他們導航到一個靜態頁面?所有頁面(登錄後)都可以隨數據庫中的數據動態變化。爲了簡單起見,在PHP中你可以有一個特定的PHP「頁面」(例如)「view_others_data.php」頁面。該頁面將允許登錄用戶查看其他用戶的帳戶,並且您可以使用「權限」類型的表格來確定「登錄用戶」允許在該頁面上查看哪種信息。 – dankinship