Seite 1 von 2

php-script einbauen

Verfasst: 19.12.2014 06:33
von fontane
Da die Suchfunktion bisher nichts passendes ausgeworfen hat, nun direkt gefragt.

Hallo Community,

ich möchte folgende php-Funktion (Zeitsteuerung) in z.B. "overall_header.html" einbauen:

<!-- Weihnachten -->

Code: Alles auswählen

<?php
$_today = getdate();
$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
$_ab_datum = mktime(0, 0, 0, 12, 24, 2014);
$_bis_datum = mktime(0, 0, 0, 12, 26, 2014);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
{
?>
<br />
<img src="http://www.URL.xy/xxxx/weihnachtsmann.jpg" height="438" width="650">
<br />
<?php
}
?>
<!-- Silvester/Neujahr -->

Code: Alles auswählen

<?php
$_today = getdate();
$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
$_ab_datum = mktime(0, 0, 0, 12, 31, 2014);
$_bis_datum = mktime(0, 0, 0, 12, 01, 2015);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
{
?>
<br />
<img src="http://www.URL.xy/xxxx/sektglas.jpg" height="438" width="650">
<br />
<?php
}
?>
Baue ich oben stehende Zeitabfragen
* in eine HTML-Seite meiner Homepage ein, funktioniert es.
* in eine HTML-Seite des Forums ein, funktioniert es nicht.

Anmerkung: In der "overall_footer.html" funktioniert

Code: Alles auswählen

<?php echo '.date("Y").'; ?>
doch bereits.

Wäre nett wenn mir jemand behilflich sein würde, wie bzw. wo man vorstehende "php-Zeitfensterfunktion" korrekt in phpBB3 einbindet?
(Die Lösung können bestimmt auch Andere gebrauchen, es bieten sich bestimmt viele Anlässe im Jahr.)


Für Hilfestellungen vorab besten Dank.

Nachtrag 1:
Der Syntax
"Erlaube PHP in Templates:
Wenn diese Option eingeschaltet ist, werden PHP- und INCLUDEPHP-Anweisungen in Templates erkannt und ausgeführt."

Ist selbstverständlich auf JA gesetzt.

Nachtrag 2:
nun kam ich soweit, das mit

Code: Alles auswählen

<!-- INCLUDEPHP test.php --> 
(test.php im Root)

mit Inhalt:

Code: Alles auswählen

<?php
  echo 'An dieser Position erscheint in Kürze eine Information!';
?>
von phpBB3 der Text von "echo" erfolgreich angezeigt wird.
Fazit: php funktioniert :grin:

Was ist noch zu tun damit das Zeitsystem auch funktioniert? :cry:

Re: php-script einbauen

Verfasst: 19.12.2014 17:54
von HabNurNeFrage
Hi,

PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt:

<!-- PHP --> Dein PHP-Code hier <!-- ENDPHP -->
Die PHP-Begrenzungen <?php und ?> einfach weglassen, da der PHP-Template-Switch diese ersetzt.

Oder Du schreibst Deinen Code in externe Dateien (z.B. xmas.php) und nimmst <!-- INCLUDEPHP xmas.php -->

Beides nicht unbedingt die vernünftigste Art PHP zu verwenden, sollte aber mit der ACP-Freigabe funktionieren.

LG

Re: php-script einbauen

Verfasst: 19.12.2014 19:04
von fontane
HabNurNeFrage hat geschrieben:Hi,

PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt:

<!-- PHP --> Dein PHP-Code hier <!-- ENDPHP -->

Oder Du schreibst Deinen Code in externe Dateien (z.B. xmas.php) und nimmst <!-- INCLUDEPHP xmas.php -->
Beides nicht unbedingt die vernünftigste Art PHP zu verwenden, sollte aber mit der ACP-Freigabe funktionieren.

LG
Hallo HabNurNeFrage,

mit <!-- INCLUDEPHP xmas.php --> funktionierte es bzgl. der Zeitsteuerung nicht *grrrrr

Mit
<!-- PHP --> PHP-Code hier <!-- ENDPHP --> funktioniert es perfekt. :P
i'm happy :grin:

Ganz ganz herzlichen Dank für Deine Hilfe. :wink:

Anmerkung: was ich nicht wusste, das <!-- PHP --> den Syntax <?php und <!-- ENDPHP --> den Syntax ?> ersetzt.

Re: php-script einbauen

Verfasst: 23.12.2014 12:51
von fontane
HabNurNeFrage hat geschrieben:PHP direkt in einer Template-HTML-Datei funktioniert, wenn Du es wie folgt umschließt
Da es bzgl. dem Datum Dank Deiner Hilfe funktioniert, eine Zusatzfrage bzgl. der Uhrzeiten:
Wenn ich die Zeile:

Code: Alles auswählen

$_heute = mktime(0, 0, 0, $_today['mon'], $_today['mday'], $_today['year'] );
z.B. ändere in

Code: Alles auswählen

$_heute = mktime($_today['hour'], $_today['min'], $_today['sec'], $_today['mon'], $_today['mday'], $_today['year'] );
funktioniert die zum Test eingestellte Abfragezeit

Code: Alles auswählen

$_ab_datum = mktime(12, 35, 15, 12, 23, 2014);
$_bis_datum = mktime(12, 38, 45, 12, 23, 2014);
if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
in vorstehendem Beispiel (12:35:15 Uhr bis 12:38:45 Uhr) jedoch nicht (Datum 23.12.2014 funktioniert)

