<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Загрузка аватарки
13.12.2013 22:29:17 Загрузка аватарки Сообщение #1
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

Одна из причин, которая была у меня, это максимальный размер файла, который денвер может пропустить. Попробуйте маленький файл или изменить параметры
Профиль Ответить
13.12.2013 22:48:23 Загрузка аватарки Сообщение #2
tanysha86

tanysha86

Новичок

Новичок

Дата регистрации:
15.10.2013 23:32:05

Сообщений: 4

Спасибо большое за ответ, но я загружаю маленькие аватарки размером не более 1 мб и у меня есть проверка на на мах размер файла и в папку они загружаются, но, к сожелению, функция возврата имени не работает
Профиль Ответить
14.12.2013 01:03:46 Загрузка аватарки Сообщение #3
alexandrdante

alexandrdante

Модератор

Модератор

Дата регистрации:
15.11.2013 15:33:40

Сообщений: 207

можно полный код увидеть?
пробовали на другом веб-сервере локальном,т.е. не на денвере?
Профиль Ответить
14.12.2013 23:14:41 Загрузка аватарки Сообщение #4
tanysha86

tanysha86

Новичок

Новичок

Дата регистрации:
15.10.2013 23:32:05

Сообщений: 4

На локальном сервере не пробывола, только на денвере.
Код файла index:

<?php
session_start();
require_once "lib/user_class.php";

$user=User::dobuser();
$user_auth=$user->checkUser($_SESSION["login"], $_SESSION["password"]);

if ($user_auth){
require_once "lib/forma_user.html";
} else{
echo $_SESSION["password"];
require_once "formaauth.html";
}

if ($_POST["reg"]){
require_once "lib/upload_avatar.php";
$upload_avatar=new Upload_avatar();
$avatar_user=$upload_avatar->uploadFile($_FILES["avatar"]);
echo "</br></br>";
print_r(($_FILES));
echo $name_avatar;
if ($avatar_user) {
$setavatar=$user->setAvatar($login, $name_avatar);
if ($avatar_user) { echo "</br>Аватар успешно загружен</br>".$name_avatar."</br>ура";
}
else echo "</br>ОШИБКА при загрузке аватара1</br>";
}
else echo "</br>ОШИБКА при загрузке аватара2</br>";
$login = $_POST["login"];
$password = $_POST["password"];



$e_mail = $_POST["e_mail"];
$date_bisday = $_POST["date_bisday"];
$month_bisday = $_POST["month_bisday"];
$year_bisday = $_POST["year_bisday"];
$Pol = $_POST["Pol"];

$zapis =$user->reg_user($login, $password, $e_mail, $date_bisday, $month_bisday, $year_bisday, $Pol);
}
elseif ($_POST["Auth"]){
$login = $_POST["login"];
$password = $_POST["password"];
$auth_sucsses =$user->loginzapis($login, $password);
if ($auth_sucsses){
require_once "lib/forma_user.html";
} else {
echo "в сессию данные не записались";
}
}
?>

код файла upload_avatar.php

