Externes PHP Kommando in nur einem Artikel
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
Externes PHP Kommando in nur einem Artikel
Hallo,
ich würde mir gerne eine E-Mail senden lassen, wenn eine ganz bestimmte statische Seite in meinem Blog aufgerufen wird. Diese Funktion hatte ich auch in meiner alten Seite drin. Ich bekam dann eine Mail mit Hostnamen, Referrer, etc.
Das Plugin "Externe PHP Anwendung" geht wohl nur für alle Seiten. Hat jemand dazu eine Idee?
ich würde mir gerne eine E-Mail senden lassen, wenn eine ganz bestimmte statische Seite in meinem Blog aufgerufen wird. Diese Funktion hatte ich auch in meiner alten Seite drin. Ich bekam dann eine Mail mit Hostnamen, Referrer, etc.
Das Plugin "Externe PHP Anwendung" geht wohl nur für alle Seiten. Hat jemand dazu eine Idee?
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: Externes PHP Kommando in nur einem Artikel
Hi!
Am besten schreibst Du dir dafür eine PHP-Funktion, die Du in der config.inc.php deines Templates einträgst und für Smarty registrierst (siehe www.s9y.org Doku dazu):
Dann installierst Du das "smarty markup" plugin und aktivierst es für die statischen Seiten.
In deiner Statischen Seite rufst Du dann einfach die Smarty Funktion per {custom_sendmail} oder so auf. Fertig.
Viele Grüße,
Garvin
Am besten schreibst Du dir dafür eine PHP-Funktion, die Du in der config.inc.php deines Templates einträgst und für Smarty registrierst (siehe www.s9y.org Doku dazu):
Code: Select all
<?php
function custom_sendmail() {
mail('no@body.de', 'testmail');
}
$serendipity['smarty']->register_function('custom_sendmail', 'custom_sendmail');
Dann installierst Du das "smarty markup" plugin und aktivierst es für die statischen Seiten.
In deiner Statischen Seite rufst Du dann einfach die Smarty Funktion per {custom_sendmail} oder so auf. Fertig.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!

