ОБСУЖДЕНИЕ

ошибка удаления записи

4 сообщений0 просмотровОткрыта
#1
всем привет, )) не удается удалить запись на стене показыва5т 403 ошибку. вот саи код, кто исправить тому 10 р.
#2
PHP
 

include_once "../system/start.php";
if (isset($_GET['id'])){$id = abs(intval($_GET['id']));}else{$id = $user['id'];} 
if (isset($_GET['act'])){$act = $ust->check($_GET['act']);}else{$act = 'index';} 
if (isset($_GET['start'])){$start = abs(intval($_GET['start']));}else{$start = 0;} 
$bb = new bbcode();
switch ($act):
case "index":
$ank = $profil->us($id);
$t = 'Гостевая '.$ank['login'];
$title = 'Гостевая '.$ank['login'];
$sub = '<img src="/img/refresh.png" alt=""/> <a href="wall.php?act=index&id='.$id.'&rand='.rand(1, 10).'">Обновить</a>';
include_once F."style/index.php";
echo $ust->form('wall.php?act=add&amp;id='.$id.'', '', 'Отправить', 0);
$all = DB :: $dbh -> querySingle("SELECT count(*) FROM `wall` WHERE `profile`=$id AND `spam`<'3';");
if ($all > 0){
if ($start >= $all) {
$start = 0;
} 
$i = 0;
$q = DB :: $dbh -> query("SELECT * FROM `wall` WHERE `profile`=$id AND `spam`<'3' ORDER BY `time` DESC  LIMIT " . $start . ", " . $config['post'] . ";");
while ($act = $q -> fetch()) {
echo'<div class="div">';
echo $profil->profile($act['user']).' ('.$ust->times($act['time']).')<br/>';
echo $bb->bb($act['text']).'<br/>';
$otv = ($user['id']!=$act['user']) ? '[<a href="wall.php?act=call&amp;msg='.$act['id'].'&amp;id='.$id.'">ответ</a>] [<a href="wall.php?act=quote&amp;msg=' . $act['id'] . '&amp;id='.$id.'">цит</a>]' : '';
$compl = ($act['spam']==0 && $user['id']!=$act['user'])? ' [<a href="wall.php?act=complaint&msg='.$act['id'].'&amp;id='.$id.'">жалоба</a>] ' : '';
$del  = ($ust->access('wall_delete') || $user['id']==$act['user'] || $user['id']==$id) ? '[<a href="wall.php?act=del&amp;msg='.$act['id'].'&amp;id='.$id.'"><span style="color:red"><b>x</b></span> удал</a>]' :'';
echo $otv.''.$compl.''.$del;
echo'</div>';
}
$page = new page;
$page->pages('wall.php?id='.$id.'&amp;', $config['post'], $start, $all);
} else {
$ust->show('Сообщений нет, будь первым!');
} 
break;
case "add":
$profil->notreg(); ## Существует ли пользователь
if(isset($_POST['text'])){
$text = $ust->check($_POST['text']);
$userto = (isset($_GET['userto'])) ? intval($_GET['userto']) : '';
if($ust->flood($user['id'])){
if ($ust->utf_strlen($text) >= 3 && $ust->utf_strlen($text) < 500) {
DB :: $dbh -> query("INSERT INTO `wall` (`profile`, `user`, `text`, `time`) VALUES (?, ?, ?, ?);", array($id, $user['id'], $text, time()));
if($userto>0 || $id==$userto){

$text1='Ответил(а) вам в [url=/anketa/wall.php?id='.$id.']гостевой[/url]';
DB :: $dbh -> query("INSERT INTO `journal` (`user`, `id_kont`, `text`, `read`, `time`, `section`) VALUES (?, ?, ?, ?, ?, ?);", array($userto, $user['id'], $text1, 0, time(), 0));
}elseif($id!=$user['id']){
$text='Получено сообщение в [url=/anketa/wall.php?id='.$id.']гостевой[/url]';
DB :: $dbh -> query("INSERT INTO `journal` (`user`, `id_kont`, `text`, `read`, `time`, `section`) VALUES (?, ?, ?, ?, ?, ?);", array($id, $user['id'], $text, 0, time(), 0));
}
$_SESSION['note'] = 'Сообщение успешно добавлено!';
header("Location: wall.php?act=index&id=$id");
exit();
}else{header("Location: wall.php");}
} else {$ust->show('Антифлуд! Разрешается отправлять сообщения раз в ' . $ust->flood_period() . ' секунд!');} 
}else{header("Location: wall.php");}
break;
case "quote":
$t = 'Цитирование';
$title = 'Цитирование';
include_once F."style/index.php";
$id = intval($_GET['msg']);
$post = DB :: $dbh -> querySingle("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($id));
if (!empty($post)) {
$queryguest = DB :: $dbh -> query("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($id));
$post = $queryguest -> fetch();
if($post['user']!=$user['id']){
echo $profil->profile($post['user']).'<br/>';
echo $bb->bb($post['text']).'<br/>';
echo'<hr>';
$ank = $profil->us($post['user']);

$post['text'] = preg_replace('/\[q\](.*?)\[\/q\]/is', '', $post['text']);
$post['text'] = str_replace('<br />', "\r\n", $post['text']);

echo $ust->form('wall.php?act=add&userto='.$ank['id'].'', '[q][b]' . $ank['login'] . '[/b]' . "\r\n" . $post['text'] . '[/q]' . "\r\n" . '', 'Цитировать', 0);
}else{header("location: chat.php");}
}else{header("location: chat.php");}
break;
case 'call':
$profil->notreg(); ## Существует ли пользователь
$t = 'Ответ в гостевой';
$title = 'Ответ в гостевой';
include_once F."style/index.php";
$m = intval($_GET['msg']);
$post = DB :: $dbh -> querySingle("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($m));
if (!empty($post)) {
$querywall = DB :: $dbh -> query("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($m));
$post = $querywall -> fetch();
if($post['user']!=$user['id']){

echo $profil->profile($post['user']).'<br/>';
echo $bb->bb($post['text']).'<br/>';
echo'<hr>';
$ank = $profil->us($post['user']);
echo'<div class=div><form action="wall.php?act=add&amp;id='.$id.'&userto='.$ank['id'].'" method="post">';
echo'Сообщение:<br />';
echo'<textarea cols="25" rows="3" name="text">'.$ank['login'].', </textarea><br />';
echo'<input type="submit" value="Написать" /></form></div>';
}else{header("location: wall.php");}
}else{header("location: wall.php");}
break;
case 'del':
$id = intval($_GET['id']);
$m = intval($_GET['msg']);
$post = DB :: $dbh -> querySingle("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($m));
if (!empty($post)) {
$querywall = DB :: $dbh -> query("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($m));
$post = $querywall -> fetch();
if($ust->access('wall_delete') || $user['id']==$post['user'] || $user['id']==$id){
$t = 'Удаление сообщения';
$title = 'Удаление сообщения';
$sub = '<a href="wall.php?act=del&msg='.$m.'&rand='.rand(1, 10).'">Обновить</a>';
include_once F."style/index.php";
if($ust->access('wall_delete') || $user['id']==$act['id'] || $user['id']==$id){
if(isset($_GET['ok'])){
DB :: $dbh -> query("DELETE FROM `wall` WHERE `id`=?;", array($m));
header("Location: wall.php?act=index&id=$id&error=msg_del");}
echo '<div class="div">';
echo $profil->profile($post['user']).'<br/>';
echo $bb->bb($post['text']).'<br/>';
echo'<a href="wall.php?act=del&amp;id='.$id.'&msg='.$m.'&amp;ok">Удалить</a> / <a href="wall.php">Отмена</a></div>';
}else{$ust->show("Ошибка! Вы не можете удалять сообщения в гостевой!");}
}else{header("Location : wall.php?id=$id");}
}
break;
case "complaint":
$m = intval($_GET['msg']);
$queryguest = DB :: $dbh -> query("SELECT * FROM `wall` WHERE `id`=? LIMIT 1;", array($m));
$post = $queryguest -> fetch();
if (!empty($post)) {
DB :: $dbh -> query("UPDATE `wall` SET `spam`=? WHERE `id`=? LIMIT 1;", array(1, $id));
DB :: $dbh -> query("INSERT INTO `complaints` (`user`, `message`, `mod`, `format`, `time`) VALUES (?, ?, ?, ?, ?);", array($user['id'], $m, 0, 10, time()));
$_SESSION['note'] = 'Жалоба успешно отправлена!';
header("Location: wall.php?id=$id");
exit;
} else {$ust->show('Ошибка! Выбранное вами сообщение для ответа не существует!');} 
break;
default:
header("location: wall.php?");
endswitch;
include_once "../style/foot.php

#3
Ну раз доступ запрещен, скорее всего прав на папку, в которой этот wall.php не стоят нужные.
Вообще сей кусок скрипта какой то кошмарный, всё в кучу, трудно читаемый код вообщем трудно разобратся.
p.s. $_GET['act'] не нужно фильтровать.
#4
за исправление кода отдам 20 рублей