zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden eval()d code

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 31.03.2009, 11:31
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard eval()d code

Servus!

Ich möchte mittels eines WP Plugins folgenden Code innerhalb von Blog Artikeln zur ausführung bringen:
PHP-Code:
<?php
$numposts 
$wpdb->get_results('SELECT * FROM $wpdb->posts WHERE post_author = Tom');
?>
<p>Posts by Author Tom</p>
<ul>
<?php
foreach ($numposts as $numpost) {
echo 
"<li>".$numpost->post_title."</li>";
}
?>
</ul>
Dazu wird der Code durch das Plugin gejagt (eval). An sich steht in der Beschreibung, man könne seionen Code wie gewohnt schreiben. Ist aber nicht richtig, ich erhalte die Fehlermeldung
Zitat:
Call to a member function on a non-object in /www/htdocs/........../exec-php/includes/runtime.php(42) : eval()'d code
Es müsste sich dabei um die erste Zeile mit dem get_results() Aufruf handeln, wenn ich die weglasse, habe ich nur die Meldung, das die Wrgumente für das foreach falsch sind.
Es müsste an den " liegen. Wie schreibe ich das schnippsel richtiog, damit eval() damit leben kann?
Danke
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 31.03.2009, 11:35
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Moin Para,

ich tippe blind auf Probleme mit den Hochkommas. Soweit ich informiert bin,
mag SQL das in der Form

Zitat:
SELECT * FROM $wpdb->posts WHERE post_author = 'Tom'
also den Tom in single quotes. Das brennt mit den Hochkommas in denen der
String klemmt.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 31.03.2009, 11:43
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Nö, is nicht
schreibe ich es so:
PHP-Code:
$numposts $wpdb->get_results(SELECT FROM $wpdb->posts WHERE post_author 'Tom'); 
mag er mich auch net
Zitat:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs........exec-php/includes/runtime.php(42) : eval()’d code on line 10
Mit Zitat antworten
  #4 (permalink)  
Alt 31.03.2009, 11:47
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ich dachte so:

Zitat:
$numposts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_author = 'Tom'");
?>
muß aber mit dem eigentlichen Problem nichts zu tun haben ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #5 (permalink)  
Alt 31.03.2009, 11:48
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Das hatte ich so schon -- selbe Fehlermeldung wie die erste
Mit Zitat antworten
  #6 (permalink)  
Alt 31.03.2009, 11:50
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

Kann sein, dass das Objekt $wpdb nicht existiert, dazu kannst Du einfach mal ein var_dump($wpdb) in das eval schreiben und schauen, ob NULL oder ein Objekt ausgegeben wird.

Ansonsten befindet sich eval bereits im PHP-Modus, d.h. Du benötigst kein "<?php" innerhalb des Codes, der durch eval ausgeführt wird, evtl. macht das Schwierigkeiten.

Ansonsten wird eval in dem Kontext ausgeführt, wo es steht, wenn es dort das $wpdb nicht gibt, dann gibt es das im eval auch nicht.
Einfach mal die Stelle in WP suchen, wo das Plugin durch eval ausgeführt wird und dann schauen, wie Du von da aus an die DB kommst.

Und das zweite Beispiel, wie Du das Statement geschrieben hast kann nicht funktionieren, weil Du eine Methode aufrufst, der Du einen String übergeben willst und String gehören halt in '' oder "" eingeschlossen.
Mit Zitat antworten
  #7 (permalink)  
Alt 31.03.2009, 11:53
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Bin grad selber druffgekommen, das Objekt existiert hier ja gar nicht...
Danke Mantiz, der Dump sagt NULL.

Also versuchen das prozedural zu lösen.....
Mit Zitat antworten
  #8 (permalink)  
Alt 31.03.2009, 12:00
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

Gibt es in WP keine globale Funktion getDB() oder so ähnlich?

Meistens gibt es solch eine Funktion, die dann das DB-Objekt zurückgibt und auch initialisiert, falls es noch nicht existiert, dann würde ja ein simples $wpdb = getDB(); zu Beginn Deines Codes evtl. schon reichen.

Ich kenne WP aber nicht, daher weiß ich nicht ob es solche eine Funktion gibt bzw. wie sie denn dann heisst.
Mit Zitat antworten
  #9 (permalink)  
Alt 31.03.2009, 12:05
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Ich versuche das herauszufinden.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 31.03.2009, 12:44
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Ok, hier habe ich was:
PHP-Code:
<?php require_once('wp-load.php');
global 
$wpdb;
$numposts $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_author = Tom");
?>
<p>Posts by Author Tom</p>
<ul>
<?php
foreach ($numposts as $numpost) {
echo 
"<li>".$numpost->post_title."</li>";
}
?>
</ul>
So bekomme ich mal eine Ausgabe, Danke!
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
HTML mit PHP Code aus Datenbank auslesen + ausführen Garlandt Serveradministration und serverseitige Scripte 14 01.05.2011 13:45
Wie Code effektiv in XHTML ausgeben? Schelm.isch (X)HTML 8 30.11.2008 16:17
Wort in Javascript Code einfügen; dann Javascript Code ausgeben Sp33dy G0nz4l3s Javascript & Ajax 1 23.05.2008 10:37
XHTML und CSS Code auszeichnen Lloyd Larkin Barrierefreiheit 11 20.07.2006 08:51
eval()'d code daro Serveradministration und serverseitige Scripte 7 06.07.2006 16:26


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