我正在处理具有登录用户可以填写和提交的不同表单的应用程序。例如,艺术家可以通过表单提交他们的视频,该电影将被保存并上传到数据库。 但是,我希望提交表单时,它会自动将用户ID和用户电子邮件连接到表单,以便我可以在撤回数据时轻松检查用户标识或电子邮件。 我已经尝试了几种不同的方法来做到这一点,没有任何工作,所以任何帮助,非常感谢。我也在我的数据库表中使用外键,但我不明白这是如何工作连接到表。 所以这里是为用户和电影 用户表Php pdo将会话数据插入公司
CREATE TABLE IF NOT EXISTS. `users` (
`userID` int(11) NOT NULL. AUTO_INCREMENT,
`userEmail` varchar(100) NOT NULL,
`userPass` varchar(100) NOT NULL,
`userType` varchar(6) NOT NULL,
`agreement` enum('Yes', 'No') NOT NULL,
`userStatus` enum('Y','N') NOT NULL. DEFAULT 'N',
`tokenCode` varchar(100) NOT NULL,
PRIMARY KEY (`userID`),
UNIQUE KEY `userEmail` (`userEmail`)
) ENGINE= MyISAM DEFAULT. CHARSET=latin1. AUTO_INCREMENT=1 ;
电影表我的表设置
CREATE TABLE `movies` (
`userID` int(11) NOT NULL,
`userEmail` varchar(250) NOT. NULL,
`movie_name` varchar(300) NOT NULL,
FOREIGN KEY (userID) Refrences users(userID),
FOREIGN KEY (userEmail) REFRENCES users(userEmail),
UNIQUE KEY `movie_name` (`movie_name`)
) ENGINE=MyISAM DEFAULT. CHARSET=latin1;
表单页面在这里 (我尝试添加的会话数据的张贴在这里,并试图添加SESSION数据的GET方法都不工作)
if(isset($_POST['submit']))
{
$email = trim($_POST['email']);
$movie = trim($_POST['movie']);
if($user_home->upload($email, $movie))
{
header("Location: Artist_Uploads.php?inserted");
}
else
{
header("Location: Artist_Uploads.php?failure");
}
}
<form action="Artist_Uploads.php" method="post" name="upload">
<input name="email" type="hidden" value="<?php echo. htmlentities($row['userEmail']); ?>" />
<input name="movie" type="text" />
<input name="submit" type="submit" />
</form>
处理表单提交的页面
public function upload($email,$movie) { try
{
$stmt = $this->conn->prepare("INSERT INTO movies(userEmail, movie_name) VALUES(:email, :movie)");
$stmt->bindValue(":email",$email);
$stmt->bindparam(":movie",$movie);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
我试着在return true之后插入lasted()并返回true。
试过添加VALUES('','$ _ SESSION [cuserID]','$ _ SESSION [userEmail]',''):movies“); 我也尝试在bindValue或bindCol中添加_SESSION数据 我也尝试添加INSERT INTO电影FROM users.userID,users.userEmail但是也没有效果
所以我不知道如何让它插入userID和userEmail而不输出它然后插入表单然后插入它,但这似乎是危险的,并打开注入,因为有人可以轻松地操纵该信息或 获得用户ID并开始玩它,所以任何建议或指针将不胜感激。
请根据需要使用适用于SQL和PHP的代码块编辑您的问题。 – alttag
感谢您的编辑。我最好理解你的代码和解释 - 而且很难阅读 - 你试图从'$ _SESSION'中获取数据。提交表单后,数据位于'$ _POST'中,而不是'$ _SESSION'中。否则,请确保您在PHP中打开了错误报告,并在问题中分享任何错误。 – alttag
我想提交会议资料时不要在提交表格后提交表格。说一个用户登录,他们想提交一部电影。当他们提交他们的电影时,他们的用户ID和用户电子邮件将自动保存到数据库当表单submited。会话数据包含用户ID和电子邮件我只是不确定如何在用户提交表单时获取该信息。那是因为更多吗? – shutterfly