zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Problem bei Ausgabe mit echo

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 28.06.2011, 23:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Frage Problem bei Ausgabe mit echo

Hallo!

In meiner Datenbank habe ich den Content meiner Internetseite gespeichert. Der Content enthält unter anderem auch PHP Script.

Um die Datenbank zu öffnen und die Inhalte zu lesen und wieder zu geben habe ich folgendes Script geschrieben

PHP-Code:
<?php
include ("db.inc.php");

$open $_GET["page"];

if(
$open == "")
    {
        
$open "start";
    }

$sql="SELECT * FROM page WHERE page='$open'";
$result mysql_query($sql);
$res mysql_fetch_assoc($result);
$page $res['content'];

?>

<html>
<head>Hier stehen die üblichen Header Parameter</head>
<body>

<?php
echo "$page";
?>

</body>
</html>
Über $_GET["page"] soll ausgelesen werden welche Seite geöffnet werden soll.

Anschließend soll mit dem echo "$page" im Bereich des Bodys dann der Content der aus der Datenbank (aus der Spalte page) gelesen wurde wieder gegeben werden.

Im Bereich des Bodys habe ich nun mein Problem mit dem echo-Befehl wenn in dem Content PHP vorhanden ist. Dann wird das PHP Script "ignoriert" bzw. einfach mit angezeigt.

Wie kann ich dies Problem lösen damit auch mein PHP-Script ausgeführt wird?

Gruß
André
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.06.2011, 08:19
Benutzerbild von jnv
jnv jnv ist offline
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.07.2010
Beiträge: 152
jnv befindet sich auf einem aufstrebenden Ast
Standard

Lass die Anführungszeichen weg.

echo $variable;
__________________
#m { f : g } /* jnv */
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 29.06.2011, 08:23
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Das hatte ich auch schon probiert.
Das PHP Script wird dann trotzdem nicht ausgeführt :/
Mit Zitat antworten
  #4 (permalink)  
Alt 29.06.2011, 09:33
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Erstens würde ich auch die Anführungszeichen weglassen.

Zweitens gibt "echo" nur etwas aus, es führt aber nichts aus. Wenn Du PHP-Code in der Datenbank hast, der ausgeführt werden soll, dann ist das zunächst (fast ausschließlich) ein konzeptioneller Fehler.

Nichtsdesto trotz könntest Du diesen mit "eval" ausführen.

Aber vorsicht, das Wort "eval" hat Ähnlichkeit mit "evil", man sollte schon genau wissen was man dort tut, sonst könnte es ganz, ganz böse werden.
Mit Zitat antworten
  #5 (permalink)  
Alt 29.06.2011, 09:35
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 414
Maxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer Mensch
Standard

Du hast PHP-Code in deiner Datenbank stehen? Warum? Brauchst du überhaupt eine Datenbank, oder wären normale PHP-Dateien nicht einfacher für dich?

Aber zu deiner Frage, PHP-Code der in einem String steht kannst du mit eval() ausführen. Ist aber sehr riskant, weil du nie genau weißt was er da jetzt ausführt. Es braucht nur jemand den Inhalt der Variable "$page" manipulieren und schon führst du Schadcode aus.

Und mach dich umbedingt mal mit SQL-Injections vertraut. Die Variable $open solltest du umbedingt mit mysql_real_escape_string() behandeln.

Gruß,
Max

EDIT: Mal wieder zu langsam.
Mit Zitat antworten
  #6 (permalink)  
Alt 29.06.2011, 09:48
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.11.2009
Beiträge: 132
andre-ne befindet sich auf einem aufstrebenden Ast
Standard

Okay danke, werd mir das ganze noch einmal genau anschauen, dann finde ich schon eine bessere Lösung
Mit Zitat antworten
  #7 (permalink)  
Alt 30.06.2011, 00:12
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Stichwort: Template Engine.

- Template Engine

In PHP etwa:

- Smarty
- Twig
- PHPTAL
- XML/XSL
- …
Mit Zitat antworten
  #8 (permalink)  
Alt 30.06.2011, 00:24
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

So etwas geht auch ohne Template Engine ohne Code in der Datenbank. Am Anfang ist es meiner Meinung nach auch ganz gut nicht direkt auf eine Template Engine zurück zu greifen und gegen SQL-Injection hilft eine Template Engine auch nicht...
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #9 (permalink)  
Alt 30.06.2011, 01:09
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Ja, es hängt von der Intention ab. Wenn das Ziel ist, in Einträgen „erweiterte Funktionalität“ (Schleifen, bedingte Ausgabe, Einbindung vorgefertigter Bausteine, … – kurz: alles, was normales HTML übersteigt) zur Verfügung zu stellen, ist eine „Template Engine“ (BBCode ist irgendwie auch bereits eine) keine schlechte Wahl.

Zitat:
und gegen SQL-Injection hilft eine Template Engine auch nicht...
Das ist auch nicht ihre Aufgabe.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 30.06.2011, 07:34
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von mermshaus Beitrag anzeigen
Wenn das Ziel ist, in Einträgen „erweiterte Funktionalität“ (Schleifen, bedingte Ausgabe, Einbindung vorgefertigter Bausteine, … – kurz: alles, was normales HTML übersteigt) zur Verfügung zu stellen, ist eine „Template Engine“ (BBCode ist irgendwie auch bereits eine) keine schlechte Wahl.
Doch, eigentlich ist sie genau das: eine schlechte Wahl.

Der Autor hat hier zwar etwas übertrieben, aber mit seiner Kernaussage hat er absolut recht: Blogger: PHP ist eine Template Engine! - Ein PHP Blog auf deutsch

Geändert von inta (30.06.2011 um 07:38 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
IE 7: Zoom Problem, Höhen Problem, Text problem Cu Chullain CSS 4 02.09.2010 13:56
Div mit fixem Abstand und variabler Breite tc-burgi CSS 0 28.08.2010 16:33
PNG in IE Problem mit der Mauserkennung (klickbar oder nicht) Angélique CSS 13 16.03.2010 18:20
Problem mit Background-Color im FireFox to.ni CSS 2 31.08.2004 11:13
<div> container verschwindet?! Gilbert CSS 3 30.09.2003 13:55


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