Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z klasą
#1
Witam,

od dłuższego czasu mam problem z kodem php. Chcę zrobić aktywne zakładki, ale wciąż wyskakuje mi pewien błąd. Pewnie to to nic trudnego, ale ja nie umiem go naprawić. Proszę o pomoc.

Oto kod:
Kod PHP:
class Strona 
{
  public 
$zawartosc;
  public 
$slowa_kluczowe 'maturalneABC, Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  public 
$przyciski = array('Strona główna' => 'glowna.php',
                
'Kontakt' => 'kontakt.php',
                
'Usługi' => 'uslugi.php',
                
'Mapa strony'=> 'mapa.php'
                
);
                   public function 
_set($nazwa$wartosc)
    {
    
$this->$nazwa $wartosc;
    }
                    public function 
Wyswietl()
                    {
                    echo 
"<html>\n<head>\n";
                    
$this->WyswietlTytul();
                    
$this->Wyswietlslowa_kluczowe();
                    echo
"</head>\n<body>\n";
                    
$this->WyswietlNaglowek();
                    
$this->WyswietlMenu($this->przyciski);
                       echo 
$this->zawartosc;
                    echo 
"</body>\n</html>\n";
                      }
                      
                      public function 
WyswietlSlowaKluczowe()
                      
                      {
                 echo 
"meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
                }
                
}
?>
<?php
public function WyswietlMenu($przyciski),
echo 
"<div id='menu'>
$szerokosc = 100/count($przyciski)

foreach (
$przyciski as $nazwa=>$url)
{
  
$this->WyswietlPrzycisk($szerokosc$nazwa$url,
              !
$this->CzyToAktualnyURL($url);
  )
}
public function CzyToAktualnyURL(
$url)
{
  if(strpos(
$_SERVER['PHP_SELF']. $url)==false)
  {
    return false;
  }
  else
  {
    return true;
  }
}
public function WyswietlPrzycisk(
$szerokosc$nazwa$url$active = true)
{
  if(
$active)
  {
   
      echo "
<td width '".htmlentities($szerokosc)."%'>
            <
a href '".htmlentities($url)."'>
            <
img src 'm-logo.gif' alt '".htmlentities($nazwa)."' border '0'></a>
            <
a href '".htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
    }
    else
    {
     echo "
<td width '".htmlentities($szerokosc),"%'>
           <
img src 'boczne-logo.gif'>
           <
span class='menu'>$nazwa</span></td>";
    }
  }
 
</div>" 

Chodzi o błąd syntax error, unexpected T_PUBLIC in C:\xampp\htdocs\Polski\strona.php on line 44

Błąd jest w linijce:
Kod PHP:
public function WyswietlMenu($przyciski), 
Będę wdzięczny za pomoc w naprawie kodu.
Odpowiedz
#2
zobacz sobie jak składnia jest "pokolorowana" Smile Coś nie tak z " lub '
Odpowiedz
#3
Masz przecież przecinek na końcu, to raz.

Dwa: brakuje Ci "; po echo "<div id='menu'>
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#4
(28-10-2011, 18:35)Pedro84 napisał(a): Masz przecież przecinek na końcu, to raz.

Dwa: brakuje Ci "; po echo "<div id='menu'>

Poprawiłem kod zgodnie ze wskazówkami, ale znów pojawiają się błędy. Oto ten kod:

Kod PHP:
public function WyswietlMenu($przyciski),
echo 
"<div id='menu'>"
$szerokosc 100/count($przyciski)

foreach (
$przyciski as $nazwa=>$url)
{
  
$this->WyswietlPrzycisk($szerokosc$nazwa$url,
              !
$this->CzyToAktualnyURL($url);
  )
}
public function 
CzyToAktualnyURL($url)
{
  if(
strpos($_SERVER['PHP_SELF']. $url)==false)
  {
    return 
false;
  }
  else
  {
    return 
true;
  }
}
public function 
WyswietlPrzycisk($szerokosc$nazwa$url$active true)
{
  if(
$active)
  {
   
      echo 
"<td width = '".htmlentities($szerokosc)."%'>
            <a href = '"
.htmlentities($url)."'>
            <img src = 'm-logo.gif' alt = '"
.htmlentities($nazwa)."' border = '0'></a>
            <a href = '"
.htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
    }
    else
    {
     echo 
"<td width = '".htmlentities($szerokosc),"%'>
           <img src = 'boczne-logo.gif'>
           <span class='menu'>
$nazwa</span></td>";
    }
  }
 
