嘿,我是php新手,需要帮助才能为每个用户创建一个新页面。我已经有一个用户登录和注册系统。我也有一个profiles.php页面,但是,如何让网站为每个新用户创建一个自动网页。
每当我尝试通过$_GET
或$_POST
连接它时,都会出现未定义的索引错误。
include ("includes/profiles.dbh.inc.php");
$requested_user = $_POST['mailuid'];
try{
$stmt2 = $conn2->prepare("SELECT * FROM profile WHERE id = ?");
$stmt2->execute(array($requested_user));
$mydata = $stmt2->fetch();
} catch (Exception $e) {
//error with mysql
die();
}
答案 0 :(得分:0)
我已经看过几次这个问题。您需要考虑的第一件事是用户如何与该页面进行交互。
这个区别很重要,因为它改变了您处理他们的请求的方式。
让我们看看每个:
这将向您的服务器发出一个 get 请求,因此您需要通过$_GET
处理它。
if (isset($_GET['user'])) {
$userId = $_GET['user'];
// ... query your DB and output result
}
这将向您的服务器发出一个 post 请求,因此您需要通过$_POST
if (isset($_POST['user'])) {
$userId = $_POST['user'];
// ... query your DB and output result
}
请注意,很重要的一点是,HTML <form>
可以提交 post 或 get 请求。您可以通过其 method 属性对其进行控制。如果未指定method属性,则默认为 get 。
<form method="post">
...
</form>
<form method="get">
...
</form>
因此,回答您的问题。您可能会遇到未定义的错误,因为您尝试使用键 mailuid ($_POST['mailuid']
)访问帖子数组,但该错误不存在。它不存在是因为:
要调试,请回到基础知识-使用$_GET
将代码更改为使用$_GET['mailuid']
,然后确保使用相应的查询字符串-...?mailuid=1
访问页面。
最后,打开错误报告-https://stackoverflow.com/a/5438125/296555。您应该始终这样做并更正所有错误和警告。