php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-12-2005, 12:24
.elementrio
 Registrierter Benutzer
Links : Onlinestatus : .elementrio ist offline
Registriert seit: May 2005
Beiträge: 217
.elementrio ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP Code wird nicht geparst.

Guten Tag,

Ich hab ein Problem, bei mir werden die PHP Answeisungen in einer HTML (Template) Datei garnicht geparst werden nur einfach so anzeigt.

Ich versuche nen Gästebuch zu schreiben, bis her klappt alles wunderbar nur eben das ich zb. keine If anweisungen machen kann.


Fehler:


Hier kann ich zb. kein Count...machen, es wird einfach komisch angezeigt.

PHP-Code:
PHP-Code:
$entries=null;
  
$count mysql_query("SELECT count(*) FROM einträge");
  
$sql mysql_query("SELECT * FROM einträge ORDER BY id Desc");
  while(
$row mysql_fetch_array($sql)) {
    
$row['name'] = htmlentities($row['name']);
    
$row['text'] = htmlentities($row['text']);
    
$row['text'] = nl2br($row['text']);
    
$row['date'] = date("d.m.Y"); 
    eval (
"\$entries.= \"".template("entries")."\";");
    echo 
$count;
    } 
Ich hab von nen Freund gehört das es wegen der Template Funktion ist.
Hier die Funktion:
PHP-Code:
function template ($tpl)
   {
   
$tplfolder="./templates";
   
$filename=$tplfolder."/".$tpl.".html";
   if(!
$tplfolder$tplfolder "templates";
      
$text implode("",file($tplfolder."/".$tpl.".html"));

   return 
str_replace("\"","\\\"",$text);
   } 
Mit Zitat antworten
  #2 (permalink)  
Alt 18-12-2005, 13:03
f4b
 Newbie
Links : Onlinestatus : f4b ist offline
Registriert seit: Dec 2005
Beiträge: 7
f4b ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Nein, das hat mit der Templatefunktion nichts zu tun

PHP-Code:
<?php
    $entries 
null;
    
$count mysql_query("SELECT count(*) AS anzahl FROM einträge"); // Hier musst du ein Alias vergeben
    
$sql mysql_query("SELECT * FROM einträge ORDER BY id DESC"); 
    while(
$row mysql_fetch_array($sql)) {
        
$row['name'] = htmlentities($row['name']);
        
$row['text'] = htmlentities($row['text']);
        
$row['text'] = nl2br($row['text']);
        
$row['date'] = date("d.m.Y"); 
        eval (
"\$entries.= \"".template("entries")."\";");
    } 
    
    
$row2 mysql_fetch_assoc($count); // du hast das fetch vergessen (darum Ressource id #7)
    
echo $row2['anzahl'];
?>
Dein Problem war, dass du beim count 1. kein Alias vergeben hast und 2. keinen Fetch durchgeführt hast.


Mfg Fab
Mit Zitat antworten
  #3 (permalink)  
Alt 18-12-2005, 13:33
.elementrio
 Registrierter Benutzer
Links : Onlinestatus : .elementrio ist offline
Registriert seit: May 2005
Beiträge: 217
.elementrio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ah vielen Dank, das ging ja schnell.

Und jetzt habe ich aber noch immer das Problem das die if anweisungen einfach so angezeigt werden. Also die werden garnicht geparst sonder nur die Variablen.

Ich hab folgendes in ne Template reingeschrieben.

PHP-Code:
 if($test == '0') {
   echo 
"error";
   }
   else {
   
$entries
   

Da wird der Code einfach angezeigt, die if anweisung funktoniert nicht.

Siehe hier:
Mit Zitat antworten
  #4 (permalink)  
Alt 18-12-2005, 14:11
f4b
 Newbie
Links : Onlinestatus : f4b ist offline
Registriert seit: Dec 2005
Beiträge: 7
f4b ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Das ist allerdings komisch...

PHP-Code:
return str_replace("\"","\\"",$text); 
Was willst du genau mit diesem Code bewirken?

Für mich sieht das irgendwie nach einem Parse-Error aus.


Mfg Fab
Mit Zitat antworten
  #5 (permalink)  
Alt 18-12-2005, 14:24
.elementrio
 Registrierter Benutzer
Links : Onlinestatus : .elementrio ist offline
Registriert seit: May 2005
Beiträge: 217
.elementrio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich die Zeile wegtue werden die templates überhaupt nicht geladen.

Könnt ihr mir ein kleines Templatesystem nennen, die variablen,....parst. Ich hab gehört eval ist nicht so gut. Ich will jetzt nicht sowas wie Smarty sonder etwas simpleres....

Sowas in der Art:
PHP-Code:
$tpl = new template();
class 
template{

    var 
$varcache = array();
    var 
$valuecache = array();
    function 
assign($varname,$value)
    { 
      
$maxcount($this->varcache);
      for(
$i=0;$i<$max;$i++)
      {
        if(
"{\$$varname}"==$this->varcache[$i])
        {
            
$this->valuecache[$i]=$value;
            return;
        }
      }
      
$this->varcache[]    ="{\$$varname}";
      
$this->valuecache[]  =$value;
    }
    function 
clear()
    {
      
$this->varcache ="";
      
$this->valuecache ="";
    }  
    function 
prepass($template)
    {
      
$tpldir "templates";
      
$template implode("",file("$tpldir/"."$template".".tpl"));
      
$template str_replace($this->varcache,$this->valuecache,$template);
      return 
$template;
    }
    
    function 
out($template)
    {
      echo 
$this->prepass($template);
    }

Hier werden aber die variablen net geparst...
Mit Zitat antworten
  #6 (permalink)  
Alt 18-12-2005, 17:01
f4b
 Newbie
Links : Onlinestatus : f4b ist offline
Registriert seit: Dec 2005
Beiträge: 7
f4b ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi

Schau dir mal das hier an:

http://www.devmag.net/webprog/php_fast_template.htm

Sieht ziemlich simpel aus, leistet aber das gewünschte.

Mfg F4b
Mit Zitat antworten
  #7 (permalink)  
Alt 18-12-2005, 17:50
.elementrio
 Registrierter Benutzer
Links : Onlinestatus : .elementrio ist offline
Registriert seit: May 2005
Beiträge: 217
.elementrio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber mit ner php3 endung, würde es einwandfrei funktonieren wenn ich es einfach in php umbenne oder hätte das irgendwelche nachteile?

Edit:
Funktoniert garnicht...

Geändert von .elementrio (18-12-2005 um 18:02 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 18-12-2005, 18:32
.elementrio
 Registrierter Benutzer
Links : Onlinestatus : .elementrio ist offline
Registriert seit: May 2005
Beiträge: 217
.elementrio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab gerade was gefunden, finde ich recht schön.
http://www.php-resource.de/tutorials/read/20/1/

Aber kann ich hier per variable keine template laden???Versteht ihr was ich meine?

Edit:
Wahrscheinlich kann ich auch keine if anweisungen in der template bauen, kann mir jemand ma sagen was ich im code ändern muss damit das funkt.


Geändert von .elementrio (18-12-2005 um 20:22 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
Top-Side.de Php Guest Book

Gästebuch mit Smilies, Ip Sperre und Spammschutz. Anzeige von Datum, Name, E-Mail, Homepage und Icq. Html ist deaktiviert.

26.07.2019 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:30 Uhr.