因此,我試圖通過一本書的幫助來了解自己的MVC。 我仍然在一個非常基本的水平所以請記住,如果你有足夠的回答。PHP重定向在Chrome中運行,但不能在其他瀏覽器中運行
這是我的應用程序佈局的一部分:
現在我有一個簡單的登錄表單
<form method="post" action="index.php">
<input type="text" name="action" value="login" style="display: none">
<label for="email">Email</label>
<input type="email" required="required" name="email" id="email" placeholder="Enter Your Email" />
<br />
<label for="password">Password</label>
<input type="password" required="required" name="password" id="password" placeholder="Enter Your Password" />
<button type="submit" name="submit">Login</button>
</form>
注意第一場name="action" value="login"
因爲重定向是依賴於特定的領域。
模型
users_db.php
function login($email, $pword)
{
$sql = "SELECT * FROM users WHERE email = :email AND pword = :pword ";
$stmnt = $db->prepare($sql);
$stmnt->bindValue(':email', $email);
$stmnt->bindValue(':pword', $pword);
$stmnt->execute();
if ($stmnt->rowCount() > 0) {
return $stmnt->fetchAll();
} else {
return null;
}
}
目錄 - 用戶
index.php文件服務器的控制器。以下是「控制器」的部分摘錄,並且是問題發生的地方。
require_once('../config/db.php');
require_once('../model/users_db.php');
if(isset($_POST['action'])) {
$action = $_POST['action'];
if ($action == 'login') {
$email = htmlspecialchars($_POST['email']);
$pword = htmlspecialchars($_POST['password']);
$users = login($email, $pword);
if (is_array($users)) {
foreach ($users as $user) {
session_start();
$_SESSION['firstname'] = $user['firstname'];
$_SESSION['lastname'] = $user['lastname'];
$_SESSION['username'] = $user['username'];
$_SESSION['email'] = $user['email'];
$_SESSION['userType'] = $user['userType'];
$_SESSION['userID'] = $user['userID'];
header('Location:welcome.php');
die();
}
APP FLOW/STEPS
- 用戶在表單中輸入電子郵件地址和密碼。
- 表單信息傳遞給index.php包含電子郵件,pword的「控制器」。和隱藏的輸入字段值
- 在index.php文件中,控制器檢查隱藏輸入字段
action
值是否設置爲登錄。 - 如果設置了登錄名,它將調用users_db模型的登錄函數,該模型查詢db並返回所有用戶信息。
- 假設正確的電子郵件& PWORD被照耀處,index.php文件重定向用戶歡迎頁面和
exit()
在Chrome以下作品完美,但所有其他瀏覽器重定向到一個404錯誤的index.php沒有找到。這對我來說很奇怪,如果有人能提供一些關於上述錯誤發生的原因,我們將不勝感激。
它看起來像問題是在表單提交,而不是在設置會話後的重定向。發生錯誤後,您是否可以返回並嘗試打印會話以查看所看到的內容。如果在重定向時出現問題,那麼應該已經設置了會話 – manian
請檢查此帖是否有幫助,http://stackoverflow.com/questions/17838408/404-error-when-submitting-form – manian
首先檢查您的帖子正在執行。 – siddhesh