"</div>" 

Błąd jest w linijkach:
Kod PHP:
public function WyswietlMenu($przyciski), 
Kod PHP:
!$this->CzyToAktualnyURL($url); 
Kod PHP:
public function WyswietlPrzycisk($szerokosc$nazwa$url$active true

Jeśli ktoś mógłby mi pomóc, to będę wdzięczny.
Odpowiedz
#5
Chryste, to podstawy:
Kod:
public function WyswietlMenu($przyciski) {

Kod:
$this->WyswietlPrzycisk($szerokosc, $nazwa, $url,
              !$this->CzyToAktualnyURL($url)
);
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#6
Witam, trochę popracowałem nad kodem i trochę już poprawiłem, ale nadal jest coś nie tak. Proszę jeszcze o drobną pomoc w tej sprawie.
Oto ten kod:
Kod PHP:
<?php 
class Strona 
{
  public 
$zawartosc;
  public 
$slowa_kluczowe 'maturalneABC, Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  public 
$przyciski = array('Strona główna' => 'glowna.php',
                
'Kontakt' => 'kontakt.php',
                
'Usługi' => 'uslugi.php',
                
'Mapa strony'=> 'mapa.php'
                
);
                   public function 
_set($nazwa$wartosc)
    {
    
$this->$nazwa $wartosc;
    }
                    public function 
Wyswietl()
                    {
                    echo 
"<html>\n<head>\n";
                    
$this->WyswietlTytul();
                    
$this->Wyswietlslowa_kluczowe();
                    echo
"</head>\n<body>\n";
                    
$this->WyswietlNaglowek();
                    
$this->WyswietlMenu($this->przyciski);
                       echo 
$this->zawartosc;
                    echo 
"</body>\n</html>\n";
                      }
                      
                      public function 
WyswietlSlowaKluczowe()
                      
                      {
                 echo 
"meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
                }
                
}
?>
<?php
public function WyswietlMenu($przyciski) {
echo 
"<div id='menu'>";
$szerokosc 100/count($przyciski);


foreach (
$przyciski as $nazwa=>$url)
{
 
$this->WyswietlPrzycisk($szerokosc$nazwa$url,
              !
$this->CzyToAktualnyURL($url)
);
{
  if(
strpos($_SERVER['PHP_SELF']. $url)==false)
  {
    return 
false;
  }
  else
  {
    return 
true;
  }
}
public function 
WyswietlPrzycisk($szerokosc$nazwa$url$active true);

{
  if(
$active):
  {
   
      echo 
"<td width = '".htmlentities($szerokosc)."%'>
            <a href = '"
.htmlentities($url)."'>
            <img src = 'm-logo.gif' alt = '"
.htmlentities($nazwa)."' border = '0'></a>
            <a href = '"
.htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
    }
    else:
    {
     echo 
"<td width = '".htmlentities($szerokosc),"%'>
           <img src = 'boczne-logo.gif'>
           <span class='menu'>
$nazwa</span></td>";
    }
  }
};
"</div>"
?>

Podkreśla mi linijki
Kod PHP:
public function WyswietlMenu($przyciski) {
echo 
"<div id='menu'>"
i
Kod PHP:
public function WyswietlPrzycisk($szerokosc$nazwa$url$active true); 
Będę wdzięczny za radę lub poprawę.
Odpowiedz
#7
Czy mi się wydaję czy public function WyswietlMenu... i WyswietlPrzycisk jest po za klasą?
Odpowiedz
#8
Czyli jak powinien wyglądać poprawny kod?
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Klasa w Klasie a hover Ridii 2 2,257 28-07-2017, 21:54
Ostatni post: NUTER

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl