Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Скрипт изменение аватарки для профиля.ПОМОЩЬ!

Статус пользователя RoMaNSkole
сообщение 16.1.2015, 22:11
Сообщение #1
Стаж: 13 лет
Город: Сколе

Сообщений: 220
Благодарностей: 28
Полезность: < 0

Возникла ошибка при скрипте.
Ошибка:
Код
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/u396035837/public_html/demo/cabinet/upload_img.php on line 94


Возможно из за этой ошибки не добавляет ссылку на аватар, кто сможет помочь буду благодарен!

Скрытый текст
<?php

include ("db.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь





////////////////////////
////////ИЗМЕНЕНИЕ АВАТАРЫ
////////////////////////

if (isset($_FILES['fupload']['name'])) //отправлялась ли переменная
{

if (empty($_FILES['fupload']['name']))
{
//если переменная пустая (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
$avatar = "http://demo.adrenaline-cs.esy.es/engine/images/no_ava.png"; //можете нарисовать net-avatara.jpg или взять в исходниках
$result7 = mysql_query("SELECT eztra5 FROM user WHERE id='$id'",$db);//извлекаем текущий аватар
$myrow7 = mysql_fetch_array($result7);
if ($myrow7['avatar'] == $ava) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
$ava = 1;
}
else {unlink ($myrow7['avatar']);}//если аватар был свой, то удаляем его, затем поставим стандарт
}

else
{
//иначе - загружаем изображение пользователя для обновления
$path_to_90_directory = 'templates/';//папка, куда будет загружаться начальная картинка и ее сжатая копия


if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{

$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory

if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru

// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности

$w = 90; // квадратная 90x90. Можно поставить и другой размер.

// создаём исходное изображение на основе
// исходного файла и определяем его размеры
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения

// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w,$w);

// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));

// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));

// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);


$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.

//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.

$avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.

$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.

$myrow7 = mysql_fetch_array($result7);
$result7 = mysql_query("SELECT extra5 FROM user WHERE id='$id'",$db);//извлекаем текущий аватар пользователя


if ($myrow7['extra5'] == $extra5) {//если он стандартный, то не удаляем его, ведь у нас одна картинка на всех.
$extra5 = net-avatara.jpg;
}
else {unlink ($myrow7['extra5']);}//если аватар был свой, то удаляем его


}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}

}

$result4 = mysql_query("UPDATE user SET extra5='$avatar' WHERE id='$id'",$db);//обновляем аватар в базе
if ($result4=='TRUE') {//если верно, то отправляем на личную страничку
echo "<html><head><meta http-equiv='Refresh' content='5; URL=page.php?id=".$_SESSION['id']."'></head><body>Ваша аватарка изменена! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a></body></html>";}

}
?>


Хостинг ігрових серверів - GM-HOST.COM.UA
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 16.1.2015, 23:13
Сообщение #2


Стаж: 15 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(RoMaNSkole @ 16.1.2015, 22:11) *
Возникла ошибка при скрипте.

строка 94
Код
$myrow7 = mysql_fetch_array($result7);
$result7 = mysql_query("SELECT extra5 FROM user WHERE id='$id'",$db);//извлекаем текущий аватар пользователя

поменяй строки местами
Код
$result7 = mysql_query("SELECT extra5 FROM user WHERE id='$id'",$db);//извлекаем текущий аватар пользователя
$myrow7 = mysql_fetch_array($result7);
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RoMaNSkole
сообщение 17.1.2015, 0:04
Сообщение #3
Стаж: 13 лет
Город: Сколе

Сообщений: 220
Благодарностей: 28
Полезность: < 0

Kirby Magicman,

Ошибки нет , но в БД не добавляеться!!!


Хостинг ігрових серверів - GM-HOST.COM.UA
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
umprex
сообщение 17.1.2015, 0:10
Сообщение #4


Иконка группы

Стаж: 16 лет
Город: Киев

Сообщений: 2909
Благодарностей: 4781
Полезность: 2197

RoMaNSkole, залили бы код хотя бы в тег, трудно разобрать что и как.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
umprex
сообщение 17.1.2015, 0:39
Сообщение #5


Иконка группы

Стаж: 16 лет
Город: Киев

Сообщений: 2909
Благодарностей: 4781
Полезность: 2197

