-1
我有一個調查網頁,如果用戶完成了,我會發送他們給出的數據(作爲$_SESSION
從其他頁面),我會將他/她的狀態更改爲0(他們在他/她的登錄信息之後,不能再進行調查)。用PDO發送數據後重定向到空白頁
所有這些都與PDO
。但爲什麼頁面總是重定向到白色的空白頁面?
這裏是我的代碼
<?php
session_start();
if (!isset($_SESSION['user']))
{
header("location:index.php");
}
?>
<?php
require_once "condb.php";
?>
<?php
if (isset($_POST['BTN_P2']))
{
$_SESSION['problem'] = $_POST['problem'];
if ($_SESSION['problem'] == "yes"){header("location:survey_3.php");}
else
{
$sql="INSERT INTO data(time,suggest,phone,eat,problem) VALUES(?,?,?,?,?)";
$stm=$cn->prepare($sql);
$stm->bindParam("1",$_SESSION['time']);
$stm->bindParam("2",$_SESSION['suggest']);
$stm->bindParam("3",$_SESSION['phone']);
$stm->bindParam("4",$_SESSION['eat']);
$stm->bindParam("5",$_SESSION['problem']);
try
{
$stm->execute();
try
{
$sqlstatus="INSERT INTO login(status) VALUES(0)";
$stmt=$cn->prepare($sqlstatus);
$stmt->execute();
echo "Finish!";
header('location:finish.php');
}
catch (Exception $error)
{
echo $error->getTraceAsString();
}
}
catch (Exception $e)
{
echo $e->getTraceAsString();
}
}
}
?>
我缺少什麼?
編輯#1:驗證$_SESSION['user']
來自何處。
<?php
if (isset($_POST['BTN_ENTER']))
{
$username=$_POST['username'];
$password=$_POST['password'];
$hashed_password=password_hash($password,PASSWORD_DEFAULT);
try
{
$stmt = $cn->prepare("SELECT * FROM login WHERE username=:username LIMIT 1");
$stmt->execute(array(':username'=>$username));
$result=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{
if(password_verify($password, $result['password']))
{
if ($result['status']==1)
{
$_SESSION['user']=$result['name'];
header('location:survey.php');
}
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
很可能因爲'$ _SESSION ['user']'從未設置。你可以顯示設置'$ _SESSION ['user']'的代碼嗎? – Fredster
你怎麼知道它是重定向到一個空白頁面,而不是簡單地有一個錯誤,你沒有看到,因爲你沒有使用'error_reporting(E_ALL)查看錯誤;'?是否打開查看錯誤? – Rasclatt
@Fredster我已經編輯來驗證$ _SESSION ['user']'來自何處。 – PaoPaoMC