PHP - 用户链接

Posted

技术标签:

【中文标题】PHP - 用户链接【英文标题】:PHP - Users links 【发布时间】:2017-12-11 04:20:03 【问题描述】:

我已经创建了一个注册和登录系统,它工作正常。 但是,我只知道如何制作注册和登录系统,我不知道如何为每个注册用户制作链接

喜欢: example.com/marwan example.com/user/marwan

这是我的注册 php 代码:

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

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


require 'includes/database.php';

$message = '';

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

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

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

endif;

?>

我的登录代码是:

<?php

session_start();

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


require 'includes/database.php';

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

	$message = '';

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

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

	 else 
		header("Location: /tregolapp/failed");
	

endif;

?>

有人可以帮帮我吗?

【问题讨论】:

有了类似的东西,你可能最好拥有example.com/user/marwan,这样你就可以使用.htaccess来读取/marwan并使用路径/?user=marwan允许为该用户运行动态页面.许多不同的方法可以做到这一点,所以它更取决于你想要什么。 您好 NewToJS,您能否给我一个代码或要添加的东西,这样它才能构成我要求的系统,或者通过提供指南来帮助我 to do 以便它帮助我这样做。 好吧,如果你想使用你的.htaccess,那么你可以看看这篇文章***.com/questions/16388959/url-rewriting-with-php,但正如我所说,这只是众多方法之一......如果你认为一种特定的方式并自己尝试但有问题我相信有人可以帮助你,但此时你的问题并没有真正表明特定的方式/尝试。这就像你是为了一个教程而不是一个解决方案。 【参考方案1】:

您为每个用户提供“自己的 URL”的目的是什么?

如果您希望每个用户在登录时看到他们的“自己的信息”,那么在登录后转到一个通用的“主页”,同时持有一个会话 ID。使用该 id 从数据库中提取“用户特定”数据并将其显示在“主页”上。

【讨论】:

您好,我已经完成了“我的个人资料页面”,但是,我想制作一个用户可以查看其他用户帐户的系统,因为我将它用于社交网络,我需要人们能够查看其他帐户。 所以,使用 session 来保存用户的 id(即他们已登录的事实),然后从数据库中提取您想要的任何信息。为什么要让他们导航到静态页面?您的所有页面(登录后)都可以是动态的,数据来自数据库。为简单起见,在 php 中,您可以将特定的 php“页面”作为(例如)“view_others_data.php”页面。该页面将允许登录用户查看其他人的帐户,您可以使用“权限”类型的表格来确定允许“登录用户”在该页面上查看哪些信息。

以上是关于PHP - 用户链接的主要内容,如果未能解决你的问题,请参考以下文章

DataTables PHP动态编辑/删除基于用户权限的链接

当用户点击链接时如何运行 PHP 代码?

php 隐藏指定用户的左侧菜单链接

php 输出链接以切换当前用户的订阅。

php [Wordpress]自动链接到Twitter用户名

php 将“丢失密码”链接添加到用户表单(块和页面)