Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Moje pierwsze poczatki z php
Forum PHP.pl > Forum > PHP
martq
Witam, poznawszy już moc html/css postanowiłem w końcu (wakcje smile.gif ) zabrać się za nauke php, na uczelni poznałem c++ strukturalny, obiektowy oraz obecnie zakończyłem graficzny - co też podstawy do nauki php już jakieś mam. Mam kilka problemów, pytań które mnie bardzo nurtują, jeże śmiecę forum i piszę w nieodpowiednim miejscu to z góry przepraszam adminów/modów i proszę od przeniesienie tematu, no ale skończmy z ofem smile.gif Moje problemy:

Jak jest interpetowane przez server wykonywanie kodu? Tzn chciałbym np na początku pliku index.php zaimplementować kilka funkcji np do zmiany zawartości środkowego - treści div'a oraz do wyświetlania odmenu - np oferty, a wszystko po to, żeby nie zaśmiecać sobie środka kodu i tylko wywolywać funkcje. Robiłem coś takiego:
<?php

function PodMenu($ofert)
{
if($ofert == true)
{
include("podmenu.php");
}
else return;
}

function Tresc(){

if(isset($_GET['id']))
{
switch ($_GET['id'])
{
//Opcje Menu
case "kontakt": echo '&nbsp; <b>Dane kontaktowe</b>'; include("kontakt.php"); $ofert = false; break;
case "start": echo '&nbsp; <b>Strona startowa</b>'; include("start.php"); $ofert = false; break;
case "ofirmie": echo '&nbsp; <b>Informacje o firmie</b>'; include("ofirmie.php"); $ofert = false; break;
case "oferta": echo '&nbsp; <b>Nasza oferta</b>'; include("oferta.php"); $ofert = true; break;
}
}
}
?>

No i po takiej implementacji funkcji mialem kod HTML:

<div class="tekst">
<img src="src/pkt.jpg" alt="jpg punkt" /> <?php Tresc(); ?>
</div>
<div class="menu">
<strong>Menu witryny</strong>
<a href="index.php?id=start"><img src="src/pkt2.jpg" alt="pkt2.jpg" height="9" width="9"/> Start</a>
<a href="index.php?id=ofirmie"><img src="src/pkt2.jpg" alt="pkt2.jpg" height="9" width="9"/> O Firmie</a>
<a href="index.php?id=kontakt"><img src="src/pkt2.jpg" alt="pkt2.jpg" height="9" width="9"/> Kontakt</a>
<a href="index.php?id=oferta"><img src="src/pkt2.jpg" alt="pkt2.jpg" height="9" width="9"/> Nasza Oferta</a>
<?php PodMenu($ofert); ?>

Taki sposób nie działał, tzn treść się zmieniała, jednakże podmenu nie działało, a założenie miałobyć takie - że jeżeli w klikneliśmy w menu w oferta to wyswietla nam się podmenu z produktami ($ofert = true) no i dalej jak klikaliśmy w jakiś produkt to podmenu powinno być widoczne - $ofert = true, no bo w przeciwnym wypadku znika nam podmenu z oferta, treść jest z opcji podmenu.
Mniejsza w sumie o to, problem jest w tym czy mozna w jednym znaczniki <?php ?> na początku pliku deklarować i implementować kilka funkcji, a następnie wewnątrz kodu HTML się do nich odwołać, bo ten sposób co pokazałem nie działa ;/
Jak powinienem deklarowac i implementować funkcje, a następnie się do nich odwoływać ?
jml
Skoro masz już jakąś wiedzę na temat programowania, zapewne zdajesz sobie sprawę z zasięgów zmiennych. winksmiley.jpg

Ustawiasz zmienną lokalną w funkcji Tresc, nie zwracasz jej więc poza ta funkcją ona już nie istnieje. Później wywołujesz PodMenu z pustą zmienną (NULL). I nie działa.

Przydatną praktyką w PHP jest wyświetlanie sobie zmiennych jak coś jest nie tak, dodatkowo ustaw sobie raportowanie wszystkich błędów:
  1. <?php
  2. error_reporting(E_ALL | E_STRICT);
  3. ?>
albo
  1. <?php
  2. ini_set('display_errors', E_ALL | E_STRICT);
  3. ?>

Na początku skryptu (lub zmień w php.ini). Tutaj dostałbyś jakiś warning i szybciej zgadłbyś co jest nie tak.
martq
Yhymm już znalazłem chyba błąd smile.gif Dzięki, faktycznie nie zrówciłem uwagi na rodzaj zmiennej..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.