Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja generująca nagłówek, a fragmenty kodu PHP
Forum PHP.pl > Forum > Przedszkole
S_Olewniczak
Mam w funkcji zawarty fragment pętli:

function deklaracjaDokumentu($kolorTla) {
session_start();
// sprawdzanie zmiennej sesji
if(isset($HTTP_SESSION_VARS['userId'])) {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Reply-to" content="szymon.olewniczak@rid.pl">
<meta http-equiv="Content-Language" content="pl">
<meta name="author" content="Szymon Olewniczak">
<title>Wirtualny Pełnomocnik</title>
<link rel="stylesheet" href="css/strefakon.css" type="text/css" />
</head>
<body style="background-color: <? $kolorTla ?>">
<?
}
?>

potem chciałbym odwołać się do tego fragmentu kodu:

deklaracjaDokumentu('white');
123
<?
}
?>

Niestety PHP wyrzuca mi błąd. Czy ktoś może wie jak to rozwiązać?
Piniek
jaki bład i popraw bbcode w poscie numer 1 winksmiley.jpg
Cezar708
Cytat(S_Olewniczak @ 15.03.2008, 20:08:42 ) *
Niestety PHP wyrzuca mi błąd. Czy ktoś może wie jak to rozwiązać?


a co za błąd?
l0ud
Jeżeli otwarłeś jakieś klamry w funkcji to musisz je zamknąć. Tutaj brakuje Ci jednej, i nie ma takiej możliwości by uzupełnić ten 'brak' po jej wywołaniu.
Piniek
  1. <?php function deklaracjaDokumentu($kolorTla) {
  2. // sprawdzanie zmiennej sesji
  3. if(isset($HTTP_SESSION_VARS['userId'])) {
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  9. <meta http-equiv="Reply-to" content="szymon.olewniczak@rid.pl">
  10. <meta http-equiv="Content-Language" content="pl">
  11. <meta name="author" content="Szymon Olewniczak">
  12. <title>Wirtualny Pełnomocnik</title>
  13. <link rel="stylesheet" href="css/strefakon.css" type="text/css" />
  14. </head>
  15. <body style="background-color: <? echo $kolorTla; ?>">
  16. <?
  17. }//zamkniecie ifa
  18. }//zamkniecie funkcji
  19. ?>
  20.  
  21. potem chciałbym odwołać się do tego fragmentu kodu:
  22. <?php
  23. deklaracjaDokumentu('white');
  24. ?>
Cezar708
dwie sprawy, polecam taki kod:

1. echo $kolorTla
2. korzystaj z bardziej czytelnego (w tym przypadku) zapisu if ( <condition> ): endif;

  1. <?php function deklaracjaDokumentu($kolorTla) {
  2. // sprawdzanie zmiennej sesji
  3. if(isset($HTTP_SESSION_VARS['userId'])) :
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  9. <meta http-equiv="Reply-to" content="szymon.olewniczak@rid.pl">
  10. <meta http-equiv="Content-Language" content="pl">
  11. <meta name="author" content="Szymon Olewniczak">
  12. <title>Wirtualny Pełnomocnik</title>
  13. <link rel="stylesheet" href="css/strefakon.css" type="text/css" />
  14. </head>
  15. <!--- tu poniżej musisz wyświetlić wartość poprzez np: echo 
  16. <body style="background-color: <?php echo $kolorTla ?>">
  17. <?
  18. endif; // zamknięcie ifa (bardziej czytelne)
  19. }//zamkniecie funkcji
  20. ?>
  21.  
  22. potem chciałbym odwołać się do tego fragmentu kodu:
  23. <?php
  24. deklaracjaDokumentu('white');
  25. ?>
l0ud
S_Olewniczak, spróbuj takiego rozwiązania smile.gif

  1. <?php
  2. function deklaracjaDokumentu($kolorTla) {
  3. // sprawdzanie zmiennej sesji
  4. if(isset($HTTP_SESSION_VARS['userId'])) {
  5. ?>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  10. <meta http-equiv="Reply-to" content="szymon.olewniczak@rid.pl">
  11. <meta http-equiv="Content-Language" content="pl">
  12. <meta name="author" content="Szymon Olewniczak">
  13. <title>Wirtualny Pełnomocnik</title>
  14. <link rel="stylesheet" href="css/strefakon.css" type="text/css" />
  15. </head>
  16. <body style="background-color: <? $kolorTla ?>">
  17. <?
  18. return true; //jeżeli user jest w sesji, zwracamy true. Przyda to się później
  19. }//zamkniecie ifa
  20. else return false;
  21. }//zamkniecie funkcji


I teraz generujemy tym stronę:

  1. <?php
  2. if (deklaracjaDokumentu('white') == true) { //proste sprawdzanie wartości zwróconej przez funkcję. Jeżeli zwraca true, oznacza to, że użytkownik jest w sesji
  3. ?>
  4. treść dokumentu
  5. <?php
  6. }
  7. ?>
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.