0
我有一個系統,用戶可以登錄,並可以選擇該事件並將保存到數據庫中。調用當前用戶登錄的選擇項的用戶名
然而,問題是,我可以設置爲只有一個用戶,你可以在9號線在save.php看到
所以我的問題是,如何設置用戶在系統中自動這樣如果其他用戶登錄,數據將被保存在他們的名下。這個問題是因爲登錄使用yii2框架,這個選擇事件被使用HTML和事件的模型是使用GII,
這裏是我的代碼:
代碼爲viewevents.php
<?php
echo '<link href="../../css/style.css" rel="stylesheet"/>';
$event = get_events();
function get_events(){
include ("../config/connect.php");
$sql = "SELECT * FROM `events` order by event_id desc;";
if ($result = $dayahlatiff->query($sql)) { $in = 0;
while ($row = $result->fetch_assoc()) {
$new_res[$in] = $row;
$in++;
}
$result->free();
}
return isset($new_res)?$new_res:array();
}
$this->title = 'View Events';
$this->params['breadcrumbs'][] = $this->title;
?>
<?php $in = 1;
if (!empty($event)) {
include 'events.php';
}
?>
爲save.php
<?php
session_start();
if(isset($_SESSION["id_"])){
// $hh = $_SESSION["id_"];
// die($hh);
}
require("../../../vendor/yiisoft/yii2/Yii.php");
$user = "dayahlatiff";
//$user = Yii::$app->user->identity->username;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
if(isset($_POST["save"])){
include ("../../config/connect.php");
$where = $_POST["where"];
$list = $_POST["check_list"];
if(empty($list)){
header("Location: ".$where);
}else {
$done = true;
for($s = 0; $s<sizeof($list); $s++){
$event = $list[$s];
$sql = "INSERT INTO `selectevents` (`user_id`, `username`, `event_title`) VALUES (NULL, '$user', '$event');";
if($dayahlatiff->query($sql) === FALSE){
$event = false;
}
}
header("Location: ".$where);
}
}
這看起來像一些舊的遺留PHP代碼被迫使用Yii。你爲什麼不正確使用Yii 2? – Bizley
@Bizley其實,我試過使用yii2,但它不工作..所以我從我的朋友那裏得到幫助,但他不是太高手使用yii2,這就是爲什麼代碼混合yii2和html。但是,html代碼僅適用於這兩個文件(viewevents.php和save.php) – Fyp16
帶'// user = ...'的註釋行正是獲取已記錄的Yii 2用戶的用戶名的方式,但是我真的懷疑你是否可以像這樣在沒有任何問題的情況下使用它。除了你的代碼是開放給SQL注入的。 Yii 2並不難學。檢查[Yii 2指南](http://www.yiiframework.com/doc-2.0/guide-index.html)並正確執行。 – Bizley