RoMaNSkole,
Код:
<?php
////////////////////////
////////ИЗМЕНЕНИЕ АВАТАРЫ
////////////////////////

if(isset($_FILES['fupload']['name'])){
require_once "db.php";
define('IMGPATH', 'templates' . DIRECTORY_SEPARATOR);

$imgfile = $_FILES['fupload']['name'];
@$source = $_FILES['fupload']['tmp_name'];
$target = IMGPATH . $imgfile;
}

if (!empty($imgfile)){
if(preg_match('/\.(jpg)|(jpeg)|(gif)|(png)$/i', $imgfile)){
move_uploaded_file($source, $target); //загрузка оригинала в папку IMGPATH

if(preg_match('/\.(gif)$/i', $imgfile)){
$im = imagecreatefromgif(IMGPATH . $imgfile); //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}elseif(preg_match('/\.(png)$/i', $imgfile)) {
$im = imagecreatefrompng(IMGPATH . $imgfile);//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}elseif(preg_match('/\.(jpg)|(jpeg)$/i', $imgfile)) {
$im = imagecreatefromjpeg(IMGPATH . $imgfile); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}else{
die('ошибка, которой быть не должно');
}

$w = 90; // 90x90
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
$dest = imagecreatetruecolor($w, $w);

if($w_src > $h_src){
imagecopyresampled($dest, $im, 0, 0, round((max($w_src, $h_src) - min($w_src, $h_src))/2), 0, $w, $w, min($w_src, $h_src), min($w_src, $h_src));
}elseif($w_src < $h_src){
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, min($w_src, $h_src), min($w_src, $h_src));
}elseif($w_src == $h_src){
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
}else{
die('ошибка обрезания картинки');
}

imagejpeg($dest, IMGPATH . time() . ".jpg");
$avatar = IMGPATH. time() . ".jpg";
@unlink (IMGPATH . $imgfile);


if(mysql_query("SELECT `extra5` FROM `user` WHERE `id` = '{$_SESSION['id']}'", $db)){
$qresult = mysql_fetch_array($q);
if(isset($qresult)){
if($qresult['extra5'] !== $extra5){//если он стандартный, то не удаляем его, ведь у нас одна картинка на всех.
unlink ($qresult['extra5']);
}
}else{
die('запрос не дал результатов')
}
}else{
die('ошибка выбора аватара')
}
}else{
die("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
}else{
$avatar = "http://demo.adrenaline-cs.esy.es/engine/images/no_ava.png"; //можете нарисовать net-avatara.jpg или взять в исходниках
if(mysql_query("SELECT `eztra5` FROM `user` WHERE `id` = '{$_SESSION['id']}'", $db)){//извлекаем текущий аватар
$qresult = mysql_fetch_array($q);
if(isset($qresult)){
if ($qresult['avatar'] !== $ava){//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
unlink ($myrow7['avatar']);
}
}else{
die('запрос не дал результатов')
}
}//если аватар был свой, то удаляем его, затем поставим стандарт
}

if(mysql_query("UPDATE `user` SET `extra5` = '{$avatar}' WHERE `id` = '{$_SESSION['id']}'", $db)){
echo '<html><head><meta http-equiv="Refresh" content="5; URL=page.php?id=' . $_SESSION['id'] .
'"></head><body>Ваша аватарка изменена! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href="page.php?id=' . $_SESSION['id'] .
'">нажмите сюда.</a></body></html>';
}else{
die('ошибка обновления аватара');
}
?>


переписал и оптимизировал немного код, надеюсь ошибка исправиться, хотя не уверен ибо переменные $extra5, $ava не указаны в скрипте, надеюсь они из db.php.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RoMaNSkole
сообщение 17.1.2015, 0:47
Сообщение #6
Стаж: 13 лет
Город: Сколе

Сообщений: 220
Благодарностей: 28
Полезность: < 0

Уже сделал , тему можна закрыть!!!


Хостинг ігрових серверів - GM-HOST.COM.UA
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
umprex
сообщение 17.1.2015, 0:52
Сообщение #7


Иконка группы

Стаж: 16 лет
Город: Киев

Сообщений: 2909
Благодарностей: 4781
Полезность: 2197

RoMaNSkole, еще рекомендую поменять исполнителя, гадость написана =\


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: