0
パスコードを要求するためにモーダルポップアップが必要でした。私は以下のことをしましたが、常にログインページにリダイレクトされます。セッションがまったく作成されなかったようです。yii2ウェブページにアクセスする前にパスコードを作成する
main.php(レイアウト)
<div class="modal fade" id="mymodal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><span class="glyphicon glyphicon-lock"></span>PASSCODE</h4>
</div>
<form role="form" id="myform" action="site/passcode">
<div class="modal-body">
<div class="form-group">
<!--<label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Enter Passcode</label>-->
<input type="text" class="form-control" id="passcode" placeholder="Enter Passcode">
</div>
</div>
<div class="modal-footer">
<button id="passcodeBtn" class="btn btn-success btn-block" onClick="btn_click()">Submit</button>
</div>
</form>
</div>
</div>
<?php
if(!isset($_SESSION))
{
session_start();
}
//$_SESSION["user"] = "permit";
if(!isset($_SESSION["user"])) {
echo "<script type='text/javascript'>
$('#passcodeModal').modal({
backdrop: 'static',
keyboard: false
})
$(document).ready(function(){
$('#passcodeModal').modal('show');
});
</script>";
}
?>
<script>
function validatePasscode_click()
{
var pc = document.getElementById('passcode').value
//document.getElementById("passcodeform").submit();
//
console.log("inside click");
$.ajax({
type: "POST",
url: '/site/passcode',
data: {name: pc, _csrf: yii.getCsrfToken()},
//dataType: "json",
success: function(response){
console.log("ajax");
var resp = response;
var answer = jQuery.parseJSON(response);
console.log(answer);
if(answer == '123'){
$('#passcodeModal').modal('hide');
}
}});
return false;
}
</script>
私はAJAXを使用してパスコードを検証する必要
CONTROLLER
public function actionPasscode() {
// a list of available cities
if(Yii::$app->request->isAjax) {
$data = Yii::$app->request->post();
$passcode = $data['name'];
$_SESSION["user"] = "permit";
if($passcode == '123'){
if(!isset($_SESSION))
{
session_start();
}
$_SESSION["user"] = "permit";
}
return json_encode($passcode);
}
}
は、セッションを設定する検証そう前夜あなたが前に入力した場合はパスコードをもう一度尋ねません