Ru-Board.club
← Вернуться в раздел «Ikonboard v.2»

» Убираем профиль несуществующего пользователя

Автор: lynx
Дата сообщения: 27.10.2002 05:25
Убираем профиль несуществующего пользователя



По умолчанию на стандартной IB2 если открыть профиль несуществующего пользователя, конфа отобразит страницу профиля и напишет:

Статус: Deleted
Обновления This Member has been removed by the board Admin
Всего записей: N/A

Это не совсем корректно. Лучше писать, что такого пользователя нет на конференции.

Открываем profile.cgi

sub showprofile

Перед выводом профиля мембера, то есть перед:


Код:
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc size=$dfontsize3><b>$ibtxt{'1817'} <font color=$fonthighlight>$inmember</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle width=30%><font face="$font" color=$fontcolormisc size=$dfontsize1><b>$ibtxt{'1818'}</b></font></td>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1>$joineddate</font></td></tr>
Автор: lynx
Дата сообщения: 01.11.2002 03:23

Цитата:
Наверняка программеры смогут решить эту проблему более изящно


Более того, прочитав мои извраты с кодом, один из программеров сказал, что меня надо изолировать от Перла... Однако, обидно

Ладно, вот решение поизящней, спасибо за идею.

Перед выводом профиля мембера, то есть перед:


Код: $output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc size=$dfontsize3><b>$ibtxt{'1817'} <font color=$fonthighlight>$inmember</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle width=30%><font face="$font" color=$fontcolormisc size=$dfontsize1><b>$ibtxt{'1818'}</b></font></td>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1>$joineddate</font></td></tr>
Автор: CarHelp
Дата сообщения: 02.11.2002 15:41
lynx

Цитата:
вот решение поизящней, спасибо за идею

О! Вот так уже понятней! Спасибо! Поставлю, нужное дело!

Цитата:
Более того, прочитав мои извраты с кодом, один из программеров сказал, что меня надо изолировать от Перла... Однако, обидно

Поверь в той теме речь шла не о тебе! Перечитай тему!
Автор: Grey2002
Дата сообщения: 04.11.2002 17:10
CarHelp

Цитата:
Поверь в той теме речь шла не о тебе! Перечитай тему!

не-не. Давай не оффтопить. По-моему она не про тему говорит, а про асю.
Автор: CarHelp
Дата сообщения: 04.11.2002 18:18
Grey2002
Могет и так.....
lynx
А не работает! Проверь ещё разок! Где то ошибочка.... опять показывает делетед.....
Автор: lynx
Дата сообщения: 05.11.2002 00:11
CarHelp


Цитата:
А не работает! Проверь ещё разок! Где то ошибочка.... опять показывает делетед.....


Не знаю. у меня все работает

Смотри.
Автор: CarHelp
Дата сообщения: 05.11.2002 01:17
lynx

Цитата:
Не знаю. у меня все работает

Попытаюсь переставить!

Цитата:
Смотри.

я думаю ты тоже увидела.....
Автор: lynx
Дата сообщения: 05.11.2002 02:02
CarHelp


Цитата:
я думаю ты тоже увидела.....


Если честно, то только сейчас. Не поняла даже сначала. лол Давайте всем ру-бордом ко мне бежать. У меня половина мемберов отсюда...

Хорошо, смотри сюда.
Автор: WSergey
Дата сообщения: 06.11.2002 12:25
lynx
У тебя работает видел.
Но у меня нет.
выдает:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Я

Код: $filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { &error("Пользователь не найден&Пользователь $inmember не зарегистрирован на нашей конференции"); }
Автор: lynx
Дата сообщения: 06.11.2002 16:17
WSergey

Попробуй убрать переменную отсюда:


Код: ("Пользователь не найден&Пользователь $inmember не зарегистрирован на нашей конференции"); }
Автор: WSergey
Дата сообщения: 06.11.2002 17:03
lynx

Код: ($postdate, $posturl, $posttopic) = split(/\%%%/,$lastpostdate);

if ($postdate ne "$ibtxt{’1816’}") {
$postdate = &longdate($postdate + ($timedifferencevalue*3600) + ($timezone*3600));
$lastpostdetails = qq~$ibtxt{’1815’} <a href="$posturl">$posttopic</a> $ibtxt{’1119’} $postdate~;
}
else {
$lastpostdetails = "$ibtxt{’1816’}";
}
if (($avatars eq "on") && ($useravatar) && ($useravatar ne "noavatar")) {
$useravatar = qq(<img src="$imagesurl/avatars/$useravatar.gif" border=0 width="32" height="32">);
}
else { $useravatar = ""; }

