Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z include
Forum PHP.pl > Forum > PHP
Poker
Witam..

Znowu mam problem "prosty" ale dla mnie strasznie ciężki do rozgryzienia i męczę się już dobre 30 minut żeby to naprawić.

A więc mój problem polega na tym iż na początku strony includuje funkcje które są mi niezbędne do funkcjonowania strony i początek kodu strony wygląda tak :

Kod
<?php ob_start(); ?>
<?php session_start(); ?>
<?php include('function.php'); include('function_template.php'); sprawdzczyjestszablon(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>



I w momencie gdy includuje dwie funkcje na samej górze strony pojawia mi się pusta linijka która obniża mi całą strone o 1cm.


Spróbowałem funkcje z function_template.php wrzucić do function.php i wtedy wszystko działa poprawnie.



Teraz spróbowałem troszke pokombinować i zrobiłem w taki sposób :

Kod
<?php ob_start(); ?>
<?php session_start(); ?>
<?php include('function_template.php'); sprawdzczyjestszablon(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>


usunąłem ze strony części które wymagały function.php i nic nie pomaga.




Ze względów na późniejszą reedycje strony chciałbym mieć kilka róznych plików z funkcjami w których mam odpowiednie działy, aby łatwiej edytować całą zawartość. Dlatego wpakowanie całości w function.php nie wchodzi w grę bo już mam tam ponad 400 linijek kodu, a z pliku function_template.php doszłoby kolejne 600 linijek.


Dołącze jeszcze funkcje która wywołuje na początku :
Kod
<?php
function sprawdzczyjestszablon() {
$id=$_GET['id'];
    if(!(int)$id) {
        header('Location: ../error301');
        return;
        }
        $id=(int)$id;
        include('baza.php');
        $pobierz=mysql_query("SELECT tytul FROM szablony WHERE id='$id'");
        $wiersz=mysql_fetch_assoc($pobierz);
        
        if($wiersz == 0) {
        header('Location: ../error302');
        return;
        }
        return true;
}
?>




Dlatego jeśli ktoś wie jak rozwiązać problem to bardzo dziękuję. smile.gif
deirathe
No tak, ale co masz w pozostałych includach?? Wróżek szukasz?
Villentre
Witam.

Prawdopodobnie w którymś includowanym pliku masz np. spację lub enter po ?>, co wywołuję właśnie takie zachowanie po stronie przeglądarki. Rozwiązaniem może być usunięcie tych białych znaków, lub ?> z końców plików, wtedy białe znaki nie będą interpretowane przez przeglądarkę, bo ich nawet nie zobaczy - parser PHP się nimi zajmie.

Btw. Zastanawia mnie to:
  1. <?php ob_start(); ?>
  2. <?php session_start(); ?>
  3. <?php include('function.php'); include('function_template.php'); sprawdzczyjestszablon(); ?>
Nie lepiej zrobić to w ten sposób?
  1. <?php
  2. include('function.php'); include('function_template.php'); sprawdzczyjestszablon(); ?>



//Edit: Literówka ;/
Poker
deirathe niestety całości tutaj nie wkleję, i reszta funkcji jest tutaj zbędna

Villentre przeglądnąłem plik według twoich zaleceń i niestety nic takiego nie znalazłem nie ma enterów spacji ani nic podobnego teraz includuje tylko function_template.php dlatego teraz druga funkcja nie ma znecznia.



Więc jeśli nie wpadnę na inny możliwy sposób to wrzucę całość do function.php smile.gif
Misiek92
ja do funkcji używam require
Fifi209
Wynik kodowania UTF-8, musisz kodować UTF-8 bez BOM.
Poker
Działa!

+ pomógł


Czyli znów popełniłem głupi błąd wszystkie pliki mam bez BOM. A właśnie w tym jednym jakimś cudem zmieniłem na samo UTF-8. sciana.gif


Dziękuje bardzo za pomoc smile.gif
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.