私はアンケートのウェブページを作成して、データを送信します(他のページの$_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