ОБСУЖДЕНИЕ

Личные смайлы не пашут

7 сообщений1 просмотровОткрыта
#1
Есть такой мод, база смайлов есть,но он почему-то не хочет добавлять. Мод Личных смайлов юзера. Тупо обновляет,как буд-то нет базы. Что делать??

PHP

<?
include_once 'sys/inc/start.php';
include_once 'sys/inc/compress.php';
include_once 'sys/inc/sess.php';
include_once 'sys/inc/home.php';
include_once 'sys/inc/settings.php';
include_once 'sys/inc/db_connect.php';
include_once 'sys/inc/ipua.php';
include_once 'sys/inc/fnc.php';
include_once 'sys/inc/user.php';
only_reg();
$set['title']='Добавление смайлов';
include_once 'sys/inc/thead.php';
title();

//////////////////////////////////////////////////////
$shir=100; // макс. ширина смайла
$viso=100; // макс. высота смайла
//////////////////////////////////////////////////////

if(isset($_GET['add'])){
if (preg_match('#\.gif$#',$_FILES['sm']['name']))
{
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x>$shir || $img_y>$viso)$err='Размеры не должны быть больше '.$shir.'х'.$viso.'';
if (!$imgc=@imagecreatefromgif($_FILES['sm']['tmp_name']))$err='Картинка является простой, и была переименована. Разрешены только gif изображения';
err();
if (!isset($err)){
$screen=fread(fopen ($_FILES['sm']['tmp_name'], "rb" ), filesize ($_FILES['sm']['tmp_name']) );
$rnd = rand(1, 999);
@chmod(H."style/smiles/$rnd$user[id].gif",0777);
@unlink(H."style/smiles/$rnd$user[id].gif");
file_put_contents(H."style/smiles/$rnd$user[id].gif", $screen);
@chmod(H."style/smiles/$rnd$user[id].gif",0777);
mysql_query("INSERT INTO `smiles_spis` (`name`, `id_dir`, `sim`, `id_user`) values('$rnd$user[id]', '21', '.$rnd$user[id].', '$user[id]')",$db);
header("Location: /my_smiles.php?");exit;
}}}
aut();

$mys=mysql_result(mysql_query("SELECT COUNT(*) FROM `smiles_spis` WHERE `id_user` = '$user[id]'"),0);

echo 'У вас: '.$mys.' смайлов.<br>';
if($mys==0)echo 'Хотите выгрузить смайл ?<br>';
elseif($mys>0)echo 'Выгрузить еще ?<br>';
echo '** Допускаются изображения только gif формата<br>Максимальный размер: '.$shir.'х'.$viso.'';
echo "<form method='post' enctype=\"multipart/form-data\" action='?add'>";
echo '<input type="file" name="sm" accept="image/gif"><br/>';
echo "<input value=\"Загрузить\" type=\"submit\" /></form>";
echo '<b><a href="/my_smiles.php">Мой смайлы</b></a>';
include_once 'sys/inc/tfoot.php';
?>
#2
И вот

PHP
<?
include_once 'sys/inc/start.php';
include_once 'sys/inc/compress.php';
include_once 'sys/inc/sess.php';
include_once 'sys/inc/home.php';
include_once 'sys/inc/settings.php';
include_once 'sys/inc/db_connect.php';
include_once 'sys/inc/ipua.php';
include_once 'sys/inc/fnc.php';
include_once 'sys/inc/user.php';
only_reg();
$set['title']='Мои смайлы';
include_once 'sys/inc/thead.php';
title();
aut();

if(isset($_GET['del'])){
$id=intval($_GET['id']);
$smiles=mysql_fetch_array(mysql_query("SELECT * FROM `smiles_spis` WHERE `id` = $id LIMIT 1"));
@unlink(H."style/smiles/$smiles[name].gif");
$del = mysql_query("DELETE FROM `smiles_spis` WHERE `id` = '".$id."' AND `id_user` = '".$user['id']."';");
msg('Смайл успешно удален');
}

if(isset($_GET['rename'])){
$id=intval($_GET['id']);
$smiles=mysql_fetch_array(mysql_query("SELECT * FROM `smiles_spis` WHERE `id` = $id LIMIT 1"));
$name=htmlspecialchars(mysql_real_escape_string(trim($_POST['name'])));
if (isset($_GET['ok']) && $name!=null)
{
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `smiles_spis` WHERE `sim` = '".$name."' LIMIT 1"),0)!=0) $err='Смайл с таким обозначением уже существует';
if(!preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $name))$err[]='Используются запрещенные символы';
if(strlen2($name)<3)$err[]='Обозначение не может содержать менее 3 символов';
if(strlen2($name)>20)$err[]='Обозначение не может содержать более 20 символов';
err();
if (!isset($err)){
mysql_query("UPDATE `smiles_spis` SET `sim` = '.$name.' WHERE `id` = '$id' LIMIT 1");
$smiles=mysql_fetch_array(mysql_query("SELECT * FROM `smiles_spis` WHERE `id` = $id LIMIT 1"));
msg('Смайл успешно переименован');
}
}
echo '<form method="POST" action="?id='.$id.'&rename&ok">';
$q_sim=str_replace('.','',$smiles['sim']);
echo '<div class = "menu_razd">Переименовать:</div><div class = "p_m">Название: <br>.<input type="text" size="6" name="name"  value="'.$q_sim.'" >.<br>';
echo'<input type="submit" value="Изменить"></form></div>';
}

$k_post=mysql_result(mysql_query("SELECT COUNT(*) FROM `smiles_spis` WHERE `id_user` = '$user[id]'"),0);
$k_page=k_page($k_post,$set['p_str']);
$page=page($k_page);
$start=$set['p_str']*$page-$set['p_str'];
echo '<div class = "menu_razd">Все смайлы:</div>';
if ($k_post==0)echo "Нет личных смайлов<br/>";


$q=mysql_query("SELECT * FROM `smiles_spis` WHERE `id_user` = '$user[id]' ORDER BY id DESC LIMIT $start, $set[p_str]");
while ($post = mysql_fetch_array($q))
{
echo '<div class = "p_m">';
echo "<img src='/style/smiles/$post[name].gif'>";
echo "<input type='text' value='$post[sim]' size='8' /><br />";
echo "<a href=\"?id=$post[id]&del\">Удалить</a> | <a href=\"?id=$post[id]&rename\">Переимен.</a><br/></div>";
}
if ($k_page>1)str('?',$k_page,$page);


echo "• <b><a href='/add_smile.php'>Добавить</b></a>";
include_once 'sys/inc/tfoot.php';
?>
#3
Вот эта строчка совершенно никчему я думаю
<?
$screen=fread(fopen ($_FILES['sm']['tmp_name'], "rb" ), filesize ($_FILES['sm']['tmp_name']) );
?>
Вместо этой
<?
file_put_contents(H."style/smiles/$rnd$user[id].gif", $screen);
?>
напиши так
<?
move_uploaded_file($_FILES['sm']['tmp_name'], "style/smiles/$rnd$user[id].gif");
?>
#4
СеРжЧеРНиК, спасибо,но все=-равно
#5
Так надо выяснить, что конкретно не добавляется, сама картинка смайла или запись в базу?
#6
СеРжЧеРНиК, минуту, если не ошибаюсь, то они должны в стайле/смайлех оставаться:?
#7
СеРжЧеРНиК, Ни там, ни там нет следов от скрипта.