Aber was ich beschrieb ist nicht schwierig. Nicht so früh aufgeben!
Viele Grüße,
Garvin
Probier's mal, dabei lernst Du sicher auch noch wasIch kann nicht einfach den PHP Code der alten Seite so in den Beitrag der neuen Seite schreiben, oder?
Aber was ich beschrieb ist nicht schwierig. Nicht so früh aufgeben!
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Was hast du denn genau probiert? Was für Fehler traten genau wann und wo auf?
Error500 kann passieren wenn deine config.inc.php z.B. einen PHP parse error erzeugt?
Viele Grüße,
Garvin
Was hast du denn genau probiert? Was für Fehler traten genau wann und wo auf?
Error500 kann passieren wenn deine config.inc.php z.B. einen PHP parse error erzeugt?
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
Wahrscheinlich disqualifiziere ich mich jetzt für die nächsten 10 Jahre, aber meine config-inc.php sah vor meinem Versuch so aus:
und nach meinem Versuch so: (ich habe einfach meinen Kram unten mit hinzugefügt)
Das kann wahrscheinlich gar nicht gehen...
Irgendwie fehlt ja noch so eni 'smarty' Kommando und ich verstehe nicht wieso kein schließendes ?> mehr kommt. Das kenne ich so
Naja... Dafür kann ich halt andere Sachen 
Code: Select all
<?php
// Be nice to the frontend users. They don't need the additional constants and file lookups. Only load them when in Admin mode.
if ($serendipity['GET']['adminModule'] == 'templates' || $serendipity['POST']['adminModule'] != 'templates') {
// Probe for a language include with constants. Still include defines later on, if some constants were missing
$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
if (file_exists($probelang)) {
include $probelang;
}
include dirname(__FILE__) . '/lang_en.inc.php';
}
$template_config = array(
array(
'var' => 'colorset',
'name' => THEME_COLORSET,
'description' => THEME_COLORSET_DESC,
'type' => 'select',
'default' => 'blue',
'select_values' => array('default' => 'Default Blue', 'grey' => 'Grey Monotone', 'caramel' => 'Caramel', 'modern' => 'Modern Blue and Green')
),
array(
'var' => 'entryfooterposition',
'name' => FOOTER_POSITION,
'description' => FOOTER_POSITION_DESC,
'type' => 'radio',
'radio' => array('value' => array('true', 'false'),
'desc' => array(SMALL_BOX, BELOW_ENTRY)),
'default' => 'true',
),
array(
'var' => 'navlink1text',
'name' => NAV_LINK_TEXT . ' 1',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_1,
),
array(
'var' => 'navlink1url',
'name' => NAV_LINK_URL . ' 1',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink2text',
'name' => NAV_LINK_TEXT . ' 2',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_2,
),
array(
'var' => 'navlink2url',
'name' => NAV_LINK_URL . ' 2',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink3text',
'name' => NAV_LINK_TEXT . ' 3',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_3,
),
array(
'var' => 'navlink3url',
'name' => NAV_LINK_URL . ' 3',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink4text',
'name' => NAV_LINK_TEXT . ' 4',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_4,
),
array(
'var' => 'navlink4url',
'name' => NAV_LINK_URL . ' 4',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink5text',
'name' => NAV_LINK_TEXT . ' 5',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_5,
),
array(
'var' => 'navlink5url',
'name' => NAV_LINK_URL . ' 5',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
);
Code: Select all
<?php
// Be nice to the frontend users. They don't need the additional constants and file lookups. Only load them when in Admin mode.
if ($serendipity['GET']['adminModule'] == 'templates' || $serendipity['POST']['adminModule'] != 'templates') {
// Probe for a language include with constants. Still include defines later on, if some constants were missing
$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
if (file_exists($probelang)) {
include $probelang;
}
include dirname(__FILE__) . '/lang_en.inc.php';
}
$template_config = array(
array(
'var' => 'colorset',
'name' => THEME_COLORSET,
'description' => THEME_COLORSET_DESC,
'type' => 'select',
'default' => 'blue',
'select_values' => array('default' => 'Default Blue', 'grey' => 'Grey Monotone', 'caramel' => 'Caramel', 'modern' => 'Modern Blue and Green')
),
array(
'var' => 'entryfooterposition',
'name' => FOOTER_POSITION,
'description' => FOOTER_POSITION_DESC,
'type' => 'radio',
'radio' => array('value' => array('true', 'false'),
'desc' => array(SMALL_BOX, BELOW_ENTRY)),
'default' => 'true',
),
array(
'var' => 'navlink1text',
'name' => NAV_LINK_TEXT . ' 1',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_1,
),
array(
'var' => 'navlink1url',
'name' => NAV_LINK_URL . ' 1',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink2text',
'name' => NAV_LINK_TEXT . ' 2',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_2,
),
array(
'var' => 'navlink2url',
'name' => NAV_LINK_URL . ' 2',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink3text',
'name' => NAV_LINK_TEXT . ' 3',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_3,
),
array(
'var' => 'navlink3url',
'name' => NAV_LINK_URL . ' 3',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink4text',
'name' => NAV_LINK_TEXT . ' 4',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_4,
),
array(
'var' => 'navlink4url',
'name' => NAV_LINK_URL . ' 4',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
array(
'var' => 'navlink5text',
'name' => NAV_LINK_TEXT . ' 5',
'description' => NAV_LINK_DESC,
'type' => 'string',
'default' => NAV_DEFAULT_5,
),
array(
'var' => 'navlink5url',
'name' => NAV_LINK_URL . ' 5',
'description' => NAV_LINK_URL_DESC,
'type' => 'string',
'default' => '#',
),
);
$domain = "internetpolizei.de";
$docroot = "http://www.internetpolizei.de";
$emailaddress = "homepage@internetpolizei.de";
function send_email()
{
global $REQUEST_URI, $HTTP_REFERER, $emailaddress, $REMOTE_ADDR, $docroot, $HTTP_CLIENT_IP, $HTTP_USER_AGENT, $HOST, $IP;
$r_hostname = gethostbyaddr($REMOTE_ADDR);
$today = getdate();
$month = $today[mon];
$mday = $today[mday];
$year = $today[year];
$hours = $today[hours];
$minutes = $today[minutes];
$errortime = "$mday.$month $year um $hours:$minutes";
$message .= "Besucher auf internetpolizei.de (www.internetpolizei.de)\n\nAm: $errortime.\n\n";
$message .= "Referer: $HTTP_REFERER\n\n";
$message .= "IP: $REMOTE_ADDR via $HTTP_CLIENT_IP\n\n";
$message .= "HTTP_USER_AGENT: $HTTP_USER_AGENT\n\n";
$message .= "HOST: $HOST $r_hostname\n\n";
mail("$emailaddress", "Besucher auf internetpolizei.de", $message, "From: $emailaddress");
return;
}
send_email();
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Probier doch mal dies:
http://nopaste.php-q.net/231061
Das enthält quasi das, was ich Dir ursprünglich schickte, mit der 'register_function'. Das hast Du nicht eingefügt.
In deiner Template-Datei musst Du dann auch noch wie erwähnt {send_email} einfügen.
Viele Grüße,
Garvin
Probier doch mal dies:
http://nopaste.php-q.net/231061
Das enthält quasi das, was ich Dir ursprünglich schickte, mit der 'register_function'. Das hast Du nicht eingefügt.
In deiner Template-Datei musst Du dann auch noch wie erwähnt {send_email} einfügen.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
Hallo Garvin,
vielen Dank für deine Hilfe. So ganz funktioniert es noch nicht, denn sobald ich diesen Code für die config.inc.php benutze, werden statische Seiten gar nicht mehr angezeigt. Es kommt nur eine weiße Seite. Dabei spielt es keine Rolle, ob ich das {send_email} in den Artikel schreibe oder nicht.
Das ist aber auf jeden Fall schonmal besser als ein Fehler500 auf allen Seiten
Kann das dann ein Fehler im Blog sein, dass nach dem Code keine statischen Seiten mehr angezeigt werden?
Viele Grüße, Harald
vielen Dank für deine Hilfe. So ganz funktioniert es noch nicht, denn sobald ich diesen Code für die config.inc.php benutze, werden statische Seiten gar nicht mehr angezeigt. Es kommt nur eine weiße Seite. Dabei spielt es keine Rolle, ob ich das {send_email} in den Artikel schreibe oder nicht.
Das ist aber auf jeden Fall schonmal besser als ein Fehler500 auf allen Seiten
Kann das dann ein Fehler im Blog sein, dass nach dem Code keine statischen Seiten mehr angezeigt werden?
Viele Grüße, Harald
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Probier mal die ocnfig.inc.php per browser aufzurufen: http://deinhost/pfad/templates/deintemp ... ig.inc.php
und schau ob dort Fatal PHP Errors kommen? Eine leere Seite heißt oft, dass ein Parse Error in einer PHP Datei (der config) vorliegt.
Viele Grüße,
Garvin
Probier mal die ocnfig.inc.php per browser aufzurufen: http://deinhost/pfad/templates/deintemp ... ig.inc.php
und schau ob dort Fatal PHP Errors kommen? Eine leere Seite heißt oft, dass ein Parse Error in einer PHP Datei (der config) vorliegt.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
Ich musste zuerst die .htaccess Datei umbenennen, weil ich sonst nicht das Recht hatte die Datei aufzurufen. Beim Aufrufen kommt aber:
Fatal error: Call to a member function on a non-object in /home/www//templates/smallbiz01/config.inc.php on line 119
Und Zeile 119 sieht so aus: (die letzte, fette Zeile und so hört die Datei auch auf. Nach Zeile 119 kommt noch ein Return und Ende)
function send_email() {
$emailaddress = "homepage@internetpolizei.de";
$r_hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$today = getdate();
$month = $today['mon'];
$mday = $today['mday'];
$year = $today['year'];
$hours = $today['hours'];
$minutes = $today['minutes'];
$errortime = "$mday.$month $year um $hours:$minutes";
$message .= "Besucher auf internetpolizei.de (www.internetpolizei.de)\n\nAm: $errortime.\n\n";
$message .= "Referer: {$_SERVER['HTTP_REFERER']}\n\n";
$message .= "IP: {$_SERVER['REMOTE_ADDR']} via {$_SERVER['HTTP_CLIENT_IP']}\n\n";
$message .= "HTTP_USER_AGENT: {$_SERVER['HTTP_USER_AGENT']}\n\n";
$message .= "HOST: {$_SERVER['REMOTE_ADDR']} $r_hostname\n\n";
mail("$emailaddress", "Besucher auf internetpolizei.de", $message, "From: $emailaddress");
return true;
}
$serendipity['smarty']->register_function('send_email', 'send_email');
Das Smarty Plugin habe ich installiert. Falls du noch eine Idee hast, dann wäre es prima.
Gruß, Harald
Fatal error: Call to a member function on a non-object in /home/www//templates/smallbiz01/config.inc.php on line 119
Und Zeile 119 sieht so aus: (die letzte, fette Zeile und so hört die Datei auch auf. Nach Zeile 119 kommt noch ein Return und Ende)
function send_email() {
$emailaddress = "homepage@internetpolizei.de";
$r_hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$today = getdate();
$month = $today['mon'];
$mday = $today['mday'];
$year = $today['year'];
$hours = $today['hours'];
$minutes = $today['minutes'];
$errortime = "$mday.$month $year um $hours:$minutes";
$message .= "Besucher auf internetpolizei.de (www.internetpolizei.de)\n\nAm: $errortime.\n\n";
$message .= "Referer: {$_SERVER['HTTP_REFERER']}\n\n";
$message .= "IP: {$_SERVER['REMOTE_ADDR']} via {$_SERVER['HTTP_CLIENT_IP']}\n\n";
$message .= "HTTP_USER_AGENT: {$_SERVER['HTTP_USER_AGENT']}\n\n";
$message .= "HOST: {$_SERVER['REMOTE_ADDR']} $r_hostname\n\n";
mail("$emailaddress", "Besucher auf internetpolizei.de", $message, "From: $emailaddress");
return true;
}
$serendipity['smarty']->register_function('send_email', 'send_email');
Das Smarty Plugin habe ich installiert. Falls du noch eine Idee hast, dann wäre es prima.
Gruß, Harald
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Das ist gut, das heißt dass die config.inc.php keine parse-errors enthält.
Upgrade mal auf das aktuellste Nightly, wenn du die 1.1 versionen einsetzt. Da gab es vor einer Woche einen Fix der damit zusammenhängen könnte.
Grüße,
Garvin
Das ist gut, das heißt dass die config.inc.php keine parse-errors enthält.
Upgrade mal auf das aktuellste Nightly, wenn du die 1.1 versionen einsetzt. Da gab es vor einer Woche einen Fix der damit zusammenhängen könnte.
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
Harald Weingaertner
- Regular
- Posts: 474
- Joined: Mon Mar 27, 2006 12:32 am
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Wie hast Du denn deine Templates modifiziert? Wechsel mal auf das unmodifizierte Default-Template testweise.
Grüße,
garvin
Wie hast Du denn deine Templates modifiziert? Wechsel mal auf das unmodifizierte Default-Template testweise.
Grüße,
garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Ich glaube es gibt doch einen fehler in der config.inc.php.
Änder die Funktion mal in:
Sprich, Du fügst ein $params, &$smarty in den Funktionskopf mit ein, Smarty braucht das.
Ich glaube es gibt doch einen fehler in der config.inc.php.
Änder die Funktion mal in:
Code: Select all
function send_email($params, &$smarty) {
}
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/