如果CO已完成,我的网站会发送一封电子邮件,其中包含指向该用户的链接。
如果用户未登录,则必须首先进入登录页面,并且只有在用户登录后才会将其重定向到网址。
现在如果用户已登录,他们直接转到网址,但没有登录进入登录页面,他可以登录,但他不是直接到网址,任何人都可以帮忙吗?
这个带有一些参数的网址会被发送给用户作为链接
<?php
if(isset($_SESSION['ssid']) && $_SESSION['ssid'] == session_id() )
{
// do you staff, after login confirm
}
else {
// redirect to loginPage.php
}
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
use yii\widgets\Pjax;
use kartik\grid\GridView;
use backend\models\Item;
use backend\models\Respond;
use kartik\time\TimePicker;
use backend\models\RespondItem;
use backend\models\RequestItem;
use backend\models\DistributorHasItemCode;
?>
<?php
$check = null;
$checknow = null;
$checkfield = null;
$today = date('Y-m-d');
$date = date("Y-m-d H:i:s", time());
$date1 = new DateTime($date);
$date2 = new DateTime($model->end_date.' '.$model->end_time);
if(empty($model->end_date))
{
$model->end_date = $today;
}
if (Yii::$app->user->identity->ref_table =="sales_rep")
{
$sales_rep = Yii::$app->user->identity->ref_id;
$respond = Respond::find()->where(['sales_rep_id'=>$sales_rep,'customer_order_request_id'=>$model->id])->one();
if (!empty($respond) && $respond->status == 'Finalized and customer Notified' || $date1>=$date2 )
{
$check = "disabled='disabled'";
}
if ($model->status == 'Finalized and Sales Rep Notified') {
$checknow = "disabled='disabled'";
}
}else {
if ($model->status == 'Finalized and Sales Rep Notified') {
$check = "disabled='disabled'";
}
}
?>
<?= Yii::$app->session->getFlash('success') ?>
<div class="customer-order-request-form">
<?php $form = ActiveForm::begin(['id'=>'cor']); ?>
<fieldset <?= $check?> >
<fieldset <?= $checknow?> >
<div class="row">
<div class="col-lg-4">
<?= $form->field($model, 'code')->textInput(['maxlength' => 10,'readonly'=>TRUE]) ?>
</div>
<div class="col-lg-2" disabled>
<?= $form->field($model, 'end_date')->widget(\yii\jui\DatePicker::classname(), [
'dateFormat' => 'yyyy-MM-dd',
'clientOptions'=> ['defaultDate'=>$today,'minDate' =>$today,],
'options'=>[
'class'=> 'form-control',
],
])
?>
</div>
<div class="col-lg-2">
<?= $form->field($model, 'end_time')->widget(TimePicker::classname(), [
'pluginOptions' =>
[
'showMeridian' => true,
],
]);
?>
</div>
<div class="col-lg-4">
<?= $form->field($model, 'status')->textInput(['readonly'=>TRUE]) ?>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<?= $form->field($model, 'description')->textarea(['rows'=>3]);?>
</div>
</div>
</fieldset>
<div class="form-group">
<?= Html::submitButton((Yii::$app->user->identity->ref_table =="sales_rep")?'Save':'Update', ['class' =>'btn btn-success']) ?>
<?= Html::button((Yii::$app->user->identity->ref_table =="sales_rep")?'Finalize & Notify Customer':'Finalize & Notify Sales Reps', ['class' => 'btn btn-primary finalize']) ?>
</div>
</fieldset>
<?php ActiveForm::end(); ?>
答案 0 :(得分:0)
应使用会话来处理登录。
假设您的网址为http://somedomain.com/somepage.php?token=some_tokan
。
因此,在 somepage.php ,使用会话检查进行登录确认,如:
<?php
ob_start();
session_start();
if(isset($_SESSION['ssid']) && $_SESSION['ssid'] == session_id() )
{
// do your stuff, after login confirm
}
else {
// redirect to loginPage.php
// With "header('Location:yoururl'); for example
}
在 loginPage.php 中,成功登录凭据后,分配$_SESSION['ssid']
值,如:
ob_start();
session_start();
// if login credentials are verified.
$_SESSION['ssid'] = session_id();