我正在處理具有登錄用戶可以填寫和提交的不同表單的應用程序。例如,藝術家可以通過表單提交他們的視頻,該電影將被保存並上傳到數據庫。 但是,我希望提交表單時,它會自動將用戶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