Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: include() a obiekty
Forum PHP.pl > Forum > PHP
robertpiaty
Witam,

mam dwa pliki.

Plik body.php

Kod
<?php
define('OPT_DIR', 'opt/lib/');    
  require('opt/lib/opt.class.php');

/*
Klasa odpowiedzialna za wyświetlenie treści strony dotyczącej wyboru i pobrania pliku
*/

class selectFile{
    
   function __construct($file){
      
     try{
        
         $tpl = new optClass;
         $tpl -> root = './tpl/';
         $tpl -> compile = './templates_c/';
         $tpl -> gzipCompression = 1;
         $tpl -> httpHeaders(OPT_HTML);

        
         $tpl -> assign('current_date',$file);

         $tpl -> parse('example1.tpl');
     }catch(optException $exception){
     optErrorHandler($exception);
     }
    }

}





?>


oraz plik index.php

Kod
<?php

require('body.php');
class Content{
    
     function __construct(){
        
             $file = "<H2>Pobierz plik .css</H2>\n";        
                 $file .= "<FORM action=\"upload.php\" enctype=\"multipart/form-data\" method=\"POST\">\n";
                 $file .= "<p><INPUT type=\"file\" name=\"load\"></p>\n";
                 $file .= "<H3>Dane w pliku oddzielone są:</H3>\n";
                 $file .= "<p><input type=\"radio\" name=\"section\" value=\"comma\" ID=\"comma\"><label for=\"comma\">przecinkiem</label></p>\n";
                 $file .= "<p><input type=\"radio\" name=\"section\" value=\"semicolon\" ID=\"semicolon\"><label for=\"semicolon\">średnikiem</label></p>\n";
                 $file .= "<p><INPUT type=\"submit\" value=\"Prześlij\" name=\"B1\"><INPUT type=\"reset\" value=\"Resetuj\" name=\"B2\"></p>\n";
                 $file .= "</FORM>";

                 $this -> file = $file;
                    
                 }
                 function display(){
                 new selectFile($this ->file);
                 }
     }


$pokaz = new Content();
$pokaz -> display();




?>


Problem polega na tym że nie działa mi funkcja require() ani include() i wyświetla mi sie biała strona. Nie wczytuje się kod z pliku body.php. Gdy zamiast funkcji include wstawie zawartość pliku body.php wszystko działa ok. Przy kodzie strukturalnym zarowno include jak i require dziala ok.

HELP
juzwa
jedyne co przychodzi mi do głowy to że plik jest jest w innym katalogu

ale jeśli require działa - i nie ma ani Error ani Warning to dziwne trochę jest

ale jak na razie to bym na to stawiał - bo nic innego nie widzę
robertpiaty
Problem jest w tym że oba pliki są w tym samym folderze i ani include() ani require() nie działają. Sprawdzałem na kodzie strukturalnym (bez klas) na jakimś prostym kodzie i wszystko wtedy zadziałało, więc raczej nie jest to problem jakiś ustawień. Być może te funkcje mają jakieś dodatkowe wymagania, których tu nie spełniłem (jednym z takich wymagań jest bezwzględne stosowanie nawiasów {} wewnątrz if, nawet gdy tylko jest jedna linia kodu dla prawdy i fałszu).
thornag
  1. <?php
  2.  define('OPT_DIR', 'opt/lib/');  
  3. require('opt/lib/opt.class.php');
  4. ?>


Moze to Ci robi jakis exit czy cos,

Sprobuj za tymi liniami dodac jakies echo 'kuku' i zobaczyc czy sie wyswietlilo czy nie.
robertpiaty
Udało mi się namierzyć że w bibliotece opt w pliku opt.class.php w linii 1171 występuje błąd. W linii tej występuje funkcja header($header). Czemu jest błąd nie mam pojęcia przecież do przeglądarki nic przed tą funkcją nie jest wysyłane. Thornag zrobiłem to co zasugerowałeś - wpisałem
Kod
echo 'kuku'


zarówno przed
Kod
define('OPT_DIR', 'opt/lib/');

jak i
Kod
require('opt/lib/opt.class.php');


i nie pokazało mi ani w pierwszym ani w drugim przypadku slowa kuku
ActivePlayer
czy po wstawieniu na początku Twojego skryptu:
  1. <?php
  2. ini_set('display_errors',1);
  3. ?>

tez nie ma błędów?
robertpiaty
Po wstawieniu kodu
Kod
ini_set('display_errors',1);
error_reporting(E_ALL);


też nie pokazuje błędu. Sprawdzałem czy wprowadziłem dobre ścieżki. Są napewno ok bo gdy celowo wprowadziłem błędną to pojawiały się błędy.



Problem udało mi się rozwiązać. W pliku body.php za znacznikiem
Kod
?>

miałem wstawione kilka enterów smile.gif

Zachowałem się jak blondyn :unsure:
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.