如何创建单个动态用户页面以处理来自其唯一ID

时间:2015-06-27 15:14:36

标签: php

我有一个提交到数据库的表单。从那里我想生成一个唯一的URL并使用数据库中的数据填充该页面。

我怎么能只使用一页来解决这个问题。我需要结束http://sample.com/UNIQUEID的网址是唯一的,以便每个用户都有自己的链接。但是,如果不在我的文件管理器中创建100个页面,我就不知道该怎么做。

HTML

<form action="submit.php" method="post">
    <input type="text" name="name" placeholder="name">
    <input type="email" name="email" placeholder="email">
</form>

PHP

<?php
    require_once('config.php');

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {

        if (!empty($_POST['name'])) {
            $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
        };
        if (!empty($_POST['email'])) {
            $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
        };
    };

    try {
        $db = new PDO('mysql:host=$host;dbname=$dbname;charset=$charset', '$username', '$password');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

        $stmt = $db->prepare('INSERT INTO user (name, email) VALUES (:name, :email)');

        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':email', $email);
    } catch(PDOException $e) {
        return $e->getMessage();
    };
?>

1 个答案:

答案 0 :(得分:1)

这是一个.htaccess问题。

将此代码添加到.htaccess文件中:

# Turns on Mod-Rewrite Engine
# ----------------------------------------------------------------
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

# Pages 
# ----------------------------------------------------------------
RewriteRule ^([^/]+)/?$ WHATEVER-PAGE.php?id=$1 [QSA,L]

WHATEVER-PAGE.php上,您获得了id通过:

$user = $_REQUEST['id'];并从那里进行正常处理。

推荐.htaccess审核初学者:

https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/