php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.06.2009, 19:26  
Neuer Benutzer
 
Registriert seit: 31.05.2009
Beiträge: 3
DarkOverride befindet sich auf einem aufstrebenden Ast
Standard Indexdatei/Template include von PHP

Hallo alle zusammen,
ich habe folgendes Problem. Ich habe mich erst seit ein paar Tagen mit php auseinandergesetzt.
Nun habe ich soweit hinbekommen, das ich mein Template habe wo der Inhalt von anderen Seiten "Included" wird, dies funktioniert auch soweit und sieht wie folgt aus:

PHP-Code:

PHP-Code:
switch (isset($_GET['page']) ? $_GET['page'] : '') { 
         case 
"news":
            include (
"inc/news.php");
            break;
        case 
"history":
            include (
"inc/history.php");
            break;
        case 
"live":
            include (
"inc/live.php");
            break;
                case 
"live1":
                    include (
"inc/live1.php");
                    break;
                case 
"live2":
                    include (
"inc/live2.php");
                    break;
                case 
"live3":
                    include (
"inc/live3.php");
                    break;
       
        case 
"fanclub":
            include (
"inc/fanclub.php");
            break;
        case 
"gbook":
            include (
"inc/gbook/index.php");
            break;
        case 
"link":
            include (
"inc/link.php");
            break;
        case 
"contact":
            include (
"inc/contact.php");
            break;
        default:
        case 
"news":
              include (
"inc/news.php");
            break;

Problem Nummer 1: Ich habe in der news.php ,unten, per include noch einen Counter eingefügt:
PHP-Code:
PHP-Code:
<?php include_once("counter/counter.php"); ?>
dieser wird aber auf der Homepage nicht angezeigt.
hompage:gnd-music
so sollte es aussehen: gnd-music
__________________________________________________ _

Problem Nummer 2: Ich will ein Gästebuch wie den Counter "includen".
Dabei tritt folgender Fehler auf:
Warning: filesize() [function.filesize]: stat failed for templates/read.php in /var/www/web66/html/beagnd/xxgndxx/inc/gbook/classes/class.Template.php on line 72
homepage:http://www.beagnd.gnd-music.de/xxgnd...php?page=gbook
so sollte es aussehen:gnd-music

wenn ich jetzt den fad bis zur Indexdatei des Gästebuchs angebe:
http://www.beagnd.gnd-music.de/xxgndxx/inc/gbook/
erscheint der Fehler nicht.

der Code zu dem oben erwähnten Fehler sieht wie Folgt aus:

PHP-Code:
PHP-Code:
# read_file()
 #
 # Einlesen einer Vorlagendatei und {INCLUDE}-Anweisungen ggf. verarbeiten
 # (Text wird an bereits vorhandenen Text angehaengt)
 #
 # Parameter: 1. Datei zum Einlesen
 #            2. Status-Code (Boolean):
 #               true  => {INCLUDE}-Anweisungen nicht verarbeiten
 #               false => {INCLUDE}-Anweisungen verarbeiten (Standard)
 #
 # Rueckgabe: -nichts- (Template-Objekt wird modifiziert)

 
function read_file($file,$not_include=0)
 {
  
$this->file $file;

  if(
filesize($file) > 0)
  {
   
$fp fopen($file,'r');
   if(!
$fp) die;
   
$content fread($fp,filesize($file));
   
fclose($fp);
  }
  else 
$content '';

  
$this->add_text($content);
  if(!
$not_include$this->parse_includes();
 } 
genauer gesagt ist das die Zeile 72 :
PHP-Code:
PHP-Code:
 if(filesize($file) > 0
Wenn ich die oben erwähnten 2 Teile in eine Kopie des Templates packe, dann funktionieren sie, jedoch wenn ich sie in die Template-Datei "Include" treten die aufgeführten Fehler auf. Ich Hoffe ihr könnt mir weiterhelfen
DarkOverride ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.06.2009, 19:59  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

willkommen im Forum!

beim ersten Problem kann man dir ohne den Quelltext des counters wohl nicht wirklich helfen. Diese Datei muss natürlich erfolgreich include'd werden und selbständig per echo/print oder wie auch sonst für eine Ausgabe sorgen.

Problem Nr. 2 ist vermutlich auf fehlerhafte Rechte des Dateisystems zurückzuführen.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 04.06.2009, 22:11  
Neuer Benutzer
 
Registriert seit: 31.05.2009
Beiträge: 3
DarkOverride befindet sich auf einem aufstrebenden Ast
Standard

dann geb ich den quellcode vom Counter direkt mal hinterher

PHP-Code:
<?
/*
Counter Information

Anbieter: http://www.vonderborn.com
Autor: Philipp von der Born
Der Link im Icon, darf nicht entfernt werden.
*/

// ip-sperre in sekunden
$expire 600;
$filename "counter.txt";

if (
file_exists($filename)) 
{
   
$ignore false;
   
$current_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "no agent";
   
$current_time time();
   
$current_ip $_SERVER['REMOTE_ADDR']; 
      
   
// daten einlesen
   
$c_file = array();
   
$handle fopen($filename"r");
   
   if (
$handle)
   {
      while (!
feof($handle)) 
      {
         
$line trim(fgets($handle4096)); 
         if (
$line != "")
            
$c_file[] = $line;          
      }
      
fclose ($handle);
   }
   else
      
$ignore true;
   
   
// bots ignorieren   
   
if (substr_count($current_agent"bot") > 0)
      
$ignore true;
      
   
   
// hat diese ip einen eintrag in den letzten expire sec gehabt, dann igornieren?
   
for ($i 1$i sizeof($c_file); $i++)
   {
      list(
$counter_ip$counter_time) = explode("||"$c_file[$i]);
      
$counter_time trim($counter_time);
      
      if (
$counter_ip == $current_ip && $current_time-$expire $counter_time)
      {
         
// besucher wurde bereits gezählt, daher hier abbruch
         
$ignore true;
         break;
      }
   }
   
   
// counter hochzählen
   
if ($ignore == false)
   {
      if (
sizeof($c_file) == 0)
      {
         
// wenn counter leer, dann füllen      
         
$add_line1 date("z") . ":1||" date("W") . ":1||" date("n") . ":1||" date("Y") . ":1||1||1||" $current_time "\n";
         
$add_line2 $current_ip "||" $current_time "\n";
         
         
// daten schreiben
         
$fp fopen($filename,"w+");
         if (
$fp)
         {
            
flock($fpLOCK_EX);
            
fwrite($fp$add_line1);
            
fwrite($fp$add_line2);
            
flock($fpLOCK_UN);
            
fclose($fp);
         }
         
         
// werte zur verfügung stellen
         
$day $week $month $year $all $record 1;
         
$record_time $current_time;
         
$online 1;
      }
      else
      {
         
// counter hochzählen
         
list($day_arr$week_arr$month_arr$year_arr$all$record$record_time) = explode("||"$c_file[0]);
         
         
// day
         
$day_data explode(":"$day_arr);
         
$day $day_data[1];
         if (
$day_data[0] == date("z")) $day++; else $day 1;
         
         
// week
         
$week_data explode(":"$week_arr);
         
$week $week_data[1];
         if (
$week_data[0] == date("W")) $week++; else $week 1;
         
         
// month
         
$month_data explode(":"$month_arr);
         
$month $month_data[1];
         if (
$month_data[0] == date("n")) $month++; else $month 1;
         
         
// year
         
$year_data explode(":"$year_arr);
         
$year $year_data[1];
         if (
$year_data[0] == date("Y")) $year++; else $year 1;
          
         
// all
         
$all++;
         
         
// neuer record?
         
$record_time trim($record_time);
         if (
$day $record)
         {
            
$record $day;
            
$record_time $current_time;
         }
         
         
// speichern und aufräumen und anzahl der online leute bestimmten
         
         
$online 1;
         
         
// daten schreiben
         
$fp fopen($filename,"w+");
         if (
$fp)
         {
            
flock($fpLOCK_EX);
            
$add_line1 date("z") . ":" $day "||" date("W") . ":" $week "||" date("n") . ":" $month "||" date("Y") . ":" $year "||" $all "||" $record "||" $record_time "\n";         
            
fwrite($fp$add_line1);
         
            for (
$i 1$i sizeof($c_file); $i++)
            {
               list(
$counter_ip$counter_time) = explode("||"$c_file[$i]);
      
               
// übernehmen
                  
if ($current_time-$expire $counter_time)
               {
                  
$counter_time trim($counter_time);
                  
$add_line $counter_ip "||" $counter_time "\n";
                  
fwrite($fp$add_line);
                  
$online++;
               }
            }
            
$add_line $current_ip "||" $current_time "\n";
            
fwrite($fp$add_line);
            
flock($fpLOCK_UN);
            
fclose($fp);
         }
      }
   }
   else
   {
      
// nur zum anzeigen lesen
      
if (sizeof($c_file) > 0)
         list(
$day_arr$week_arr$month_arr$year_arr$all$record$record_time) = explode("||"$c_file[0]);
      else
         list(
$day_arr$week_arr$month_arr$year_arr$all$record$record_time) = explode("||"date("z") . ":1||" date("W") . ":1||" date("n") . ":1||" date("Y") . ":1||1||1||" $current_time);
      
      
// day
      
$day_data explode(":"$day_arr);
      
$day $day_data[1];
      
      
// week
      
$week_data explode(":"$week_arr);
      
$week $week_data[1];
    
      
// month
      
$month_data explode(":"$month_arr);
      
$month $month_data[1];
      
      
// year
      
$year_data explode(":"$year_arr);
      
$year $year_data[1];
      
      
$record_time trim($record_time);
      
      
$online sizeof($c_file) - 1;
   }
?>
<table cellpadding="1" cellspacing="0" style="border:1px solid #000000">
  <tr> 
    <td width="150">&gt;&gt;Counter</td>
  </tr>
  <tr> 
    <td style="border-top:1px solid #000000"> 
      <font face="Arial, Helvetica, sans-serif" size="1">
      &raquo; <? echo $online?> Online 
      &raquo; <? echo $day?> Heute 
      &raquo; <? echo $week?> Woche
      &raquo; <? echo $month?> Monat
      &raquo; <? echo $year?> Jahr
      &raquo; <? echo $all?> Gesamt
        <hr noshade="noshade" />
        Rekord: <? echo $record?> (<? echo date("d.m.Y"$record_time?>)</font></td>
  </tr>
</table>
<?
}
?>
Zu nr.2, im moment haben alle Dateien alle Rechte, also sollte es glaub ich nicht daran liegen
DarkOverride ist offline  
Alt 04.06.2009, 22:52  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zu 1., was liefert include/include_once als Rückgabewert? Ist das error_reporting auf E_ALL | E_STRICT? (siehe php.ini oder direkt mit error_reporting() setzen).

Zu 2., entweder die Datei existiert nicht an dieser Stelle oder die Rechte sind falsch. Auf "glaub ich nicht" kann ich nur "glaub ich doch" antworten, PHP irrt sich in der Hinsicht nicht. Notfalls statt relativem Pfad einen absoluten angeben. Durchprobiert werden alle Pfade des include-Pfades. Ebenso beachten, dass nicht die Datei, die das include() ausführt als Basis relevant ist, sondern $_SERVER["SCRIPT_FILENAME"], sprich die Datei, die als erstes aufgerufen wird (index.php?)
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 12.06.2009, 14:18  
Neuer Benutzer
 
Registriert seit: 31.05.2009
Beiträge: 3
DarkOverride befindet sich auf einem aufstrebenden Ast
Standard

Zu 1. error-reporting habe ich auch schon versucht, allerdings kommen da keine weiteren Meldungen.

Zu 2. also die Datei existiert. Welche Rechte meinst du? Vielleicht habe ich ja die falschen im Kopf . Der absolute Pfad hat keine Änderung gebracht und die index.php ist die erste die aufgerufen wird.

Gibt es vielleicht noch ne andere gute Möglichkeit andere php dateien in das Template zu includen, als die die ich verwendet habe?
DarkOverride ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formulare funktionieren nicht post kommt nicht an ronaldl PHP Tipps 2008 17 27.12.2008 07:46
include() ersetzen Shadow21 PHP Tipps 2006 3 30.08.2008 14:13
include isoliert ausführen – Lösungsansatz gesucht veit PHP-Fortgeschrittene 8 09.04.2008 09:26
hinter include wird eine 1 angezeigt |~Râdîant~| PHP Tipps 2008 8 19.09.2007 13:52
include Dateien wieder ausängen o.Ä. netti PHP Tipps 2007 8 17.12.2006 15:14
include problem Canni PHP Tipps 2006 26 14.11.2006 14:24
include, nur bestimmten teil neu laden Calli PHP Tipps 2006 2 27.01.2006 15:57
Fehler beim include PHP Tipps 2005-2 4 20.10.2005 12:47
Alternative zu Include PHP Tipps 2005-2 11 13.10.2005 14:13
include aus frame heraus auf anderen Frame Calli PHP Tipps 2005-2 2 08.09.2005 15:23
Auf Firmen-Server funzt kein include aus fremden Verzeichnis PHP-Fortgeschrittene 3 19.07.2005 16:49
[Erledigt] Include liegt in einem anderen Verzeichnis - es geht nix PHP Tipps 2005-2 3 03.07.2005 22:40
[Erledigt] Sessions auch bei include aktiv? PHP Tipps 2005 1 28.02.2005 19:58
[Erledigt] Problemme mit include... PHP Tipps 2004-2 6 30.11.2004 12:20
HTTP_GET_VARS + Include = Array leer PHP Tipps 2004-2 3 24.11.2004 15:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php template include, template include, php include template, include template, template includen, includen php, php in template includen, include für templates, templates includen, php als index-datei, php template mit include, template php include, template oder include, $add_line1 = date(\z\) . \:1||\ . (date(\z\)-1) . \:0||\, index.php include, template include php, includes/template.php, mit include template erstellen, php vorlage include, include template website

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum