Strona 1 z 2

[cr +sr] błąd w usercp_wiewprofile

: 30 lipca 2005, 12:20
autor: autobus
instalowałem color ranks + sex ranks i wyskoczył mi taki błąd

Kod: Zaznacz cały

Parse error: parse error, unexpected T_ELSE in /home/gw/public_html/forum/includes/usercp_viewprofile.php on line 90
od 87 linii wygląda to tak:

Kod: Zaznacz cały

$poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
$poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
    $rank_image='';
else
{
	for($i = 0; $i < count($ranksrow); $i++)
	{
		if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
		{
			$poster_rank = $ranksrow[$i]['rank_title'];
			$rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
		}
	}
}

$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $profiledata['user_id']);
$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
bardzo proszę o pomoc

: 30 lipca 2005, 12:42
autor: MSX2
Zamień ten kod co podałeś na ten (1 element dopisany):

Kod: Zaznacz cały

$poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
$poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
    $rank_image='';
}
else
{
   for($i = 0; $i < count($ranksrow); $i++)
   {
      if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
      {
         $poster_rank = $ranksrow[$i]['rank_title'];
         $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
      }
   }
}

$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $profiledata['user_id']);
$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
Heh...

: 31 lipca 2005, 00:24
autor: autobus
nie pomógł ten zabieg, problem jest w tym, że kiedy klikam na użytkownika to mi się pojawia błąd zamiast wioku profilu.

ale zrobiłem coś takiego, wyrzuciłem z pliku ten kawałek

Kod: Zaznacz cały

       else
{
   for($i = 0; $i < count($ranksrow); $i++)
   {
      if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
      {
         $poster_rank = $ranksrow[$i]['rank_title'];
         $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
      }
   }
}
po tym zabiegu profil się poajawia ale nie ma w nim nazwy rangi, pokazuje się tylko sam przedrostek rangi. cosik trzeba by stąd usunąć tylko co żeby nie zepsuć kodu?

: 31 lipca 2005, 10:46
autor: MSX2
Jak na mój gust, to błędu w tym fragmencie nie ma...
Niech się wypowie ktoś zdolniejszy ode mnie ;P...

: 31 lipca 2005, 10:49
autor: Lilly
autobus pisze:nie pomógł ten zabieg, problem jest w tym, że kiedy klikam na użytkownika to mi się pojawia błąd zamiast wioku profilu.
A jaki konkretnie blad sie pojawia po tych zmianach :?:

: 31 lipca 2005, 11:38
autor: autobus
ten sam co był czyli

Kod: Zaznacz cały

Parse error: parse error, unexpected T_ELSE in /home/gw/public_html/forum/includes/usercp_viewprofile.php on line 90

: 31 lipca 2005, 14:06
autor: Lilly
Domyslam sie, ze 90 linia, to ta z else. Zauwaz, ze linijke wczesniej jest pojedynczy apostrof. Sprobuj dodac tam drugi. No i chyba rzeczywiscie powinien tam tez byc ten nawias {

Ale tak to sobie mozmy gdybac. Podeslij mi na maila caly plik, bo po takim fragmencie, to troche malo... (jesli nie zadziala to, co napisalam powyzej)

: 31 lipca 2005, 14:36
autor: MSX2
Jedna uwaga, Lilly. Odnośnie apostrofu - przed else są dwa, pojedyncze ;P...
I moim zdaniem błąd jest tylko w braku { ...

: 31 lipca 2005, 16:23
autor: Lilly
MSX2 pisze:Jedna uwaga, Lilly. Odnośnie apostrofu - przed else są dwa, pojedyncze ;P...
I moim zdaniem błąd jest tylko w braku { ...
Hmm... no tak tez moze byc. Ale gdyby blad byl TYLKO w braku apostrofu, to by dzialalo. Nie wszystko mozna poprawic analizujac jedynie fragment pliku.

: 31 lipca 2005, 19:17
autor: MSX2
Wiem o tym, ale błędy typu T_ELSE odnoszą się do else, bądź elseif'ów... Nie ma chyba innej możliwości...
Co do fragmentu pliku, to masz rację..

: 31 lipca 2005, 23:03
autor: autobus
dalej nic :(
cały plik znajduje się tutaj http://gw.livenet.pl/roz/us.rar

: 31 lipca 2005, 23:20
autor: MSX2
Erm... Zamień:

Kod: Zaznacz cały

             $poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
             $poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
             $rank_image=''; 
			 else
{
	for($i = 0; $i < count($ranksrow); $i++)
	{
		if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
		{
			$poster_rank = $ranksrow[$i]['rank_title'];
			$rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
		}
	}
}
na:

Kod: Zaznacz cały

             $poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
             $poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
             $rank_image=''; 

	for($i = 0; $i < count($ranksrow); $i++)
	{
		if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
		{
			$poster_rank = $ranksrow[$i]['rank_title'];
			$rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
		}
	}
może jakimś cudem zadziała... chociaż nie wydaje mi się... brakuje if'a całego...

: 31 lipca 2005, 23:33
autor: Lilly
Ewentualnie ten kawalek:

Kod: Zaznacz cały

$poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
             $poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
             $rank_image='';
powinien znalesc sie miedzy nawiasami { { z 84 i 85 linii

: 31 lipca 2005, 23:43
autor: autobus
twój pomysł nie zadziałał, natomiast sposób przedstawiony przez MSX2 dał pewien efekt, otóż profil się pokazuje ale nie ma nazwy rangi a wygląda to tak:
http://gw.livenet.pl/forum/profile.php? ... 2241f36074

: 01 sierpnia 2005, 00:10
autor: MSX2
No to dodajmy if'a... Zamień na tą kombinację:

Kod: Zaznacz cały

$poster_rank = '';
$rank_image = '';
if ( $profiledata['user_rank'] )
{
for($i = 0; $i < count($ranksrow); $i++)
{
if ( $profiledata['user_rank'] == $ranksrow[$i]['rank_id'] && $ranksrow[$i]['rank_special'] )
{
$poster_sex = ( $profiledata['user_sex'] ) ? $lang['male'] : $lang['female'];
$poster_rank = color_rank($profiledata['user_rank'],$profiledata['user_posts'],$profiledata['user_sex']);
$rank_image='';
}
}
}
else
{
for($i = 0; $i < count($ranksrow); $i++)
{
if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] )
{
$poster_rank = $ranksrow[$i]['rank_title'];
$rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
}
}
}