if ($gender eq "guy") { $gender = "Мужской"; }
elsif ($gender eq "gal") { $gender = "Женский"; }
else { $gender = " "; }

$inmember =~ y! !_!; &set_up_guest() unless (-e $ikondir . ’members/’.$inmember.’.cgi’);

if (-e "$imagesdir/foto/$inmember.jpg") {
$foto = qq~<tr>
<td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc size=$dfontsize2><b>Фото:</b></font></td>
<td bgcolor=$miscbackone valign=middle align=center><img border=0 src="$imagesurl/foto/$inmember.jpg"></td></tr>~;
}

$pm = qq~<a href="$messengerprog?action=new&touser=$inmember ">Отправить ему сообщение</a>~;

if ($numberofposts > $mpostmark5) { $mtitle = "$mtitle5"; }
elsif ($numberofposts > $mpostmark4) { $mtitle = "$mtitle4"; }
elsif ($numberofposts > $mpostmark3) { $mtitle = "$mtitle3"; }
elsif ($numberofposts > $mpostmark2) { $mtitle = "$mtitle2"; }
else { $mtitle = "$mtitle1"; }

if ($membertitle eq "member" || $membertitle eq "$ibtxt{’0136’}") { $membertitle = $mtitle; }

$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { &error("Пользователь не найден&Пользователь не зарегистрирован на нашей конференции"); }

$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><table><tr><td valign=middle align=center><font color=$fontcolormisc size=$dfontsize3><b>$ibtxt{’1817’} <font color=$fonthighlight>$inmember</b></font><br><font size=$dfontsize2>$pm</font></td><td valign=middle>$useravatar</td></tr></table></td></tr>
Автор: lynx
Дата сообщения: 06.11.2002 17:25
Походу Вы наворочили сюда каши из хаков, вот и глюкует.

Так с виду все правильно.


Цитата:
$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { &error("Пользователь не найден&Пользователь не зарегистрирован на нашей конференции"); }


Ну не знаю, ковыряйтесь. Логи бы Апача посмотреть.
Замяйте, смотрите, что такое дает.
Например:

$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { print; }

или

$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { &error("test1&test2"); }


$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { print("Нет такого\, отвали"); }

Надо видеть логи сервера.
Автор: batva
Дата сообщения: 07.11.2002 18:50
WSergey

Цитата:
Я

Код:$filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { &error("Пользователь не найден&Пользователь $inmember не зарегистрирован на нашей конференции"); }

Ставлю прямо перед

Код:$output .= qq~

и после

Код:if ($membertitle eq "member" || $membertitle eq "$ibtxt{’0136’}") { $membertitle = $mtitle; }


Что не так?


все так.


Насколько я помню переменная с именем $filetoopen юзается кругом в скрипте, возможно ты ее переопределяя ломаешь все то, что далее.

Сделай так


Код:
#my $filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e "$ikondir/members/$inmember.cgi") { &error("Пользователь не найден&Пользователь $inmember не зарегистрирован на нашей конференции"); }
Автор: WSergey
Дата сообщения: 07.11.2002 19:12
batva
Я в шоке....
Твои советы не канают, просто нет слов ....
Все тажа 500 ошибка
Автор: lynx
Дата сообщения: 08.11.2002 02:45
WSergey

Сделай так:

my $sergeyfile = "$ikondir" . "members/$inmember.cgi";
unless (-e $sergeyfile) { &error("Пользователь не найден&Пользователь $inmember не зарегистрирован на нашей конференции"); }

Автор: WSergey
Дата сообщения: 08.11.2002 12:16
lynx
Не работает

У меня такое впечатление что вы на угад пишите????
От балды, методом тыка

Ладно это не важная фича, потом руки доберутся люди помогут...
Автор: batva
Дата сообщения: 08.11.2002 14:45
WSergey

Цитата:
Твои советы не канают, просто нет слов ....
Все тажа 500 ошибка


а я в шоке от того, что до того как ты добавляешь те две строки скрипт работает, а после добавления нет.

Причем в тех двух строках нет ошибок синтаксиса либо каких других.
Может ты даш мне доступ к тебе по фтп, я разберусь схожу...?
Если хочешь конечно, если да, кидай в пм логин и пасс...