Wie muss es bzgl. der Zeiten korrekt definiert werden?

Danke für Hilfestellung

Re: php-script einbauen

Verfasst: 26.12.2014 16:39
von fontane
Könnte/würde mir jemand bei der Lösungsfindung des Problemes behilflich sein?

Re: php-script einbauen

Verfasst: 29.12.2014 00:16
von regazer
Wo ist denn $_today deklariert, damit sich das bzw. die Syntax mal überprüfen läßt ?
Bist Du sicher, daß diese Abfrage if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum) so korrekt ist ?

Ich frage nur deshalb, weil ich mich sonst erst reinarbeiten müßte.

Re: php-script einbauen

Verfasst: 29.12.2014 01:28
von Elsensee
Ich würde dir raten, statt AND lieber && zu benutzen, da AND unerwartete Ergebnisse erzeugen kann. Echt jetzt. Folgender Code zum Beispiel:

Code: Alles auswählen

$test = true and false
Man erwartet false, denn es ist ja nicht beides true, aber weißt du, was das Ergebnis ist? Genau. true
Das Gleich hat Vorrang vor dem and. Verrückt, was man jeden Tag hier lernt. :D

Außerdem noch ein Tipp am Rande: Die Aktuelle Uhrzeit kriegst du auch einfach raus, indem du time() ohne Parameter aufrufst. Dann hast du es gleich passend da, um es mit den Ergebnissen von mktime() vergleichen zu können. :)

Re: php-script einbauen

Verfasst: 29.12.2014 10:23
von fontane
regazer hat geschrieben:Wo ist denn $_today deklariert, damit sich das bzw. die Syntax mal überprüfen läßt ?
Öhm, siehe letze Zeile dieses Postings
regazer hat geschrieben:Bist Du sicher, daß diese Abfrage if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum) so korrekt ist ?
zumindest funktioniert es so Tagesgenau.
Elsensee hat geschrieben:Ich würde dir raten, statt AND lieber && zu benutzen, da AND unerwartete Ergebnisse erzeugen kann.
Ok, wenn der Profi es schreibt, werde ich die Zeile

Code: Alles auswählen

if ($_heute >= $_ab_datum AND $_heute <= $_bis_datum)
so

Code: Alles auswählen

if ($_heute >= $_ab_datum && $_heute <= $_bis_datum)
abändern.
Elsensee hat geschrieben:Echt jetzt. Folgender Code zum Beispiel:

Code: Alles auswählen

$test = true and false
Man erwartet false, denn es ist ja nicht beides true, aber weißt du, was das Ergebnis ist? Genau. true Das Gleich hat Vorrang vor dem and. Verrückt, was man jeden Tag hier lernt. :D
Es schrieb der Profi dem Laien. :grin:
Elsensee hat geschrieben:Außerdem noch ein Tipp am Rande: Die Aktuelle Uhrzeit kriegst du auch einfach raus, indem du time() ohne Parameter aufrufst. Dann hast du es gleich passend da, um es mit den Ergebnissen von mktime() vergleichen zu können. :)
Laie nunmal bin :oops: .

Ich selbst kenne mich damit nicht aus, bin nur Anwender. Den Code (siehe Eröffnungsposting) habe ich vor Jahren im I-Net gefunden.

Würde mich freuen wenn mir jemand den Code (siehe Eröffnungsposting) hinsichtlich Uhrzeit und Datumsanfrage entsprechend "neu" gestalten würde. (gibt es vllt. ein entsprechendes PHP-Forum? Link?)

Re: php-script einbauen

Verfasst: 29.12.2014 15:08
von regazer
Öhm, siehe letze Zeile dieses Postings
Da gibt es nichts zu "öhm"-en. :o
Natürlich meinte ich in welcher Datei des Quellcodes !!! :lol:

In welcher letzten Zeile welchen Postings ? Oder hast Du diese Variable selbst deklariert ?

Re: php-script einbauen

Verfasst: 29.12.2014 16:06
von Elsensee
fontane hat geschrieben:Würde mich freuen wenn mir jemand den Code (siehe Eröffnungsposting) hinsichtlich Uhrzeit und Datumsanfrage entsprechend "neu" gestalten würde. (gibt es vllt. ein entsprechendes PHP-Forum? Link?)
Ich hatte das mal gemacht für ne Webseite, kann den Code, aber leider nicht mehr finden.
Aber Weihnachten ist noch recht einfach:

Code: Alles auswählen

$now = time();
$xmas_begin = mktime(0, 0, 0, 12, 24);
$xmas_end = mktime(23, 59, 59, 12, 26);

if ($now >= $xmas_begin && $now <= $xmas_end)
{
    echo 'XMAS';
}
Der Spaß beginnt bei Silvester, weil es da ja auch einen Jahreswechsel gibt. Das ist uns jetzt aber einfach mal egal. Uns interessiert nur der Monat und der Tag, weil der ja in jedem Jahr der Gleiche ist. Zum Glück:

Code: Alles auswählen

$day = date('j');
$month = date('n');

if ($month == 12 && $day == 31)
{
    echo 'SILVESTER';
}
else if ($month == 1 && $day == 1)
{
    echo 'HAPPY NEW YEAR!';
}