На локальном сервере не пробывола, только на денвере.
Код файла 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, хотя в папку аватарку загружает
???