P.S если хочешь сам разбираться, сделай например так.

Код:
unless (-e "$ikondir/members/$inmember.cgi") {
print header();
print "Это тест ура, 500 ошибки нет, проблема в sub error";
exit;

}

Автор: WSergey
Дата сообщения: 08.11.2002 15:05
batva
Я вот тоже понимаю, что у кого то работает у кого то нет, и я не один такой.

Сделал по твоему рецепту, получил - Это тест ура, 500 ошибки нет, проблема в sub error

так в чем там проблема????

Вижу будет победа.
Автор: lynx
Дата сообщения: 08.11.2002 23:33
WSergey


Цитата:
Я в шоке....
Твои советы не канают, просто нет слов ....


Против кривый рук бессилен даже Батва

Мыль свои скрипты и папку дата архивом на мыло. Только скрипты и папку дата, больше ничего не вздумай мылить.


Цитата:
У меня такое впечатление что вы на угад пишите????
От балды, методом тыка


Ну, ессно, мы же не видим твой код. На моем работает, на стандартном работает, а что ты там напортачил, как мы можем угадать??


Цитата:
Это тест ура, 500 ошибки нет, проблема в sub error


Давай сюда саб еррор, она в икон.либ.
Автор: WSergey
Дата сообщения: 09.11.2002 00:22
lynx
Мылить пока не буду.

batva и lynx


Цитата:
sub error {
my $errorinfo = shift;
($where, $errormsg) = split(/\&/, $errorinfo);

$inmembername = cookie("amembernamecookie");
$inpassword = cookie("apasswordcookie");

&title;


Еще раз повторяюсь я не одинок в этой ошибке...
Автор: lynx
Дата сообщения: 09.11.2002 01:52
WSergey

Ты всерьез полагаешь, что это вся подпрограмма????

Значит так. Подпрограмма всегда заканчивается символом }

Приведи, плиииз, весь код, который начинается словами:

