PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Bitte helft mir hierbei: Parse error, unexpected T_variable (https://www.php-resource.de/forum/php-developer-forum/52050-bitte-helft-mir-hierbei-parse-error-unexpected-t_variable.html)

Amphios 18-03-2005 01:41

Bitte helft mir hierbei: Parse error, unexpected T_variable
 
Hallo liebe PHP-Forenmember,

ich habe hier ein vielleicht kleines, vielleicht auch großes Problem. Ich versuche mich gerade an einer Website mit einem Menü links, das später jedoch so viele einzelne Menüpunkte samt Unterpunkte haben wird, dass ich eine zentrale Seitenstruktur verwenden möchte. Also quasi das gesamte Seitenlayout ein mal erstellen und dann mit PHP dynamisch die anderen Inhalte je nach Rubrik einfügen.

Jetzt hab ich aber das folgende Problem: Wenn ich innerhalb der Datei, die den jeweiligen Hauptinhalt enthält
beispielsweise ein Formular einbaue und dieses per PHP bearbeiten lassen möchte, kommt eine Fehlermeldung. Ihr könnt das mal hier sehen: http://www.callandofon.de/test/

Das Formular-Skript ist nicht von mir, wie ihr seht. Scheint sich nicht mit dem dynamischen Inhalt-Skript zu vertragen? Ich habe unten die wichtigsten Code-Passagen angeführt. Die Struktur der Homepage ist auf dem Server folgendermaßen angelegt:

_functions.php
index.php
so_sollte_es_aussehen.php
weiterempfehlen.php

Ordner "templates", welcher folgendes beinhaltet:

_standard.html (hier steht das Layout drin, ohne die jeweiligen dynamisch einzufügenden Inhalte)
index.html (hier steht dann der Inhalt drin, der in die _standard.html integriert wird)
weiterempfehlen.html (siehe oben)
...

_functions.php hat folgenden Code:

PHP-Code:

<?

  
function getmaintemplate($template,$endung="html")
  {
    return 
str_replace("\"","\\\"",implode("",file("templates/".$template.".".$endung)));
  }

  function 
domainoutput($template)
  {
    echo 
$template;
  }

?>

weiterempfehlen.php hat folgenden Code:

PHP-Code:

<?

  
include("_functions.php");

  eval (
"\$l_an = \"".getmaintemplate("_an")."\";");
  eval (
"\$inhalt = \"".getmaintemplate("weiterempfehlen")."\";");
  eval (
"domainoutput(\"".getmaintemplate("_standard")."\");");

?>

Der Code für das Formular (steht in der weiterempfehlen.html) sieht so aus:

PHP-Code:

<?

          $siteref 
getenv("HTTP_REFERER");
          
$letterback "<br><br><a href=\"$siteref\"><img src=\"grafiken/icon_link_pflaume.gif\"
alt=\"icon_link_pflaume\">Zur&uuml;ck</a>"
;

          require(
"admin/config.php");
          if(
$friendform=="ok" && !empty($name_from) &&
 !empty(
$mail_from) && !empty($name_to) && !empty($mail_to))
          {
            list(
$content) = mysql_fetch_row(mysql_query("select 
beschreibung from vorlagen where what='friends'"
));

            
$content ereg_replace("%name_from%""$name_from"$content);
            
$content ereg_replace("%name_to%""$name_to"$content);

            
mail("$name_to <$mail_to>","Empfehlung von 
$name_from"
,"$content","From:$name_from<$mail_from>");

            
$siteref getenv("HTTP_REFERER");
            echo 
"<b>Weiterempfehlung versandt!</b><br><br><a 
href=\"$siteref\"><img src=\"grafiken/icon_link_pflaume.gif\" 

alt=\"icon_link_pflaume\">
Nochmal empfehlen?</a>"
;
          }
          elseif(
$friendform=="ok" && (empty($name_from) OR 
empty(
$mail_from) OR empty($name_to) OR empty($mail_to)))
          {
            echo 
"<b>Bitte alle Felder ausf&uuml;llen!</b>$letterback";
          }
          else
          {

        
?>

Wo liegt das Problem? Ich weiß, es sieht kompliziert aus, wenn jemand will kann er sich auch die ganze Struktur in Ruhe anschauen, ich habe ein ZIP-File erstellt mit all den Ordnen die nötig sind. Das gibt es hier: http://www.callandofon.de/test/TEST.zip

pekka 18-03-2005 01:59

Zitat:

eval()'d code on line 23
Was ist daran so schwer zu verstehen? :confused:

jahlives 18-03-2005 08:01

PHP-Code:

return str_replace("\"","\\\"",implode("",file("templates/".$template.".".$endung))); 

ev mal so
PHP-Code:

return str_replace("\"","\"",implode("",file("templates/".$template.".".$endung))); 

oder
PHP-Code:

return str_replace("\"","\\\",implode("",file("templates/".$template.".".$endung))); 

Ein vor ein Zeichen gestellter Backslash entwertet dieses Zeichen, falls es in PHP eine "Funktion" hat. Bei deiner Version mokiert er einen unexpectet
T_STRING. Wenn du dir das Ende deines Returns anschaust, dann siehst du dass die $endung als String interpretiert wird.
Du hast also ein Durcheinander mit den Anführungszeichen, was auch kein Wunder ist, da diese z.T. ja entwertet werden.

Gruss

tobi

asp2php 18-03-2005 08:39

@Amphios, bitte lesen http://www.php-resource.de/forum/sho...threadid=50454 und entsprechend dein Posting editieren, dass der Scrollbalken nach rechts verschwinden. Danke.

Amphios 18-03-2005 15:47

Ich habe eure Vorschläge allesamt durchprobiert, leider brachte das nicht den Effekt, den ich erhoffte. Eine andere Lösung, die man mir mitteilte, hat jetzt folgendes verursacht:

http://www.callandofon.de/test/weiterempfehlen.php

Wie ihr seht, wird nun das Formular zwar eingefügt, aber das php-Script kein bißchen verarbeitet.

Der ursprüngliche Fehler lag übrigens in der Formatierung \" in dem Formular-Script, die man in ' abändern musste bzw. vor und nach eine Variable einen . setzen musste.

Nun denn, jetzt sollte das Script halt noch verarbeitet werden... Ansonsten behelfe ich mir mittels eines umständlichen Weges ohne den php-Unterbau, aber vielleicht stößt ja jemand noch auf eine einfache Lösung. Ich habe dazu leider nicht die nötigen Kenntnisse, bin nur grob mit den Ansätzen vertraut.


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

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG