Antworten auf deine Fragen:
Neues Thema erstellen

Script gibt kein php code aus

mastergeiger

Noch nicht viel geschrieben

Hallo, ich habe ein script das aus der Datenbank den inhalt für seine Seiten zeiht. Wenn in der Datenbank HTML code steht wie:
HTML:
<a>hallo Welt</a>
geht ds auch einwandfrei. Sobald allerdings etwas wie
PHP:
<?php
echo "Hallo Welt";
?>
steht gibt das script nichts aus.
In der index.php steht folgendes:
PHP:
<?php
include("includes/connect.inc.php");
$site=(addslashes($_GET['action']));
$result = mysql_query("SELECT * FROM content WHERE site='".$site."'") or die(mysql_error()); 
$row = mysql_fetch_array( $result );
echo $row['content'];
?>
Die Connect.php sieht so aus:
PHP:
<?php
$mysqlhost = 'localhost';
$mysqluser = 'root';
$mysqlpassword = '******';
$mysqldb = 'cms-dev';
$con= @mysql_connect($mysqlhost,$mysqluser,$mysqlpassword); 
$mysqldb1 = @mysql_select_db($mysqldb,$con); 
?>
Ich hoffe ihr könnt mir helfen
 

dlogic

Allrounder

AW: Script gibt kein php code aus

Ich kann dein deutsch zwar recht schlecht verstehen aber ich versuche dir mal eine Antwort zu geben....

Wenn du php Code in der Datenbank gespeichert hast, kannst du diesen mit eval() ausführen und HTML wird immer vom Browser interpetiert...

Link: PHP: eval - Manual
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

Habe es jetzt so gemacht:
PHP:
$site=(addslashes($_GET['action']));
$result = mysql_query("SELECT * FROM content WHERE site='".$site."'") or die(mysql_error()); 
$row = mysql_fetch_array( $result );
echo eval($row['content']);

Allerdings kommt dan folgender fehler:
HTML:
Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\Homepage\tll\admin\index.php(51) : eval()'d code on line 1
Habe ich das eval falsch eingesetzt oder an was liegt das?
 

Doitsu

Aktives Mitglied

AW: Script gibt kein php code aus

Habe ich das eval falsch eingesetzt[..]
Ja, aber das steht auch im Link, der oben angegeben wurde.
Der String, den du an eval uebergibst, muss ein gueltiger Befehl sein.
Da <?php aber kein PHP-Befehl darstellt, sondern den Server nur sagt, dass dort PHP anfaengt, kommt eben der Parsefehler von wegen ungueltiges Zeichen.
Aber: eval ist eine ganz schlechte Idee, was hast du vor? Gibt bestimmt bessere Loesungen.
 

dlogic

Allrounder

AW: Script gibt kein php code aus

Ja, eval() sollte aus Sicherheitsgründen nicht unbedigt eingesetzt werden. Besonders wenn dies in Verbindung mit Usereingaben verwendet wird. bzw. Variablen verwendet werden welche Daten von Usereingaben enthalten.

Wie auch immer, wäre gut wenn du uns mitteilst was genau du vor hast um eine bessere Variante zu finden.

VG
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

Also ich möchte ja wie gesagt meine ganze homepage aus der DB ziehen, also dynamisch halten. Allerdings steht ja nicht nur html code in der db sondern auch php code. Dieser soll durch:
PHP:
$site=(addslashes($_GET['action']));
$result = mysql_query("SELECT * FROM content WHERE site='".$site."'") or die(mysql_error()); 
$row = mysql_fetch_array( $result );
echo $row['content'];
In der DB sthet jetzt z.b:
PHP:
<?php
echo "Hallo Welt";
?>
Das soll er mir jetzt ausgeben wenn ich in meinem Navi index.php?action=test ausgebe.
So muss ich nicht für jede seite eine eigne datei anlegen und bin auch so dynamischer.

ich hoffe ihr wiest was ich meine. Könnt ihr mir sagen wie ich so den php code ohne fehler ausgeben kann oder was eine bessere lösung wäre.
 

Doitsu

Aktives Mitglied

AW: Script gibt kein php code aus

Sicher wissen wir, das du meinst. Die frage ist WAS GENAU du machen willst, soll sich die ganze HP-Struktur pro Seite aendern, sollen sich nur Inhalte aendern, etc ..
Ich denke du benoetigst einfach nur ein Template System.
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

nein ich möchte ganz einfach nur meine seiten in der datenbank speichern und so dan über einen link aufrufen. Ich speichere den Kurzname, der hinter index.php?action= steht und den content, also den seiteninhalt. Mein Problem dabei ist das mein script nur html code auspuckt und nicht meinen PHP quellcode interpretiert. Das ist mein einzigstes problem. ich möchte NUR das der php quellcode interpretiert wird und nicht einfach nur als text angezeigt wird.

Meine DB sieht so aus:
link | linktext | content

in link steht das was hinter dem index.php?action= steht. linktext ist der Seitentitel. Content ist wie der name schon sagt der inhalt der seite. Das funktioniert auch ganz gut solange es kein php code ist wie:
<?php
echo "hallo Welt";
?>
Sobald das in der DB steht gibt das script folgendes aus:
Code:
echo "Hallo Welt";>
Das script soll aber den PHP Code interpretieren das folgendes da steht:
Code:
Hallo Welt

Ich hoffe das ist jetz ausführlich genug und ihr könnt mir helfen und sagen wie das geht
 

Doitsu

Aktives Mitglied

AW: Script gibt kein php code aus

Wie gesagt: Haben schon verstanden, was du willst.
Allerdings macht es keinen Sinn eine ganze Seite in einer Datenbank zu speichern, dafuer gibt es den include-Befehl. Deswegen die frage WAS GENAU du vor hast. Wenn du nur ein 'echo'-Befehl ausfuehren willst, nimm, wie eben schon gesagt, ein Template System und kein eval mit Daten aus der Datenbank ..
Ansonsten achte halt einfach was du in die Datenbank eingibst, weil eval ist nicht dazu gedacht ganze Seiten zu parsen, sondern um z.B. Variablen mit Inhalt von einer Datenbank zu fuellen.
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

ich möchte eigentlich meine ganze seite dynamisch haben und nicht so viele datein in denen 5 zeilen stehen. ich möchte nicht nur echo befehle ausführen, sonst könte ich ja auch alles in html in die db schreiben.
So muss ich auch nicht sobald ich mal ne neue Seite hinzufügen möchte ne neue datei erstellen sonder kann einen eintrag in die navigation machen und in die DB das eintragen.
 

Doitsu

Aktives Mitglied

AW: Script gibt kein php code aus

Dann fuege in deiner Datenbanktabelle eine Spalte hinzu wo du einen Unixtimestamp speichert.
Dann pruefst du ob es die Datei mit der Action gibt, wenn ja wird weiter geprueft ob das erstelldatum (filemtime()) groesser ist als der Timestamp den du in deiner Datenbank hast, wenn beides true gibt wird die Datei aus dem cache Ordner (den du anlegst) includest - wenn dem nicht so ist legst du eine Datei in dem cache Order an.
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

Kann man das nicht einfacher machen? ich will doch nur das der php code geparst wird mehr nicht. einfach nur das oder mir wenigstens sagen wie ich das eval() in meinem scrip einsetzte. es soll einfach nur funktinieren, ob es sicher ist oder nicht ist egal
 

netbandit

Aktives Mitglied

AW: Script gibt kein php code aus

Auch wenn es nervt, PHP hat in einer DB nichts zu suchen.

zu eval:

PHP:
<?PHP
eval('<?PHP echo "Hallo Welt"; ?>');
?>
entspricht letztendlich:
PHP:
<?PHP
<?PHP echo "Hallo Welt"; ?>
?>
Bereinigt willst Du aber folgendes haben:
PHP:
 <?PHP
 echo "Hallo Welt";
 ?>
also müsste der Code mit eval wie folgt aussehen
PHP:
<?PHP
eval('echo "Hallo Welt";');
?>
Also in der DB dürfte nur echo "Hallo Welt"; stehen, ohne öffnendem und schliessendem PHP-Tag am Anfang und Ende. Willst du HTML und PHP vermischen wird es kopmplizierter. In dem Fall müsstes Du PHP erst schliessen und irgendwann wieder öffnen, Beispiel:

PHP:
<?PHP
eval('echo "Hallo Welt";?><br><span style="color: #ff0000">Hallo Welt</span><?');
?>
bzw.
PHP:
<?PHP
eval('echo "Hallo Welt";?><br><span style="color: #ff0000">Hallo Welt</span><?PHP');
?>
Je nach dem ob Shorttags für PHP funktionieren oder nicht; Führt u.U. zu einer Fehlermeldung. :D

Naja, viel Spaß ;)
 
Zuletzt bearbeitet:

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

Warum hatt den PHP nix in der datenbank zu suchen? Ist doch eigentlich sehr geschickt wenn man eine seite hatt und lediglich beim anlegen einer unterseite der seite einen namen geben muss und den content eintargen. Dan nurnoch schnell mit dem navi verknüpfen fertig.
So spart man doch jede meine dateien, behält den überblick und ist auch noch dynamisch. Ist doch eigentlich perfekt.
 

Doitsu

Aktives Mitglied

AW: Script gibt kein php code aus

Eine Datenbank sind auch nur Dateien, die mit einer Oberflaeche bearbeitet werden.
Und schick ist das sicher nicht, da du immer erst die Daten auslesen, verarbeiten, dann ausgeben musst.. Es ist evtl. ein wenig uebersichtlicher, aber bei grossen Seiten nicht sonderlich von Vorteil. Dazu ist PHP immer Dynamisch, da brach ich keine Datenbank fuer, ein include reicht mir da voellig. Vor allem, weil es wenig unterschiede macht ob ich die ganze Seite nun in einer Datenbank, oder einer PHP-Seite habe.
Jedenfalls gibt es in deinem vorhaben keinen (sinnvollen) weg fuer eval. Entweder legst du halt Dateien mit dem Inhalt aus der Datenbank an und includest die, oder du legst gleich Dateien an.
 

mastergeiger

Noch nicht viel geschrieben

AW: Script gibt kein php code aus

ich glaube dann ist das der bessere weg. Und für unterseiten mit kleinem conten kann ich ja trotzdem das script nehmen solange nur html code drinne steckt. Danke für die hilfe =)
 

saila

Moderatorle

AW: Script gibt kein php code aus

Hi,

ich klinke mich mal mit ein :)

Also den Vorhaben ist, dass du Seiten vollständig in einer DB speicherst und diese mittels paramter entsprechend aus der DB holst und an den Browser wirfst.

Dabei möchtest du nicht nur den Text-, Parameter -oder sinstige Daten in der DB speichern, sondern im Grunde den kompletten php-Scriptcode je Seite.

Jetzt überlegen wir einmal kurz: Du legst also je Seite ein Scriptcode mittels PHP an und schreibst in diesen den HTML-Teil, Bild-Teil und ggf. noch mehr.

Da ist alleine beim Nachdenken schon ein Denkfehler zu erkennen. Dieser wäre, dass du je Seite php-Script schreiben musst, um diesen in der DB zu speichern (ganz abgesehen vom restlichen Inhalt der jeweiligen Seite).

Das wiederum sollte dir im Grunde schon sagen: Schreibe den Scriptcode in php nur ein einziges mal und lege für den Inhalt ein HTML-Template an, in welchem letztlich wiederum der Text, Bilder oder was auch immer enthalten ist.

Auf diesem Wege trennst du scriptcode php von html und ggf. auch css. Die Seite kann danach nach wie vor über die gleichen Parameter dynamisch erzeugt werden und darüber hinaus musst du nur ein einziges php-script/datei schreiben (sofern es sich um eine einfache Page handelt).

Und noch zu "eval()" - abgesehen davon, dass es ein Sicherheitsrisiko darstellen kann, ist eval() auch ein Performancekiller.

Und nun viel Freude beim nachdenken deiner neuen Script-Architektur :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben