我有一个提交到数据库的表单。从那里我想生成一个唯一的URL并使用数据库中的数据填充该页面。
我怎么能只使用一页来解决这个问题。我需要结束http://sample.com/UNIQUEID
的网址是唯一的,以便每个用户都有自己的链接。但是,如果不在我的文件管理器中创建100个页面,我就不知道该怎么做。
<form action="submit.php" method="post">
<input type="text" name="name" placeholder="name">
<input type="email" name="email" placeholder="email">
</form>
<?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();
};
?>
答案 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/