sub error {

и заканчивается началом другой подпрограммы (у меня это sub getmember), в любом случае подпрограмма начинается со слова sub
Автор: WSergey
Дата сообщения: 09.11.2002 02:07
lynx
Вот

Код: sub error {
my $errorinfo = shift;
($where, $errormsg) = split(/\&/, $errorinfo);

$inmembername = cookie("amembernamecookie");
$inpassword = cookie("apasswordcookie");

&title;

$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr><td width=30% rowspan=2><img src="$imagesurl/images/$boardlogo" border=0></td>
<td valign=top align=left><font face=$font color=$fontcolormisc size=$dfontsize2>
&nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0><a href="$forumsummaryprog">&nbsp;&nbsp;$boardname</a>
<br>
&nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0>&nbsp;&nbsp;$ibtxt{’0120’}: $where
</td>
</tr>
</table>
<p>
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td>
<table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr><td bgcolor=$miscbacktwo valign=middle align=center><font face=$font color=$fontcolormisc size=$dfontsize2><b>$ibtxt{’0120’}: $where</b></font></td></tr>
<tr><td bgcolor=$miscbackone valign=middle><font face=$font color=$fontcolormisc size=$dfontsize2>
<b>$ibtxt{’0121’} $where $ibtxt{’0120’}:</b>
<ul>
<li><b>$errormsg</b>
<li>$ibtxt{’0122’} <a href="$helpprog">$ibtxt{’0123’}</a>?
</ul>
<b>$ibtxt{’0124’} $where $ibtxt{’0120’}:</b>
<ul>
<li>$ibtxt{’0125’}
<li>$ibtxt{’0126’}
<li><a href="$registerprog">$ibtxt{’0127’}</a> $ibtxt{’0136’}
</ul>
<br><br>
<center><font face=$font color=$fontcolormisc size=$dfontsize2> <a href="javascript:history.go(-1)"> << $ibtxt{’0128’}</a></center>
</tr>
</td>
</table></td></tr></table>
~;

&output(
-Title => $boardname,
-ToPrint => $output,
-Version => $versionnumber
);
}
Автор: lynx
Дата сообщения: 09.11.2002 04:18
WSergey

лол

С кавычками напутал:

Цитата:
{’0120’}:


Такие кавычки нельзя ставить, надо прямые:


Цитата:
{’0120’}:


Ну и дальше везде так надо поменять. Это все.

Как оно у тебя вообще работало...??? Я прикрутила твою подпрограму на дефолтную конфу и у меня сразу конфа перестала работать вообще.

Да.... а камни в Батву летели....

Автор: WSergey
Дата сообщения: 09.11.2002 10:58
lynx
Сейчас попробуем.
Но камни не летели я просто не мог понять что такое все работает а тут????

И это то что было в дистрибутиве, я ничего не менял...


Добавлено
Блин, ничего не пойму, везде одинаковые кавычки, и скажи чем то что ты посоветовала менять от того что есть????

Такие кавычки везде, во всех файлах - $ibtxt{’....’}

Ждем что скажет Батва!
Автор: WSergey
Дата сообщения: 09.11.2002 22:15
Всем привет.
Спасибо всем за участие, проблема решена.
Естественно кавычки и все такое не причем.
Лучшее решение как и всегда подал небезизвестный Alexander Ipp
Его банн приносит отрицательные плоды. Много было тут его хороших ответов, да и статей не мало…

Вот решение, может кого спасет:

Код: $filetoopen = "$ikondir" . "members/$inmember.cgi";
unless (-e $filetoopen) { print header(); &error("Пользователь не найден&Пользователь не зарегистрирован на нашей конференции"); }
Автор: batva
Дата сообщения: 10.11.2002 10:42
WSergey

Цитата:
Вот решение, может кого спасет:


Интересно, так ты умышеленно похерил print header в начале скрипта, еще до вызова sub showprofile, чтобы нам тут голову заморочить?

Тему можно считать закрытой..



Автор: WSergey
Дата сообщения: 10.11.2002 15:21
batva
Я конечно не доконца тебя понял, но!
Я ничего не делал со скриптом.
Я не кому не морочу голову.

Дело в том что с подобной проблемой сталкивался не я один.

Вот такие пироги....

Автор: batva
Дата сообщения: 10.11.2002 16:51
WSergey

Цитата:
Я конечно не доконца тебя понял, но!


в скрипте стоит в самом начале print header

Если ты эту строку убрал, ест-но у тебя ничего работать не будет...


Цитата:
Я не кому не морочу голову.

Дело в том что с подобной проблемой сталкивался не я один.

Вот такие пироги....



Код:
Тему можно считать закрытой..
Автор: The_shadow_of_IPP
Дата сообщения: 10.11.2002 20:17
batva
Слушай, главный ибхацкер рунета, зарёкся я сюда писать, но смотреть на этот маразм уже сил нет больше.
Объясняю насчёт принтхедера. В ИБ2 есть БАГ, где идёт попытка установить незаданные куки, там они принтятся в хедере ещё до вызова любого саба по dispatch’у.
Далее, в каком-то моём или не моём хак сей баг пофиксен. И он вероятно стоит на этой конфе. ХЗ, я кода не видел. Далее, вы упрекаете юзера в том, что он ПОФИКСИЛ БАГ. Приехали.
Вообще есть золотое правило - еси в скрипте нет синтаксической ошибки, а 500-я всё равно вылетает, то значит он что-то пытается выдать на STDOUT не выведя Content type: text/html\n\n (или аналогичного). Если это не так то либо синтаксическая всё же есть, либо см. строчкой выше.
В общем, мне хватило одного взгляда на пост чтобы понять суть проблемы. А вы тут развезли на две странцы про sub error. Молодцы ибхацкеры.
Далее, насчёт кавычек. Апострофы (`текст`) выполняют совсем иную функцию - они выполняют команды шелла (дос, юних - не важно, всё зависит от платформы). Одиночные кавычки (’текст’) юзаются если внутри них не нужно интерполировать переменные и метасимволы. Двойные ("текст") - если нужно. Синонимы первых - q~текст~, вторых - qq~текст~ (вместо ~~ можно юзать почти любые символы).
Так вот. А при задании ключей хеша можно юзать любые - хоть ’, хоть ". Такие пироги. А вы тут устроили - КАВЫЧКИ НЕ ТЕ... Ё-моё, я рад что больше здесь не нахожусь...
-------------
Всегда ваш BANNED aka Alexander Ipp aka "гадкий хацкер пытавшийся взломать руборд".
Автор: WSergey
Дата сообщения: 10.11.2002 22:29
lynx
У тебя еже нет красивой надписи BANNED Рад!

Страницы: 12

Предыдущая тема: Перестал работать форум Iconboard 2.1.9


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.