<?php
require_once "upload_class.php";
class Upload_avatar extends Upload {
protected $dir="avatar";
protected $mime_types=array("image/png", "image/gif", "image/jpeg", "image/tif";

}
?>


код файла upload_class.php

<?php

abstract class Upload {

protected $dir;
protected $mime_types;

public function uploadFile($file) {
if (!$this->isSecurity($file)) return false;
$name_avatar=md5(microtime()).".".substr($file["type"], strlen("image/");
$uploadfile=$this->dir."/".$name_avatar;
if (move_uploaded_file($file["tmp_name"], $uploadfile)) {
return $name_avatar;
}
else return false;
}

protected function isSecurity($file){
$blacklist=array(".php", ".phtml", ".php3", ".php4", ".html", ".htm";
foreach ($blacklist as $item){
if (preg_match("/$item\S/i",$file["name"])) return false;
}
$type=$file["type"];
for ($i=0; $i< count($this->mime_types); $i++) {
if ($type==$this->mime_types[$i]) break;
if ($i+1==count($this->mime_types)) return false;
}
$size=$file["size"];
if ($size>2048000) echo "</br>Размер аватара превышает 2мб</br>";;
return true;
}
}
?>

код файла ррегистрации formareg.php


<html>
<head>
<title>Регистрация пользователя</title>
</head>
<body>
<h1>Регистрация пользователя</h1>

<form name="reg" method="post" action="index.php"enctype="multipart/form-data">
<table border="2">
<tr>
<td>Введите логин</td>
<td> <input type="text" name="login" /> </td>
</tr>
<tr>
<td>Введите пароль</td>
<td> <input type="password" name="password" /> </td>
</tr>
<tr>
<td>Введите e-mail</td>
<td> <input type="text" name="e_mail" /> </td>
</tr>
<tr>
<td>Введите дату рождения</td>
<td> Выберите день, месяц, год<br>
<select name="date_bisday">

<?php
$date=date("d";
for ($d=1; $d<=31; $d++){
$new_date=$date;
$new_date=$d;

echo "<option value='$new_date'>$new_date</option>";
}
?>

</select>

<select name="month_bisday">

<?php

$month=date("m";
$arr=array("01"=>"Январь",
"02"=>"Феврвль",
"03"=>"Март",
"04"=>"Апрель",
"05"=>"Май",
"06"=>"Июнь",
"07"=>"Июль",
"08"=>"Август",
"09"=>"Сентябрь",
"10"=>"Октябрь",
"11"=>"Ноябрь",
"12"=>"Декабрь";
foreach ($arr as $dm=>$mm){

//$new_month=$month;
$new_month=$arr[$month];
$new_month1=$dm;//почему декабрь выскакивает?
$new_month=$mm;


// echo $dm."<br>";
// echo $arr[$dm]."<br>";
echo "<option value='$new_month1'>$new_month</option>";
}

?>
</select>

<select name="year_bisday">

<?php

$year=date("Y";
for ($dy=1900; $dy<=$year; $dy++){

$new_year=$year;
$new_year=$dy;



echo "<option value='$new_year'>$new_year</option>";
}

?>
</select> </td>
</tr>
<tr>
<td>Введите пол</td>
<td> <input type="radio" checked name="Pol" value="no">Не выбрано
<input type="radio" name="Pol" value="men">Мужской
<input type="radio" name="Pol" value="women">Женский
</td>
</tr>
<tr>
<td>Загрузите аватар</td>
<td> <input type="file" name="avatar" /> </td>
</tr>
<tr>
<tr border="0">
<td colspan="2" align="right"><input type="submit" name="reg" value="Зарегистрироваться" /> </td>
</tr>
</table>
</form>

<p><a href='formaauth.html' title='Авторитизатия'>Авторитизатия</a></p>

</body>
</html>

фаил класса user_class.php
<?php


class User {

private $db;

private static $user;

private function __construct() {
$this->db=new mysqli('localhost', 'root', '', 'myorganisation');
$this->db->query("SET NAME 'utf8'";

}

public function dobuser() {
if ($user === null) self::$user=new User();
return self::$user;

}


public function reg_user($login, $password, $e_mail, $date_bisday, $month_bisday, $year_bisday, $Pol) {
if ($login == "" return false;
if ($password == "" return false;
if ($e_mail == "" return false;
$password=md5($password);
return $this->db->query("INSERT INTO `avtoricacyatb` (`login`, `password`, `e_mail`, `date_bisday`, `month_bisday`, `year_bisday`, `Pol`, `reg_date`) VALUES
('$login', '$password', '$e_mail', '$date_bisday', '$month_bisday', '$year_bisday', '$Pol', '".time()."')";
}




public function checkUser($login, $password) {
$result_set=$this->db->query("SELECT `password` FROM `avtoricacyatb` WHERE `login`='$login' ";
//получаем из базы данные пользователя и получаем массив одномерный
$user=$result_set->fetch_assoc();
$result_set->close();

if (!$user) {
//echo "юзер не получен".$login;
return false;}
else {
//return $user["password"]===md5($password);
if ($user["password"]===$password){//echo "<b>пароль совпадает</b>";
return true;}
else {echo "пароль не совпадает<br>".$password."<br>".$user["password"];
return false;}
}
}



public function checkAtribut($login, $password) {
$result_set=$this->db->query("SELECT `password` FROM `avtoricacyatb` WHERE `login`='$login' ";
//получаем из базы данные пользователя и получаем массив одномерный
$user=$result_set->fetch_assoc();
$result_set->close();

if (!$user) {
return false;}
else {
//return $user["password"]===md5($password);
if ($user["password"]===$password){//echo "<b>пароль совпадает</b>";
return true;}
else {echo "пароль не совпадает<br>".$password."<br>".$user["password"];
return false;}
}
}




public function getAvatar($login) {
$result_set=$this->db->query("SELECT `avatar_user` FROM `avtoricacyatb` WHERE `login`='$login' ";
$row_avatar=$result_set->fetch_assoc();
$result_set->close();
return $row_avatar[avatar_user];
}


public function setAvatar($login, $name_avatar) {
//$result_set=$this->db->query("UPDATE `avtoricacyatb` SET `avatar_user`='$name_avatar' WHERE `login`='$login' ";
//$result_set->close();
return $this->db->query("INSERT INTO `avtoricacyatb` (`avatar_user`) VALUES
('$name_avatar') WHERE `login`='$login'";
}


public function isAuth() {
session_start();
$login = $_SESSION["login"];
$password = $_SESSION["password"];
return $this->checkUser($login, $password);

}


public function loginzapis($login, $password) {
$password=md5($password);
if ($this->checkUser($login, $password)) {
session_start();
$_SESSION["login"]=$login;
$_SESSION["password"]=$password;
return true;
} else {
return false;
}
}


public function __destruct() {
if ($this->db) $this->db->close();
}


}
?>
Помогите пожалуста почему ф-ция uploadFile($file) не возвращает файлу index знажение $name_avatar, хотя в папку аватарку загружает???
Профиль Ответить
14.12.2013 23:25:16 Загрузка аватарки Сообщение #5
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

млин без бутылки не разобраться - пошел за бутылкой)
Профиль Ответить
14.12.2013 23:35:34 Загрузка аватарки Сообщение #6
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

через echo пробовал найти ошибку? че он тебе выдает?
Профиль Ответить
14.12.2013 23:49:20 Загрузка аватарки Сообщение #7
alexandrdante

alexandrdante

Модератор

Модератор

Дата регистрации:
15.11.2013 15:33:40

Сообщений: 207

Посмотрю Ваш код ночью или после начала рабочего дня.Правда,кода много. Будем шаманить)
Профиль Ответить
16.12.2013 00:58:03 Загрузка аватарки Сообщение #8
tanysha86

tanysha86

Новичок

Новичок

Дата регистрации:
15.10.2013 23:32:05

Сообщений: 4

Всем ОГРОМНОЕ спасибо за участие, но я вроди бы догадалась в чем дело, надо ыло просто назначить переменную $name_avatar глобальной.
Профиль Ответить