2016-11-23 6 views
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); 
     } 
    } 
+1

Это похоже на старый код устаревшего PHP, который принудительно использует Yii. Почему вы не используете Yii 2 правильно? – Bizley

+0

@Bizley на самом деле, я пробовал использовать yii2, но он не работает..так, я получаю помощь от моего друга, но он не слишком мастер, использующий yii2, поэтому код смешивает yii2 и html. однако html-код предназначен только для этого 2 файла (viewevents.php и save.php) – Fyp16

+0

Прокомментированная строка с '// $ user = ...' - это именно тот способ, чтобы получить имя пользователя зарегистрированного пользователя Yii 2, но я действительно сомневаюсь, можете ли вы использовать его здесь без каких-либо проблем. Кроме того, ваш код открыт для SQL-инъекции. Yii 2 не так сложно учиться. Проверьте [Yii 2 Guide] (http://www.yiiframework.com/doc-2.0/guide-index.html) и сделайте это правильно. – Bizley

ответ

0

Я предлагаю вам получать информацию о

  • объектно-ориентированного программирования
  • MVC структура
  • Пространства имен
  • Active Record

И получать немножко familier с yii2 и его документации.

Этот код является чистым PHP, в таких системах, как Yii2, нет таких вещей, как включение файлов или подключение к таким базам данных.

Ознакомьтесь с документацией Yii2 от This Url и попробуйте ввести код, используя концепции, доступные в структуре Yii2. Удостоверьтесь, что вы знакомы с этими понятиями и стараетесь забыть о старых школьных PHP-программирования.

Смежные вопросы